1 UNIVERSIDAD PEDAGOGICA Y TECNNOLOGICA DE COLOMBIA TEORIA DE SEÑALES, LAB. 5 JUIlO 2012
FILTROS DIGITALES Fabián Higuera Sacristán 200921151, Edward Romero Serna 200921158 RESUMEN: En este laboratorio se diseña un filtro rechaza-banda, eliminando las frecuencias entre 50kHz y 80kHz. Se utilizan las herramientas de MatLab para elaborar el filtro analógico para su posterior discretización, observando la respuesta de los dos sistemas. Además se elabora en MatLab el modelo DARMA para solucionar ecuaciones de diferencia. PALABRAS CLAVE: Filtro Rechaza-Banda, diagrama de Bode, Sistema discreto, Sistema continuo, Periodo de muestreo, ecuación de diferencia, modelo DARMA.
I.
INTRODUCCION
Un filtro digital es un sistema que, dependiendo de las variaciones de las señales de entrada en el tiempo y amplitud, se realiza un procesamiento matemático sobre dicha señal; generalmente mediante el uso de la Transformada rápida de Fourier; obteniéndose en la salida el resultado del procesamiento matemático o la señal de salida. Los filtros digitales tienen como entrada una señal analógica o digital y en su salida tienen otra señal analógica o digital, pudiendo haber cambiado en amplitud, frecuencia o fase dependiendo de las características del filtro digital. El filtrado digital es parte del procesado de señal digital. Se le da la denominación de digital más por su funcionamiento interno que por su dependencia del tipo de señal a filtrar, así podríamos llamar filtro digital tanto a un filtro que realiza el procesado de señales digitales como a otro que lo haga de señales analógicas. Comunmente se usa para atenuar o amplificar algunas frecuencias, por ejemplo se puede implementar un sistema para controlar los tonos graves y agudos del audio del estéreo del auto. El procesamiento interno y la entrada del filtro serán digitales, por lo que puede ser necesario una conversión analógica-digital o digital-analógica para uso de filtros digitales con señales analógicas. .
II.
OBJETIVOS
Conocer las clases de filtros digitales y sus caracter Conocer las herramientas de diseño de filtros digitales de Matlab..
III.
MATERIALES Y EQUIPOS Computador
con
Software
MatLab
IV. MARCO TEORICO Un filtro es un sistema que, dependiendo de algunos parámetros, realiza un proceso de discriminación de una señal de entrada obteniendo variaciones en su salida. Los filtros digitales tienen como entrada una señal analógica o digital y a su salida tienen otra señal analógica o digital, pudiendo haber cambiado en amplitud, frecuencia o fase dependiendo de las características del filtro. El filtrado digital consiste en la realización interna de un procesado de datos de entrada. El valor de la muestra de la entrada actual y algunas muestras anteriores (que previamente habían sido almacenadas) son multiplicadas por unos coeficientes definidos. También podría tomar valores de la salida en instantes pasados y multiplicarlos por otros coeficientes. Finalmente todos los resultados de todas estas multiplicaciones son sumados, dando una salida para el instante actual. Esto implica que internamente tanto la salida como la entrada del filtro serian digitales, por lo que puede ser necesario una conversión anagógicodigital o digital-analógica para uso de filtros digitales en señales analógicas. Filtros FIR (Finite Impulse Response) Un filtro FIR de orden M se describe por la siguiente ecuación en diferencias lineal de coeficientes constantes: [ ]
[ ]
[
]
[
]
No hay recursión, es decir, la salida depende solo de la entrada y no de valores pasados de la salida. La respuesta es por tanto una suma ponderada de valores pasados y presentes de la entrada. De ahí que se denomine Media en Movimiento (Moving Average) Filtros IIR (Infinite Impulse Response) Este tipo de filtros se presenta de dos formas: el filtro AR(autoregresivo) y el filtro ARMA(autoregresivo y media en movimiento): La ecuación en diferencias que describe un filtro AR es: [ ]
[
]
[
]
[ ]
El filtro es recursivo ya que la salida depende no solo de la entrada actual sino además de valores pasados de la salida (Filtros con realimentación). La ecuación en diferencias que describe un filtro ARMA de orden N es: [ ]
[
]
[ ]
[
]
2 UNIVERSIDAD PEDAGOGICA Y TECNNOLOGICA DE COLOMBIA
V.
ANALISIS DE RESULTADOS
Diseñar y Discretizar un filtro análogo rechaza-banda, para rango de frecuencias entre 50kHz y 80 kHz. Implementar el filtro discretizado en Simulink.
Observando la anterior gráfica, vemos que el comportamiento en frecuencia corresponde a un filtro rechaza banda. Ahora procedemos a discretizar nuestro filtro, para ello establecemos un periodo de muestreo siguiendo el teorema de muestreo.
Para iniciar con el diseño del filtro rechaza-banda, definimos en primera instancia, las frecuencias de corte y atenuación. Tomamos como referencia la componente en frecuencia más alta de una señal que reconstruiríamos. Para este filtro la frecuencia de corte superior es 80kHz, tomamos una frecuencia por encima a ésta (100kHz) Para la elaboración de este filtro optamos por utilizar un filtro butterworth, ya que ofrece más estabilidad. Con el siguiente programa en MatLab calculamos el orden y la función de transferencia de nuestro filtro.
fc=[5000 80000]; fs=[25000 105000]; wc=(2*pi).*fc; ws=(2*pi).*fs; [n,Wn]=buttord(wc,ws,3,40,'s') [num,den]=butter(n,Wn,'stop','s') H=tf(num,den) Los resultados que arrojo el programa son los siguientes: n= 6 Wn = 1.0e+005 * 3.1162 5.0675 Transfer function: s^12 + 9.475e011 s^10 + 3.741e023 s^8 + 7.876e034 s^6 + 9.328e045 s^4 + 5.892e056 s^2 + 1.551e067 -------------------------------------------------------------------------------------s^12 + 7.539e005 s^11 + 1.232e012 s^10 + 6.632e017 s^9 + 5.644e023 s^8 + 2.213e029 s^7 + 1.247e035 s^6 + 3.494e040 s^5 + 1.407e046 s^4 + 2.611e051 s^3 + 7.659e056 s^2 + 7.403e061 s + 1.551e067 La respuesta en frecuencia de nuestro filtro se halló con el comando BODE, el resultado fue el siguiente.
Fig. 1 RESPUESTA EN FRECUENCIA FILTRO RECHAZABANDA DISEÑADO
Entonces el periodo de muestreo será,
Ahora, utilizando la herramienta c2dm con la aproximación “Tustin” hallamos la función de transferencia discreta con el comando tf.
Tm=5e-6; [Numd,Dend]=c2dm(num,den,Tm,'tustin') Hd=tf(Numd,Dend,Tm) Transfer function:
0.3899 z^12 - 0.03071 z^11 + 2.341 z^10 - 0.1536 z^9 + 5.853 z^8 - 0.3071 z^7 + 7.805 z^6 - 0.3071 z^5 + 5.853 z^4 - 0.1536 z^3 + 2.341 z^2 - 0.03071 z + 0.3899 ------------------------------------------------------------------------z^12 - 0.06656 z^11 + 4.145 z^10 - 0.2326 z^9 + 7.368 z^8 - 0.3338 z^7 + 7.143 z^6 - 0.2447 z^5 + 3.969 z^4 0.09127 z^3 + 1.195 z^2 - 0.01383 z + 0.1521 Sampling time (seconds): 5e-006 Para analizar la estabilidad del sistema hallamos los polos de la función de transferencia, encontramos las raíces del denominador con la herramienta roots. roots(Dend) ans = -0.2122 + 0.9173i -0.2122 - 0.9173i 0.2239 + 0.9146i 0.2239 - 0.9146i -0.1430 + 0.8313i -0.1430 - 0.8313i 0.1540 + 0.8297i 0.1540 - 0.8297i -0.0475 + 0.7846i -0.0475 - 0.7846i 0.0581 + 0.7840i 0.0581 - 0.7840i
3 UNIVERSIDAD PEDAGOGICA Y TECNNOLOGICA DE COLOMBIA
Ahora miramos la magnitud de cada uno de los polos >> abs(ans) ans = 0.9415 0.9415 0.9416 0.9416 0.8435 0.8435 0.8438 0.8438 0.7860 0.7860 0.7862 0.7862 Como podemos ver, el sistema es estable, ya que la magnitud de los polos es menor a 1 (región de convergencia). La respuesta en frecuencia de nuestro sistema discreto se encuentra en la siguiente figura.
SISTEMAS CONTINUO (VERDE) Y DISCRETO (AZUL) En la anterior gráfica se puede observar el comportamiento al escalón de un filtro rechaza-banda, vemos que las muestras del sistema discreto siguen a la respuesta del sistema continuo pero con un retardo mayor, esto se debe a que para el sistema discreto, el proceso de muestreo introduce un retardo mayor a la respuesta. Para la solución de ecuaciones de diferencia se utiliza el modelo DARMA que es de la siguiente manera: ( (
) )
( (
) )
Donde, ( (
) )
Podemos expresar la función de transferencia de nuestro filtro de la siguiente manera para determinar el valor de los coeficientes: Hz=tf(Numd,Dend,Tm,'variable','z^-1') Transfer function: 0.2456 - 0.02901 z^-1 + 2.212 z^-2 -0.2321 z^-3 + 8.851 z^-4 - 0.8125 z^-5 + 20.66 z^-6 - 1.625 z^-7 + 31 z^-8 - 2.032 z^-9 + 31 z^-10 - 1.625 z^-11 + 20.66 z^-12 0.8125 z^-13 + 8.851 z^-14 - 0.2321 z^-15 + 2.212 z^-16 - 0.02901 z^-17 + 0.2456 z^18
Fig. 2 RESPUESTA EN FRECUENCIA PARA FILTRO RECHAZA-BANDA DISCRETIZADO. La respuesta al escalón tanto del sistema continuo como del discreto, se obtuvo con el comando step y se encuentra en la siguiente gráfica. step(Hd,H) grid on
-----------------------------------------1 - 0.09994 z^-1 + 6.234 z^-2 - 0.5577 z^-3 + 17.59 z^-4 - 1.385 z^-5 + 29.39 z^6 - 1.995 z^-7 + 32.01 z^-8 - 1.82 z^-9 + 23.53 z^-10 - 1.075 z^-11+ 11.66 z^-12 0.4014 z^-13 + 3.75 z^-14 - 0.08645 z^-15 + 0.7104 z^-16 - 0.00822 z^-17 + 0.06031 z^-18 Sampling time (seconds): 5e-006
Implementamos en SIMULINK los de bloques que simulan nuestro filtro, aplicamos una señal senoidal a la entrada de una frecuencia de 20kHz.
Fig. 4 DIAGRAMA DE BLOQUES IMPLEMENTADO EN SIMULINK Fig. 3 RESPUESTA AL ESCALON DE LOS
4 UNIVERSIDAD PEDAGOGICA Y TECNNOLOGICA DE COLOMBIA
Aplicamos un periodo de muestreo en el retenedor de orden cero igual al estipulado anteriormente (5e-6 s), las gráficas que se obtuvieron fueron:
Filtro FIR: para un filtro de este tipo sabemos que la salida solo depende de valores instantáneos y valores antiguos de la señal de entrada. La siguiente función (filq) fue realizada en MatLab y modela un filtro de tipo FIR de la forma, donde se calcula la salida del filtro de manera recursiva (numérica) mediante un algoritmo: (
)
(
) (
)
d = hace referencia al retardo del filtro, P = coeficientes de la función ( ), Vo = condición inicial, u = señal de entrada.
Fig. 5 SEÑALES DE ENTRADA (AZUL) ALA SALIDA DEL RETENEDOR (VERDE) Y A LA SALIDA DEL FILTRO DISCRETIZADO (ROJO) PARA SEÑAL SENO DE 20KHz A LA ENTRADA Al ser un filtro rechaza-banda entre frecuencias de 50kHz y 80kHz, eliminará todos los componentes de frecuencias de la señal de entrada dentro de este rango. Cuando aplicamos una señal seno de 20kHz a la entrada, tendremos que observar la misma señal, pero discretizada, a la salida del filtro. En la figura 5 vemos que la señal a la salida del filtro corresponde a la misma que en el retenedor de orden cero, pero desplazada hacia la derecha, esto se debe a que todos los filtros siempre introducen un retardo a la salida. Para comprobar el correcto funcionamiento de nuestro filtro, introducimos una señal senoidal de frecuencia 60kHz a la entrada del filtro.
function V= filq(d,k,P,Vo,u) [i,j]=size(P); n=j-1; V=Vo; k1=k+1; if k >= n, for i=d:n, V=V+P(i+1)*u(k1-i); end else if k>=d, for i=d+k, V=V+P(i+1)*u(k1-i); end end end
En el siguiente programa elaborado en MatLab filtramos la señal de un escalón unitario, en el cual, (
)
Por lo que los coeficientes del filtro son 1 y -1 respectivamente, además definimos una condición inicial Vo=0. Para escalón unitario >> k=0:10; >> u=ones(size(k)); >> stem(u)
Fig. 5 SEÑALES DE ENTRADA (AZUL) SALIDA DEL RETENEDOR (VERDE) Y A LA SALIDA DEL FILTRO DISCRETIZADO (ROJO) PARA SEÑAL SENO DE 60KHz A LA ENTRADA Para esta señal vemos que la señal a la salida del filtro discretizado está atenuada, esto se debe a que la frecuencia de la señal se encuentra dentro del rango del filtro.
Implemente filtros FIR e IIR en MatLab para diferentes señales.
Fig 6. SEÑAL A LA ENTRADA DEL FILTRO, ESCALON MUESTREADO CON Tm=1
5 UNIVERSIDAD PEDAGOGICA Y TECNNOLOGICA DE COLOMBIA
>> P=[1 -1] >> d=0; >> Vo=0; >> y=filq(d,0,P,Vo,u) >> j=4; >> y(j)=filq(d,j-1,P,Vo,u) y= 1 0 0 0
Aplicando la señal del escalón al filtro anterior vemos que la salida filtra esta señal en el segundo instante de tiempo, luego los valores son cero para todo instante de tiempo. Para filtrar una señal senoidal utilizamos el mismo algoritmo tomando en cuenta que, (
)
El cálculo de los coeficientes se encuentra en los anexos, los valores encontrados son:
>> k=0:100; >> Ao=1; >> u=Ao*sin(0.1*pi.*k); >> d=0; >> P=[1 0.618]; >> Vo=0; >> j=2; >> y(j)=filq(d,j,P,Vo,u) y= 0 0 1.5878 >> stem(u)
Fig. 7 Fig 6. SEÑAL SENOIDAL A LA ENTRADA DEL FILTRO, MUESTREADA CON Tm=1
VII.
REFERENCIAS
[1] C. Savant, Diseño Electrónico: Circuitos y sistemas (Capitulo 12), 3rd ed. México: Pearson Education, 2000. [2] MathWorks, help MATLAB, 1984-2009.
P1=1 P2=0.618
VI.
condiciones ambientales (temperatura, presion etc), su versatilidad para efectuar diversos tipos de filtrado sin tener que modificar el hardware. Cuando aplicamos un filtrado a cualquier señal, debemos tener en cuenta que todo proceso de filtrado introduce un retardo a la señal de salida, es necesario tener presente esto para posteriores cálculos. Los filtros FIR solo dependen de la señal de entrada, a comparación de los filtros IIR donde intervienen anteriores valores a la salida. Es posible solucionar ecuaciones de diferencia mediante algoritmos matemáticos (solución recursiva ó numérica), pero es necesario conocer las condiciones iniciales del sistema.
CONCLUSIONES
Los filtros digitales, presentan ventajas tecnológicas respecto a los analógicos. Algunas de estas ventajas son su mayor insensibilidad a
[3] S. Haykin, Señales y Sistemas. Mexico: Limusa Wiley, 2003. [4]http://www.eveliux.com/mx/teoria-del-muestreo-denyquist.php [5]http://www.tecnun.es/asignaturas/tratamiento%20dig ital/tema8.pdf