Vous êtes sur la page 1sur 8

Filtro digital pasa bajos

OBJETIVO.-

El objetivo de este proyecto es el de implementar un filtro digital pasa


bajos con un micro controlador, en el cual primero se realizara la
transformacin de analgico a digital y posteriormente se usara la
transformada G(z) de un filtro pasa bajos en su forma de ecuaciones en
diferencia G(k). Los valores G(k) obtenidos sern nuevamente
convertidos a seal analgica, pero esta ya estar debidamente filtrada.
MARCO TEORICO.Filtro Digital.Un filtro es un sistema o una red que cambia selectivamente la forma de onda,
o las caractersticas amplitud-frecuencia o fase-frecuencia de una manera
deseada. Los objetivos comunes del proceso de filtrado son mejorar la calidad
de la seal, por ejemploremoviendo o atenuando el nivel de ruido, extrayendo
informacin de dos o ms sealespreviamente combinadas para hacer uso
eficiente de un canal de comunicacin, etc.Un filtro digital es un algoritmo
implementado en hardware y/o software que opera sobre una seal de entrada
digital (discreta en tiempo y cuantizada en amplitud) y genera una seal digital
de salida, con la finalidad de efectuar un proceso de filtrado. El trmino filtro
digital se refiere al hardware o software especfico que ejecuta el algoritmo.
Los filtros digitales trabajan sobre valores numricos asociados a muestras de
esas seales analgicas previamente digitalizadas por conversores A/D o
simplemente sobre un conjunto de nmeros almacenados en la memoria de
una computadora o microprocesador.

Ventajas de un Filtro Digital.Los filtros digitales juegan un papel muy importante en el procesamiento digital
de seales. En gran nmero de aplicaciones, como compresin de datos,
procesamiento de seales biomdicas, procesamiento de seales de voz,
procesamiento de imgenes, transmisin de datos, audio digital,

cancelamiento de ecos telefnicos, se prefieren por sobre los filtros analgicos


por uno o ms de los siguientes motivos:
-Los filtros digitales pueden tener caractersticas que son imposibles de
conseguir con filtros analgicos, como por ejemplo una respuesta de fase
exactamente lineal.
-El desempeo de los filtros digitales no vara con las condiciones ambientales
(temperatura, humedad, etc.) como s ocurre con los filtros analgicos, lo que
elimina la necesidad de calibrarlos peridicamente.
-Si el filtro se implementa utilizando un procesador programable la respuesta
en frecuencia de un filtro digital puede ajustarse a voluntad (filtrado adaptivo).
-El mismo filtro puede procesar varias seales o canales de entrada sin
necesidad de
replicar el hardware.
-Las seales filtradas y sin filtrar pueden almacenarse para uso o anlisis
posterior.
-Los avances en las tcnicas de integracin VLSI hacen que sea posible fabricar
filtros
digitales pequeos, de bajo consumo, y de muy bajo costo.
-Se pueden lograr atenuaciones que excedan los 60 o 70 dB en la banda de
rechazo
-El desempeo de los filtros digitales es repetible de unidad a unidad.
-Los filtros digitales pueden utilizarse a muy bajas frecuencias, como las que se
encuentran en aplicaciones biomdicas, donde el empleo de filtros analgicos
es poco prctico por los valores muy elevados de los componentes pasivos
involucrados (capacitores, inductancias). Adems, los filtros digitales pueden
trabajar sobre un amplio rango de frecuencias simplemente cambiando la
frecuencia de muestreo.
Desventajas.-Limitacin de frecuencia. La frecuencia de Nyquist que fija el ancho de banda
til
que el filtro puede procesar queda definida por el proceso de conversin
(tiempos
de conversin del conversor A/D y D/A), velocidad del procesador, cantidad de
operaciones a ejecutar por unidad de tiempo, etc. Este ltimo trmino se

incrementa a medida que aumenta la exigencia de las caractersticas de


