Procesamiento Digital de Señales Ing. Biomédica, Ing. Electrónica e Ing. en Telecomunicaciones Capitulo VII Diseño de Filtros Digitales D.U. Campos-Delgado Facultad de Ciencias UASLP Enero-Junio/2014 1 CONTENIDO Causalidad Caracterı́sticas Prácticas de Filtros Diseño de Filtros IIR por Prototipos Analógicos Filtros Prototipo Analógicos Transformaciones en Frecuencia Diseño de Filtros FIR con Fase Lineal Diseño de Filtros FIR con Fase Lineal por Ventanas 2 Causalidad • Un filtro pasa-bajos ideal tiene la siguiente caracterı́stica en el dominio de la frecuencia H(ω) = ( 1 |ω| ≤ ωc 0 ωc < ω ≤ π ∨ −π ≤ ω < −ωc donde ωc ∈ [0, π] representa la frecuencia de corte. Sin embargo, la respuesta al impulso correspondiente a este filtro serı́a ( ω c n=0 −1 π h[n] = F {H(ω)} = ωc sen ωcn n= 6 0 π ωc n ⇒ h[n] 6= 0 para n < 0 y en consecuencia la respuesta del filtro es no-causal, y no podrı́a implementarse en tiempo real !! 3 • Para una aplicación en tiempo real es necesario cumplir causalidad lo que implica (a) La respuesta en frecuencia H(ω) no puede ser cero en una banda finita, excepto por un número finito de puntos (Teorema de Paley-Wiener ). (b) La magnitud |H(ω)| no puede ser constante en un rango finito de frecuencias, y la transición de la banda de paso a la de paro no puede ser abrupta (Fenómeno de Gibbs). (c) Las componentes real e imaginaria de H(ω) son interdependientes y se relacionan por la transformada discreta de Hilbert, es decir la magnitud y fase de H(ω) no se pueden elegir arbitrariamente. Caracterı́sticas Prácticas de Filtros • En general, las caracterı́sticas deseadas de un filtro se pueden definir de acuerdo a los siguientes parámetros i) ωp : frecuencia de corte de la banda de paso. ii) ωs : frecuencia de corte de la banda de paro (ωs > ωp). iii) δ1: rizo máximo de la banda de paso. iv) δ2: rizo máximo de la banda de paro. v) ωs − ωp : banda o región de transición. vi) Ancho de banda: anchura de la banda de paso en el filtro. 4 • En la práctica se acostumbra utilizar una escala logarı́tmica para las especificaciones asociadas a la magnitud 1. Rizo de la banda de paso: 20 log10 δ1. 2. Rizo de la banda de paro: 20 log10 δ2. • En función de la especificaciones del filtro causal, se obtienen los coeficientes del denominador ak y numerador bk de la función de transferencia H(z). Diseño de Filtros IIR • Idea General: diseñar un filtro de tiempo continuo (dominio-s) con la respuesta en frecuencia deseada, y enseguida convertir el sistema LIT a tiempo discreto. • Un filtro en tiempo-continuo (analógico) puede describirse por PM βk sk k=0 = L{ha(t)} Ha(s) = PN k k=0 αk s donde αk y βk denotan los coeficientes del filtro, y ha(t) la respuesta al impulso del filtro analógico. Recordar la definición de la transformada de Laplace Ha(s) = L{ha(t)} = Z ∞ −∞ ha(t)e−st dt y entonces la función de transferencia Ha(s) representa una ecuación diferencial con coeficientes constantes con respecto a la señal de 5 entrada x(t) y salida y(t) N X M X dk y(t) dk x(t) αk βk = k dt dtk k=0 k=0 donde la respuesta en frecuencia√ está dada por Ha(jΩ) con Ω ∈ (−∞, ∞) y j = −1. • Existen 4 técnicas básicas para transformar filtros analógicos a tiempo discreto: I. Aproximación de Derivadas: se emplea una diferencia finita de 1er orden dy(t) dt y(nT ) − y(nT − T ) T t=nT y[n] − y[n − 1] = T = 1 − z −1 ⇒s= T donde T representa el periodo de muestreo. Este mapeo se utiliza generalmente para diseñar filtros pasa-bajos y pasa-banda con frecuencias resonantes pequeñas. II. Invarianza al impulso: el objetivo de diseño es tener un filtro IIR en tiempo discreto cuya respuesta al impulso h[n] corresponda a la versión muestreada de la respuesta al impulso analógica ha(t), es decir n ∈ Z, n ≥ 0 h[n] = ha(nT ) y en consecuencia se tendrı́a el siguiente mapeo z = eT ·s. Sin embargo, éste método no se apropiado para diseñar filtros pasa-altos. Si se puede expresar el filtro analógico en fracciones parciales N X ck Ha(s) = s − pk k=1 donde pk representan los polos de Ha(s) que se asumen reales y diferentes, entonces se tiene por el método de invarianza al impulso H(z) = N X ck T ·pk z −1 1 − e k=1 es decir los polos de H(z) se ubicarı́an en zk = eT ·pk para k ∈ [1, N ]. III. Transformación bilineal: el mapeo puede relacionarse con la fórmula trapezoidal para la integración numérica 2 1 − z −1 2 z−1 s= · = · −1 T 1+z T z+1 por lo que se tendrı́a la siguiente equivalencia entre las variables de frecuencia continua Ω y en tiempo discreto ω Ω= 2 ω T ·Ω tan ⇔ ω = 2 tan−1 T 2 2 IV. Emparejamiento de la TransformadaZ: se mapean los polos y ceros de Ha(s) directamente en polos y ceros en el planoz, a través de la siguiente relación QM (s − zk ) k=1 Ha(s) = QN k=1(s − pk ) m QM (1 − eT zk z −1) k=1 H(z) = QN T pk z −1) (1 − e k=1 Ejemplo: considerar al siguiente filtro pasabajos analógico s+3 Ha(s) = 2 s + 2.4s + 16 utilizar MATLAB para obtener H(z) considerando los métodos de invarianza al impulso, bilineal y el emparejamiento de la transformadaZ, con un periodo de muestreo de T = 0.01 seg. Solución: se emplea el siguiente código con este fin >>Ha=tf ([1 3],[1 2.4 16]); >>Hii=c2d(Ha, 0.01, ’zoh’); ⇒ invarianza al impulso >>Hb=c2d(Ha, 0.01, ’tustin’); ⇒ bilineal >>He=c2d(Ha, 0.01, ’matched’); ⇒ emparejamiento Prototipos Analógicos • Butterworth: es un filtro que no tiene ceros y está definido por 2 |H(Ω)| = 1 Ω 1 + ǫ2 Ω p 2N donde N representa el orden y se tienen los siguientes requerimientos para la magnitud: 1. |H(Ωp )|2 = (1−δ1)2 = 1/(1+ǫ2), y de aquı́ 1 −1 ǫ = (1 − δ1)2 que es un parámetro de diseño. 2 2. |H(Ωs )|2 = δ22 6 El orden del filtro resultante estarı́a dado por ln ǫ12 1 −1 ln δ/ǫ δ22 N= = ln Ωs /Ωp Ωs 2 ln Ω p q donde δ2 = 1/ 1 + δ 2. En consecuencia, los parámetros (δ1, δ1, Ωp, Ωs) definen el orden del filtro. • Chebyshev Tipo I: es un filtro con un rizado constante en la banda de paso, y comportamiento monotónico en la banda de paro, y no tiene ceros. La magnitud del filtro cumple |H(Ω)|2 = 1 2 Ω 1 + ǫ2TN Ωp donde N representa el orden, y TN (·) denota el polinomio de Chebyshev de orden-N generado de forma recursiva por la ecuación Tk+1(x) = 2xTk (x) − Tk−1(x) k = 1, 2, . . . y condiciones de inicio T0(x) = 1 y T1(x) = x. De acuerdo, a las condiciones en la magnitud 1. |H(Ωp )|2 = 1/(1 + ǫ)2, 2. |H(Ωs )|2 = δ22, el orden del filtro resultante serı́a ln N = q 1 − δ12 + q Ωs + ln Ω p 1 − δ22(1 + ǫ2) · ǫδ1 2 s Ωs Ωp 2 cosh−1 δ/ǫ = cosh−1 Ωs/Ωp − 1 q donde δ2 = 1/ 1 + δ 2. Al igual que para el filtro Butterworth, los parámetros (δ1, δ1, Ωp, Ωs) definen el orden del filtro. • Chebyshev Tipo II: es un filtro que contiene polos y ceros sobre el eje imaginario, y exhibe un comportamiento monotónico en la banda de paso y con rizo constante en la banda de paro. La magnitud del filtro cumple 1 2 |H(Ω)| = 2 T (Ω /Ωp ) 1 + ǫ2 TN (Ωs /Ω) s N Las condiciones en la magnitud y el orden resultante se definen de la misma manera que para el filtro Chebyshev Tipo I. • Elı́ptico: este filtro presenta un rizado constante tanto en la banda de paso como en la de paro, y está definido en función de polos y ceros. La magnitud de este filtro cumple 2 |H(Ω)| = 1 Ω 1 + ǫ2 U N Ω p donde UN (·) representa la función elı́ptica Jacobiana de orden N , y los parámetros ǫ y δ satisfacen ǫ= s 1 −1 (1 − δ1)2 v u u1 δ =t 2 −1 δ2 El orden resultante del filtro se define por N = Ω K Ωps K q 1 − (ǫ/δ)2 q K δǫ K 1 − (Ωp /Ωs)2 donde K(·) es la integral completa elı́ptica de primera clase K(x) = Z π/2 0 dθ q 1 − x2 sen2 θ . Ejemplo: considerar un filtro IIR digital pasabajos con las siguientes especificaciones (a). Rizo en la banda de paso (pico-a-pico) ≤ 5 dB. (b). Frecuencia de corte en la banda de paso: 1.2 kHz. (c). Frecuencia de corte en la banda de paro: 2 kHz. (d). Atenuación en la banda de paro: ≥ 40 dB. (e). Frecuencia de muestreo: 8 kHz. Determinar el orden para los siguientes filtros: (A) Butterworth, (B) Chebyshev y (C) Elı́ptico. Solución: realizando los siguientes cálculos se obtiene −0.25dB ⇒ δ1 −40dB ⇒ δ1 = 20 log10(1 − δ1) = 0.0284 = 20 log10 δ2 = 0.01 Además las frecuencias de corte se expresarı́an por Ωp = 2π · 1200 rad/s Ωs = 2π · 2000 rad/s y el parámetro de rizo en la banda de paso por ǫ= s 1 − 1 = 0.2435 2 (1 − δ1) De esta manera, el orden del filtro tipo Butterworth serı́a N= 1 −1 δ22 Ωs 2 ln Ω p ln ǫ12 = 11.78 → 12. Ahora, para el filtro Chebyshev se tendrı́a v u u1 δ = t 2 − 1 = 99.995 δ2 cosh−1 δ/ǫ N = cosh−1 Ωs/Ωp = 6.11 → 7. Finalmente, para el filtro Elı́ptico su orden se calcuları́a por N = Ω K Ωps K q 1 − (ǫ/δ)2 q = 4.0687 → 5, K δǫ K 1 − (Ωp/Ωs)2 utilizando el comando ellipke de MATLAB para evaluar K(·). En consecuencia, tomando como comparación la respuesta tipo Butterworth, si se permite un rizado en la banda de paso y de rechazo (filtro Elı́ptico) se reduce drásticamente el orden del filtro. Butterworth 12vo → Chebysehv 7o. → Elı́ptico 5o. Transformaciones en Frecuencia • Los prototipos analógicos previamente estudiados se definen para un filtro pasa-bajos, pero si se requiere un filtro pasa-altos o pasabanda, se requiere hacer una transformación en el dominio de la frecuencia. • Para obtener un filtro pasa-altos, pasa-banda o rechaza-banda en tiempo discreto se tienen 2 métodos que parten de diseñar un pasa-bajos con los factores de atenuación deseados en la bandas de paso y paro: (A). Aplicar una transformación en tiempo continuo al filtro pasa-bajos para obtener el comportamiento en frecuencia deseado y enseguida mapear a tiempo discreto. (Tabla 10.7, pag. 652, Proakis and Molakis, 2009). 7 (B). Mapear el filtro analógico a tiempo discreto, y enseguida aplicar una transformación en el dominio de la frecuencia discreta. (Tabla 10.8, pag. 653, Proakis and Molakis, 2009). Diseño de Filtros FIR con Fase Lineal • Un filtro FIR de orden M se puede expresar por y[n] = MX −1 bk x[n − k] |{z} k=0 h[k] = h[0]x[n] + . . . + h[M − 1]x[n − M + 1] que también puede caracterizarse por su función de transferencia H(z) = MX −1 h[k]z −k k=0 • Un filtro FIR tiene fase lineal, si su respuesta al impulso unitario cumple la condición h[n] = ( h[M − 1 − n] simetrı́a −h[M − 1 − n] anti-simetrı́a n ∈ [0, M −1] de acuerdo a la propiedad de simetrı́a de la Transformada de Fourier. 8 De esta manera, las raı́ces de H(z) se encuentran en pares recı́procos, es decir si z ∈ C es una raı́z, también lo será 1/z ∈ C. • Cuando h[n] = h[M − 1 − n] (simetrı́a) para n ∈ [0, M − 1], H(ω) puede expresarse por H(ω) = −jω(M −1)/2 H (ω) e r {z } | {z } | función real donde fase lineal ( P M−3 M −1 2 h[n] cos ω h 2 + 2 n=0 Hr (ω) = P M2 −1 2 n=0 h[n] cos ω M2−1 − n M −1 2 −n M impar M par Además, un filtro FIR h[n] simétrico tiene un respuesta diferente de cero a la frecuencia ω = 0 (componente promedio no-cero). • De forma similar, si se cumple h[n] = −h[M − 1 − n] (anti-simetrı́a) para n ∈ [0, M − 1], H(ω) se representa por H(ω) = j[−ω(M −1)/2+π/2] H (ω) e r | {z } | {z } función real donde ( P M−3 2 2 n=0 h[n] sen ω Hr (ω) = P M2 −1 2 n=0 h[n] sen ω fase lineal M −1 2 M −1 2 −n −n M impar M par ya que cuando se tiene M impar debe cumplirse que el centro de una respuesta anti-simétrica satisface M −1 h =0 2 Además si h[n] es anti-simétrica se tiene H (0) = 0 ∧ H (±π) = 0 r r Hr (0) = 0 M impar M par FIR con Fase Lineal por Ventanas • En este método, se especifica la respuesta en frecuencia deseada Hd(ω) ω ∈ [−π, π] como parámetro de diseño. • Enseguida por la Transformada de Fourier Inversa se obtiene la respuesta al impulso deseada hd[n]: 1 π hd[n] = Hd(ω)ejωn dω n ∈ Z 2π −π En general, hd[n] puede tener una duración infinita, por lo que se trunca en el rango n ∈ [0, M − 1], para obtener un filtro causal FIR de orden M. Z • Esta truncación, es equivalente a multiplicar hd[n] por una ventana rectangular w[n] para obtener el filtro FIR h[n]: h [n] d h[n] = hd[n] · w[n] = 0 n ∈ [0, M − 1] n 6∈ [0, M − 1] 9 donde w[n] = 1 0 n ∈ [0, M − 1] n 6∈ [0, M − 1] Para ver la implicación de esto en la respuesta en frecuencia H(ω) = F {h[n]} 1 π H(ω) = Hd(ω)∗W (ω) = Hd(ω)W (ω−σ)dσ 2π −π donde Z W (ω) = = ∞ X w[n]e−jωn = n=−∞ 1 − e−jωM −jω = e 1 − e−jω ⇒ |W (ω)| = | sen ωM/2| | sen ω/2| MX −1 e−jωn n=0 M −1 2 · sen ωM/2 sen ω/2 ω ∈ [−π, π] • La convolución de Hd(ω) con W (ω) para obtener la respuesta del filtro FIR H(ω) tiene el efector de suavizar Hd(ω). Si M se incrementa, el lóbulo central de W (ω) se hace más angosto, y el efecto de suavizado de W (ω) se reduce en H(ω). Además, los lóbulos laterales de W (ω) producen efectos no deseados de rizado en H(ω). • De forma alternativa, se pueden utilizar otros tipos de ventanas: Bartlett, Blackman, Hamming, Hanning, Kaiser, Gaussiana y Tukey (Tabla 10.1, pag. 594, Proakis and Molakis, 2009) ⇒ comando window en MATLAB. Éstas ventanas disminuyen significativamente los lóbulos laterales comparado con la ventana rectangular, pero aumentan la anchura del lóbulo central M=121 1 w[n] 0.8 0.6 Bartlett Blackman Hamming 0.4 0.2 0 0 20 40 60 n 80 100 120 80 100 120 1 w[n] 0.8 0.6 Hanning Gaussiana Tukey 0.4 0.2 0 0 20 40 60 n M=121 20 Bartlett Blackman Hamming W(f) (dB) 0 −20 −40 −60 0 0.05 0.1 0.15 0.2 0.25 0.3 f (ciclos/muestra) 0.35 0.4 0.45 0.5 20 Hanning Gaussiana Tukey 10 W(f) (dB) 0 −10 −20 −30 −40 −50 0 0.05 0.1 0.15 0.2 0.25 0.3 f (ciclos/muestra) 0.35 0.4 0.45 0.5 Ejemplo: se desea diseñar un filtro FIR simétri- co pasa-bajos con fase lineal y orden M , con la siguiente respuesta deseada en la frecuencia Hlp(ω) = −jω M2−1 1·e 0 0 ≤ |ω| ≤ ωc ωc < |ω| ≤ π donde ωc ∈ [0, π] representa la frecuencia de corte. Solución: la respuesta al impulso correspondiente se obtiene por la transformada inversa de Fourier Z 1 π Hlp(ω)ejωn dω hd[n] = 2π Z−π 1 ωc −jω M −1 jωn 2 e dω = e 2π −ωc Z ωc M −1 1 jω n− 2 = dω e 2π −ωc M −1 sen ωc n − 2 M −1 = n = 6 , M −1 2 π n− 2 Por lo tanto, hd[n] denota una respuesta nocausal y con duración infinita. Enseguida, se aplica una ventana para obtener el filtro FIR sen ωc n − M2−1 h[n] = M −1 π n− 2 · w[n] n ∈ [0, M − 1] Si M es un número impar, se selecciona M −1 ωc h = 2 π M= 90, ωc=2π/5 (fc=1/5) 0.4 0.3 h[n] 0.2 0.1 0 −0.1 0 10 20 30 40 50 60 70 80 90 0.45 0.5 n 1.5 M=90 1 |H(f)| M=60 M=30 0.5 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 f (ciclos/muestra) Observar que si M se incrementa, la respuesta del filtro FIR pasa-bajos se acerca al filtro ideal. Ejemplo: se desea diseñar un filtro FIR simétrico pasa-altos con fase lineal y orden M , con la siguiente respuesta deseada en la frecuencia Hhp (ω) = 0 1 · e−jω M2−1 0 ≤ |ω| ≤ ωc ωc < |ω| ≤ π donde ωc ∈ [0, π] representa la frecuencia de corte. Solución: primero observar que del problema anterior −jω M2−1 Hhp (ω) = e − Hlp(ω). A partir de esta observación, la respuesta al impulso correspondiente se obtiene por hd[n] = = = = 1 π Hhp (ω)ejωn dω 2π −π Z Z 1 π −jω M −1 jωn 1 π 2 e dω − e Hlp(ω)ejωn dω 2π −π 2π −π Z 1 π jω n− M2−1 e dω − hlp[n] 2π −π M −1 M −1 sen ωc n − 2 sen π n − 2 − , M −1 M −1 π n− 2 π n− 2 Z Finalmente, se aplica una ventana para obtener el filtro FIR h[n] = sen π n − M −1 2 − sen ωc n − M −1 π n− 2 M −1 2 ·w[n] n ∈ [0, M −1] Si M es un número impar, se selecciona M −1 ωc h =1− 2 π M= 90, ωc=2π/5 (fc=1/5) 0.4 h[n] 0.2 0 −0.2 −0.4 −0.6 0 10 20 30 40 50 60 70 80 90 0.45 0.5 n 1.5 M=90 1 |H(f)| M=60 M=30 0.5 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 f (ciclos/muestra) Nuevamente si M se incrementa, la respuesta del filtro FIR pasa-altos se acerca al filtro ideal. Tarea # 5 Problema del Libro de Texto (Tratamiento Digital de Señales, Proakis y Manolakis, 4a Edición, Prentice-Hall): 4.5 (a), (b) (pag. 262) 4.9 (a),(c) (pag. 263) 4.18 (a)-(c) (pags. 266 y 267) 5.1 (b) (pag. 324) 5.7 (a), (b), (c) (pag. 326) 5.12 (a)-(d) (pag. 327) 5.21 (a)-(d) y 5.24 (a)-(c) (pag. 330), 10 5.42 (a)-(e) (pag. 335), 5.52 (pag. 336).