Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 1 10. Vigesimotercera clase. Diseño de filtros FIR de fase lineal mediante ventanas De acuerdo con las propiedades de la DTFT vistas en la clase anterior, un sistema LTI con respuesta en frecuencia H(ej) actúa como un filtro que selecciona las frecuencias de la señal de entrada: h[n] x[n] y[n] h[k ]x[n k ] k H(ej) X(ej) Y(ej)=H(ej)X(ej) Figura 1. Sistema LTI como filtro selectivo en frecuencia Esta selección le permitiría, por ejemplo, dejar pasar sólo las frecuencias bajas (filtro pasa-bajos), sólo las frecuencias altas (filtro pasa-altos), o sólo una banda (filtro pasa-banda). Más aún, podría eliminar una banda (filtro rechaza-banda) o hacer cualquier otra cosa, como muestra la siguiente figura. En ella hemos supuesto que los coeficientes de los filtros son reales (por eso la simetría par) y que tienen fase cero (la respuesta en frecuencia es real). Como la DTFT es periódica, este patrón se repite cada 2 radianes por muestra. H LP (e j ) Pasa-bajos - -2 -1 0 1 2 H HP (e j ) Pasa-altos - -2 -1 0 1 2 H BP (e j ) Pasa-banda - -2 -1 0 1 2 H BR (e j ) Rechaza-banda - 1 2 0 1 2 H (e j ) Otro - 1 2 0 1 2 Figura 2. Algunos filtros selectivos en frecuencia Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 2 Por ejemplo, considerando la señal de voz femenina de la segunda clase, la siguiente es una representación del efecto que tienen un filtro pasa-bajos y un filtro pasa-altos sobre una porción de la señal. El rango de frecuencias que se muestran corresponde al intervalo [0,] porque, según la propiedad de conjugación, como la señal es real (y los coeficientes de los filtros son reales), la magnitud de la DTFT tiene simetría par. Pasa-bajos a 7/30 h[n] y[n] g[n] z[n] x[n] x[n] 1 0 -1 0 100 200 300 400 500 600 700 800 |X(ej )|, |H(ej )|, |G(ej )| Pasa-altos a 7/30 0 -1 0 100 200 300 400 500 600 700 0 0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 frecuencia , en radianes por muestra 3 1 0.5 1.5 |Z(ej )|, |G(ej )| z[n] 0.5 0 800 1 0 -1 1 1.5 |Y(ej )|, |H(ej )| y[n] 1 1.5 0 100 200 300 400 500 600 tiempo n, en muestras 700 800 1 0.5 0 Figura 3. Efecto de pasar una señal de voz por un filtro pasa-bajos y un filtro pasa-altos Para ver cómo se diseñaron los filtros utilizados en la figura anterior, consideremos un filtro pasabajos ideal con frecuencia de corte c: 1 c H d e j 0 c El subíndice d se refiere a que ésta es la respuesta deseada y nos deberemos aproximar a ella lo más que podamos. Como Hd(ej) es la DTFT de la respuesta al impulso del filtro hd[n], podemos encontrar dicha respuesta al impulso mediante la DTFT inversa: 1 1 jn c 1 e jnc e jnc sin(nc ) H e e e d e d c 2 jn 2j n c n multiplicando numerador y denominador por c/, 1 hd [n] 2 j jn 1 d 2 c jn hd [n] c sinc n c Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 3 ¡Y Listo! Hemos diseñado nuestro primer filtro al encontrar la respuesta al impulso de un sistema LTI que permite pasar todas las frecuencias por debajo de c y bloquea todas las frecuencias por encima de c. Claro, la forma de convergencia de Hd(ej) hace que la ganancia en un intervalo infinitesimal alrededor de las discontinuidades c, no sea uno y cero, aunque el área debajo de la curva de error es cero: el fenómeno de Gibbs que estudiamos en el contexto de la serie de Fourier. En efecto, si consideramos que Hd(ej) es una señal periódica en un dominio continuo, hd[n] es simplemente su serie de Fourier es un dominio discreto y aperiódico. hd[n], wc =0.62832 hd[n], wc =1.2566 hd[n], wc =1.885 hd[n], wc =2.5133 0.6 0.6 0.6 0.6 0.4 0.4 0.4 0.4 0.2 0.2 0.2 0.2 0 0 0 0 -0.2 -0.2 -0.2 -0.2 -10 0 10 Hd(ejw ), wc =0.62832 -10 0 10 Hd(ejw ), wc =1.2566 -10 0 10 Hd(ejw ), wc =1.885 1 1 1 0.5 0.5 0.5 0.5 0 -2 0 2 0 -2 0 2 0 10 Hd(ejw ), wc =2.5133 1 0 -10 0 -2 0 2 -2 0 2 Figura 4. Respuesta al impulso y respuesta en frecuencia de filtros h[n]=sinc(n*c/)*c/ Ese fenómeno de Gibbs nos revela un problema con nuestro flamante diseño: La expresión de hd[n] debe evaluarse para cualquier n entero, lo cual implica que debimos empezar a responder a cada señal de entrada desde un tiempo infinito antes de que la señal se presentara, y que nunca podremos dejar de responder: Este es un filtro IIR no-causal cuya respuesta al impulso empieza desde menos infinito! Sabemos que muchos filtros IIR se pueden implementar de manera recursiva mediante estructuras ARMA, pero éste no es el caso. Así que nuestro primer filtro digital no es realizable. Una forma de salir de esta dificultad es truncando la respuesta al impulso entre –N y N para algún valor de N que nos permita satisfacer las características tolerables del filtro. Esto lo vuelve un filtro FIR de 2N+1 coeficientes, pero sigue siendo no causal. Lo podríamos volver causal si añadimos un retardo de N muestras en la respuesta al impulso. La siguiente expresión muestra ambos procedimientos: hd [n] Filtro ideal IIR no causal (irrealizable) hF [n] hd [n] u[n N ] u[n N 1] Filtro FIR no causal (irrealizable en tiempo real) hFC [n] hd [n N ] u[n] u[n 2 N 1] Filtro FIR causal (realizable en tiempo real) Como vimos cuando analizamos la convergencia de la serie de Fourier, truncar la respuesta al impulso genera oscilaciones alrededor de las frecuencias de corte en la respuesta en frecuencia. Y según la propiedad de desplazamiento en tiempo, la causalización del filtro genera un cambio lineal de la fase de la respuesta al impulso. Estos efectos se muestran en la siguiente figura, que se refiere a un filtro pasa-bajos con frecuencia de corte /2 en el que la respuesta ideal al impulso se trunca Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 4 entre n=-9 y n=9 para obtener un filtro FIR de 19 coeficientes, y después se causaliza desplazándolo 9 muestras. Como en los casos del filtro ideal y del filtro truncado existe simetría par en la respuesta al impulso, la respuesta en frecuencia es real pero los cambios de signo se ven como saltos de radianes en la fase. Los mismos cambios de signo se ven en la fase del filtro causalizado, superpuestos a un desfase lineal de -9, que corresponde al retardo en la respuesta al impulso. |Hd(ejw )| hd[n] (IIR, no causal) fase(Hd(ejw )) 3 1 0.4 2 0.2 0.5 1 0 -0.2 -30 -20 -10 0 10 20 0 30 -3 -2 -1 0 1 2 0 3 -3 -2 -1 |Hf (ejw )| hf [n] (FIR, no causal) 1 2 3 1 2 3 2 3 3 1 0.4 0 fase(Hf (ejw )) 2 0.2 0.5 1 0 -0.2 -30 -20 -10 0 10 20 0 30 -3 -2 -1 0 1 2 0 3 -3 -2 -1 |Hfc (ejw )| hfc [n] (FIR, causal) 0 1 0.4 0 fase(Hfc (ejw )) -10 0.2 0.5 -20 0 -0.2 -30 -20 -10 0 10 20 0 30 -3 -2 -1 0 1 2 -30 3 -3 -2 -1 0 1 Figura 5. Filtro pasa-bajos a /2. Ideal, truncado y causalizado Claro, el último filtro es directamente implementable para ser evaluado en tiempo real, como se muestra en el siguiente diagrama, en el que hemos aprovechado que varios de los coeficientes de la respuesta al impulso son cero (sinc(k/2)=0 cuando k es un número par diferente de cero). x[n-2] z-2 z-2 x[n] b9 x[n-4] b7 + x[n-6] z-2 z-2 b5 b3 + x[n-8] + x[n-9] z-1 b1 z-1 b0 + x[n-10] x[n-14] z-2 z-2 b1 + x[n-12] b3 + b7 + x[n-18] z-2 z-2 b5 + x[n-16] b9 + bk=sinc(k/2)/2 y[n] Figura 6. Filtro FIR causal pasa-bajos a /2 De ahora en adelante omitiremos el paso de causalización y supondremos que la respuesta en frecuencia es real. Después de todo, si deseamos implementar el filtro en tiempo real, sólo necesitamos desplazar la respuesta al impulso con lo que obtendremos un retardo a la salida o, lo que es lo mismo, una fase lineal en la respuesta en frecuencia. La siguiente figura permite observar el efecto de truncar la respuesta ideal al impulso, el cual ya habíamos estudiado en el contexto de la convergencia de la serie de Fourier. Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 5 Respuesta en frecuencia Ideal N=29 N=9 N=5 1 0.8 0.6 0.4 0.2 0 -0.2 0 0.5 1 1.5 frecuencia 2 2.5 3 Figura 7. Respuesta en frecuencia de filtros reales e ideales pasa-bajos a /2 Podemos notar que, a diferencia de la respuesta ideal, las respuestas reales incluyen un rizado en las bandas pasante y detenida y una banda de transición entre ellas, como se muestra en la siguiente figura. H(ej) 1+1 1 1-1 2 -2 0 L c H Figura 8. Forma general de la respuesta de un filtro pasabajos Con el diseño que realizamos, el parámetro N nos permite ajustar el ancho de la banda de transición, pero no nos permite ajustar el rizado en las bandas pasante y detenida porque el fenómeno de Gibbs implica que 1=2=0.09, independientemente de N. Este efecto se debe a que usamos una ventana rectangular para truncar la longitud del filtro: hr [n] hd [n]wr [n] wr [ n ]u [ n N ]u[ n N 1] pero podríamos usar otra ventana que reduzca el cambio brusco de uno a cero. Por ejemplo, consideremos la ventana Hamming, definida de la siguiente manera: hh [n] hd [n]wh [n] wh [ n ] (0.54 0.46cos( n / N )) wr [ n ] Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 6 La siguiente figura compara las dos ventanas y su efecto en la respuesta en frecuencia del filtro pasabajos truncado. ventana con N=9 Respuesta en frecuencia con N=9 Rectangular Hamming 0.5 0 -30 Rectangular Hamming 1 H(ej ) w[n] 1 0.5 0 -20 -10 0 n 10 20 30 0 0.5 2 2.5 3 Respuesta en frecuencia con N=21 Rectangular Hamming Rectangular Hamming 1 H(ej ) 1 w[n] 1.5 ventana con N=21 0.5 0 -30 1 0.5 0 -20 -10 0 n 10 20 30 0 0.5 1 1.5 2 2.5 3 Figura 9. Efecto de la forma de la ventana en la respuesta en frecuencia del filtro pasa-bajos FIR Efectivamente, en comparación con la ventana rectangular, la ventana Hamming reduce el rizado en la banda pasante y en la banda suprimida, pero a costa de ensanchar la banda de transición. El diseño de filtros FIR mediante ventanas se limita a escoger la forma de la ventana y su longitud para que satisfaga los criterios de diseño 1, 2, L y H. La siguiente es una tabla con algunas ventanas típicas y su efecto sobre un filtro pasa-bajos con frecuencia de corte /4.La tabla muestra también la magnitud de la respuesta en frecuencia del filtro pasa-bajos en decibeles, con la intención de ver con mayor claridad el efecto de la ventana. Por ejemplo, las grandes oscilaciones alrededor de la frecuencia de corte de la ventana rectangular se deben a la amplitud de cerca de -20.5 dB (una ganancia de 0.095) del primer lóbulo lateral, la cual sólo se reduce a -40 dB (una ganancia de 0.01) en =. Sin embargo, el primer cruce por cero de esa respuesta en frecuencia se da en =0.27, que es un valor muy cercano a la frecuencia de corte /4. Con la ventana Hanning, en cambio, el primer lóbulo lateral tiene una amplitud de -45 dB (ganancia 0.006), y los demás lóbulos se atenúan rápidamente hasta alcanzar -123 dB en =. Pero el primer cruce por cero se da en =0.31, indicando un ancho de la banda de transición mucho mayor. Desafortunadamente, el hecho de que el primer lóbulo tenga una amplitud de -45 dB es el que determina el parámetro de rizado del filtro, de manera que atenuar tanto las demás frecuencias de la banda rechazada no parece tan buena idea. Por eso se usa la ventana Hamming, que tiene una ganancia más pareja en toda la banda rechazada, pero con una amplitud de -55 dB en el lóbulo principal (ganancia de 0.0018): El rizado se reduce tres veces, aunque en = la amplitud sólo se haya reducido a -62 dB. El ancho de la banda de transición es semejante al filtro con ventana Hanning por lo que, normalmente, la ventana Hamming se prefiere a la ventana Hanning. Por último, la ventana Blackman consigue reducir la ganancia del primer lóbulo lateral a -75 dB (0.00018) con los mismos 61 coeficientes, pero el primer cruce por cero ocurre en =0.37. Así pues, entre estas ventanas la preferible parece ser la Hamming, a menos que se requiera un rizado Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 7 muy pequeño y se pueda tolerar una lenta transición entre la banda pasante y la banda rechazada, en cuyo caso la ventana Blackman sería la adecuada. Tabla 1. Algunas ventanas y sus efectos en un filtro pasa-bajos a /4 Nombre y Expresión para w[n], |n|N Respuesta en frecuencia de un filtro pasabajos de 61 coeficientes (N=30) filtro pasabajos con ventana Rectangular Rectangular 1 filtro pasabajos con ventana Rectangular 0 1 -20 0.8 0.6 -40 10 0.8 20log |H(ej )| H(ej ) 1 0.4 0.6 -60 -80 0.2 0.4 -100 0 0.2 0 0.5 1 -20 1.5 2 2.5 -120 3 0 0.5 1 1.5 0 -15 -10 -5 0 5 10 15 2 2.5 3 20 filtro pasabajos con ventana Hanning Hanning [1+cos(n/N)]/2 filtro pasabajos con ventana Hanning 0 1 -20 20log |H(ej )| 0.8 0.8 0.6 -40 10 H(ej ) 1 0.4 0.6 -80 0.2 0.4 -100 0 0.2 0 0.5 1 1.5 2 2.5 -120 3 0 0.5 1 1.5 0 -20 -60 -15 -10 -5 0 5 10 15 2 2.5 3 20 filtro pasabajos con ventana Hamming Hamming 0.54+0.46cos(n/N) filtro pasabajos con ventana Hamming 0 1 -20 20log |H(ej )| 0.8 0.8 0.6 -40 10 H(ej ) 1 0.4 0.6 -80 0.2 0.4 -100 0 0.2 0 0.5 1 1.5 2 2.5 -120 3 0 0.5 1 1.5 0 -20 -60 -15 -10 -5 0 5 10 15 2 2.5 3 20 filtro pasabajos con ventana Blackman Blackman 0.42+0.5cos(n/N)+0.08cos(2n/N) filtro pasabajos con ventana Blackman 0 1 -20 20log |H(ej )| 0.8 0.8 0.6 10 H(ej ) 1 0.4 0.6 -40 -60 -80 0.2 0.4 -100 0 0.2 0 -20 0.5 1 1.5 0 -15 -10 -5 0 5 10 15 2 2.5 3 -120 0 0.5 1 1.5 2 2.5 3 20 Existen muchas otras clases de ventanas, algunas de ellas, como la ventana Kaiser o la ventana Tuckey, con parámetros configurables que permiten balancear los compromisos que existen entre la amplitud del rizado y al ancho de la banda de transición. La instrucción de matlab h=fir1(N,f) usa el método de la ventana para diseñar un filtro FIR pasa-bajos con N+1 coeficientes, fase lineal y frecuencia de corte c=f, usando una ventana Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate 8 Hamming. Se pueden definir múltiples bandas y escoger diferentes ventanas. Use >>help fir1 para ver los detalles.