respuesta del filtro (filtros muy abruptos).
-Efectos de longitud finita de palabra. En general, los coeficientes del filtro
implementado
sern distintos de los calculados tericamente si la representacin numrica
que
se utiliza para implementar el filtro no es de precisin infinita (punto flotante).
No slo influye la cuantizacin de los coeficientes del filtro, sino tambin el
redondeo de las operaciones numricas, la cuantizacin del conversor A/D y
D/A, la truncacin que ocurre al almacenar los contenidos del acumulador en
memoria, etc. Estos efectos, que se modelan como fuentes de ruido de
distribucin uniforme, pueden limitar seriamente el desempeo de los filtros
digitales: variaciones de ganancia en la banda de paso, menor atenuacin en la
banda de rechazo, y hasta pueden conducir a la inestabilidad en filtros
recursivos de orden elevado.
-Tiempos de diseo y desarrollo prolongados. Los tiempos de diseo y
desarrollo de un filtro digital, en especial el diseo del hardware puede ser muy
superior al necesario para el diseo de un filtro analgico. Sin embargo, una
vez que se dispone del hardware o el software necesario, la misma plataforma
puede utilizarse para muchas otras tareas de filtrado o procesamiento digital
de seales con poca o ninguna modificacin.
Filtro Butterworth.El filtro de Butterworth es uno de los filtros electrnicos ms bsicos, diseado
para producir la respuesta ms plana que sea posible hasta la frecuencia de
corte. En otras palabras, la salida se mantiene constante casi hasta la
frecuencia de corte, luego disminuye a razn de 20n dB por dcada ( ~6n dB
por octava), donde n es el nmero de polos del filtro.
Segn lo mencionado antes, la respuesta en frecuencia del filtro es
extremadamente plana (con mnimas ondulaciones) en la banda pasante. Visto
en un diagrama de Bode con escala logartmica, la respuesta decae
linealmente desde la frecuencia de corte hacia menos infinito. Para un filtro de
primer orden son -20 dB por dcada (aprox. -6dB por octava).
El filtro de Butterworth es el nico filtro que mantiene su forma para rdenes
mayores (slo con una cada de ms pendiente a partir de la frecuencia de
corte).

CIRCUITO.-

Diseando el filtro de Butterworth con los siguientes datos:

k 1=3 dB Atenuacun alllegar a wc

k 2=20 dB Atenuacin alllegar a wr

w c =2 f c =2 1000

rad
rad
=2000
Frecuencia de corte
s
s

w r=2 f r =2 4000

rad
rad
=8000
Frecuencia de rechazo
s
s

Aplicando la predeformacin por aplicar aproximacin trapezoidal :

w c =

wT
2
2
2000 25 106
rad
tan c s =
tan
=6296,136
6
Ts
2
2
s
25 10 s

w r=

6
w T
2
2
4000 25 10
rad
tan r S =
tan
=12777.748
6
Ts
2
2
s
25 10 s

log
n=

k1
10

( )
10
10

k2
10

2 log

Determinando el orden:

1
1

wc
wr

( )

log ( 100.31 )
=
=1,66 2
1
2 log
4

()

Necesitamosun filtro de orden2.

H ( s )=

w
3,96413 10
= 2
2

2
7
s + 2 w c s+w c s +8909,098 s +3,96413 10

Haciendo latrasformacin por aporximacin trapezoidal :

3,96413 10

H ( z )=
6,4 109

s=

2 z1
z1
=80000
T s z +1
z+1

( )

z1
z1
+7,12728 10 8
+3,96413 107
z +1
z+ 1

( )

3,96413 107 ( z 2 +2 z +1 )
H ( z )=
7 2
10
9
7,15236 10 z 1,27207 10 z +5,72691 10

H ( z )=

0,005424+ 0,01108 z1+ 0,005424 z2


11,77853 z1+ 0,8007 z2

Obtenemos la ecuacin en diferencia:

y ( k )=0,005424 x ( k ) +0,01108 x ( k 1 )+ 0,005424 x ( k 2 ) +1,77853 y ( k1 )0,8007 x (k2)

Programacin:
#include <math.h>
// definimos variables
float Vi = 0.0;
float Vo = 0.0;
float Vi_1 = 0.0;
float Vi_2 = 0.0;
float Vo_1 = 0.0;
float Vo_2 = 0.0;
// variable a filtro de primer orden
double a = 0.1116352117;

double b = 1- a ;
// lo sgte es para establecer una frecuencia de muestreo mayor que la que
normalmente usa el arduino
const unsigned char PS_2 = (1 << ADPS0);
const unsigned char PS_4 = (1 << ADPS1);
const unsigned char PS_8 = (1 << ADPS1) | (1 << ADPS0);
const unsigned char PS_16 = (1 << ADPS2);
const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);
const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
void setup()
{
DDRD = 0xFF;//port d (digital pins 0-7) all outputs
// set up ADC
ADCSRA &= ~PS_128;
// Configuracion tiempo de muestreo:
ADCSRA |= PS_4; // aqui se coloca el prescaler que se quiere usar
}
void loop()
{
Vi = analogRead(0)/4;
//Vo = 0.0014603163 * Vi + 0.002920632612 * Vi_1 + 0.0014603163 * Vi_2 +
1.88903308 * Vo_1 - 0.8948743452 * Vo_2; // ecuacion en diferencia filtro 2do
orden f de corte 500 hz
Vo = a * Vi + b * Vo; // para filtro 1er orden f corte 500 hz (aqui se usa el
coeficiente a)
PORTD = Vo; // salida por el puerto D
// actualizamos valores

Vo_2 = Vo_1;
Vo_1 = Vo;
Vi_2 = Vi_1;
Vi_1 = Vi;
}

Vous aimerez peut-être aussi