Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales FILTRADO DIGITAL FIR E IIR La función principal de un filtro digital, es discriminar las frecuencias de una señal de entrada discreta x[n], convirtiéndola en una señal de salida y[n]. Para ello, se parte de una señal digitalizada (por medio de conversores analógico-digital) y según la ubicación de polos y ceros del filtro digital H(z), será la secuencia de salida obtenida, la cual puede ser transformada nuevamente en una señal analógica (conversores digitalanalógico). La Figura siguiente muestra un diagrama en bloques de un filtro digital. x(t) H (e jω ) CAD y(t) CDA Los conceptos necesarios para trabajar con filtros digitales se basan en el conocimiento de la Transformada Z, Transformada de Fourier de una secuencia y las propiedades de ambas. Es fundamental el manejo de estas propiedades para el diseño y cálculo de los diferentes filtros digitales. Transformada Z Sea x[n] una señal discreta absolutamente integrable para −∞ < n < ∞ . Se define la Transformada Z Bilateral (TZB) de x[n] como: X B ( z ) = Z {x[n]} = +∞ ∑ x[n]z − n , con R1 < z < R2 (1) n = −∞ La Transformada Z Bilateral de una secuencia, tendrá una cierta región de validez, en la cual XB(z) es convergente, llamada región de convergencia (ROC). Si x[n] es una señal causal, es decir x[n]=0 para n < 0 , se define la Transformada Z Unilateral (TZ) de x[n] como: X ( z ) = Z {x[n]} = +∞ ∑ x[n]z − n , con (2) R< z n=0 Al ser la señal x[n] causal, su ROC estará formada por todos los puntos del plano complejo Z que se encuentran fuera de un círculo de radio R. La TZ debe ir siempre acompañada de su ROC ya que dos señales completamente diferentes pueden tener la misma Transformada Z, solamente diferenciándose por su correspondiente ROC. Ejemplo Encontrar la Transformada Z de la señal causal x[n] = a nu[n] X (z ) = ∞ ∞ ∞ ⎛a⎞ ∑ x[n] ⋅ z − n = ∑ a n ⋅ z − n = ∑ ⎜ z ⎟ n=0 n=0 n=0 ⎝ ⎠ n = 1 a 1− z ⇒ X (z ) = z z−a con z > a (3) La expresión (3) indica que la TZ de x[n], está formada por un cero en el origen y un polo ubicado en a y es convergente para todos los puntos del plano complejo exteriores a un círculo de radio a . Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales Fórmula de antitransformación Como toda transformada, las Transformada Z Bilateral o Unilateral tendrán una fórmula de antitransformación que permitirá obtener la secuencia x[n] a partir de su Transformada Z. Esa expresión está dada por: x[n] = 1 X ( z )z n −1dz ∫ 2πj C (4) La expresión (4) es válida tanto para Transformada Bilateral como para Unilateral. Calcular la Transformada Z Inversa, implica realizar una integral curvilínea cerrada, perteneciendo la curva de integración C a la ROC de la TZB o TZ. Propiedades de la Transformada Z A partir de las definiciones (1) y (2), pueden desprenderse un conjunto de propiedades (linealidad, desplazamiento, convolución, etc.), tanto para TZB como para TZ. Propiedades comunes (TZB y TZ) f [n ] = 1 F (z )·z n−1 dz , n ∈ Ζ 2πj C∫ 1 a1 f 1[n ] + a2 f 2 [n ] 2 f [n ] Fb (z) = 4 Im{ f [n ] } 5 n k f [n ] 6 a ± n f [n ] , a ≠ 0 n = −∞ ∞ F(z) = ∑ f [n ] z − n n=0 a1 F1 ( z ) + a2 F2 ( z ) F (z ) Re{ f [n ] } 3 ∞ ∑ f [n ] z − n ; 1 2 1 2j [F (z ) + F (z )] [F (z ) − F (z )] k {f[ ]}* {g[ ]} 7 8 9 ⎛ d ⎞ ( −1 )k ⎜ z ⎟ F ( z ), k ∈ ℵ ∪ {0} ⎝ dz ⎠ F (a m1 z ) n 1 n −1 ∫ F ( z )z dz , n ∈ Ζ 2πj γ F( z ) π 1 σ j ωT jnωT ∫ F ( e ) ⋅ e dω , σ = 2σ −σ T F( z ) f [n ] = f [n ] = F ( z ) ⋅ G( z ) n 1 1 ⎛z⎞ ∫ F (ω) ⋅ G ⎜ ⎟dω 2 πj γ ω ⎝ ω⎠ f [n ] ⋅ g [n ] 10 Propiedades exclusivas de TZB f [n ] = 1 F (z )·z n−1 dz , n ∈ Ζ 2πj C∫ Fb (z) = ∞ ∑ f [n ] z − n n = −∞ 1 f [n + a ] z F( z ) 2 f [n − a ] z −a F( z ) 3 f [− n ] ⎛1⎞ F⎜ ⎟ ⎝z⎠ 4 f [n ] n+a − z a ∫ z −1−a F ( z )dz 5 f [−n ] ⎛1⎞ F⎜ ⎟ ⎝z⎠ a Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales Propiedades exclusivas de TZ f [n ] = 1 F (z )·z n−1 dz , n ∈ ℵ ∪ {0} 2πj C∫ ∞ F(z) = ∑ f [n ] z −n n =0 1 f [n + a ] z [F (z ) − f [0 ] − z f [1] − L − z − a +1 f [a −1] ] , a ∈ ℵ 2 f [n − a ] z − a F (z ) , a ∈ ℵ 3 f [n − a ] 4 f [0 ] z − a F (z ) + f [−a ] + z −1 f [−a +1] + z −2 f [−a + 2 ] + L + z − a +1 f [−1] lim F (z ) lim f [n ] lim 1 − z −1 ·F (z ) 6 ∇f [ n ] z −1 F (z ) z 7 ∇ m f [n ] 8 Δf [n ] 9 Δm f [n ] 5 −1 a z →∞ n →∞ z →1 ( ) m ⎛ z −1⎞ ⎜ ⎟ F (z ) ⎝ z ⎠ (z − 1)F (z ) − zf [0 ] (z − 1) F (z ) − z ∑ (z − 1) m Siendo: k =0 f [n ] n Δk f [0 ] z F (z ) z −1 ∞ F (z ′) f dz ′ + lím [n ] ∫ → ∞ n ′ z z n n 11 m − k −1 k =0 ∑ f [k ] 10 m −1 , n ∈ℵ Identidad de Parseval ∞ 1 ⎛ 1 ⎞ −1 ∑ f [n ] g [n ] = ∫ F (ω) ⋅ G⎜ ⎟ω dω n = −∞ 2 πj γ ⎝ ω⎠ ⎪⎧∇f [n ] = f [n ] − f [n−1] ⎨ ⎪⎩Δf [n ] = f [n+1] − f [n ] ∞ 2 ∑ f [n ] = n = −∞ 1 ⎛ 1 ⎞ −1 ∫ F (ω) ⋅ F ⎜ ⎟ω dω 2πj γ ⎝ ω⎠ Transformada de Fourier de una Secuencia Sea x[n] una señal discreta absolutamente integrable para −∞ < n < ∞ . Se define la Transformada de Fourier de la secuencia (TFS) de x[n] como: ( ) X e jω = ℑ{x[n]} = +∞ ∑ x[n]⋅ e − jωn (5) n = −∞ La expresión (5) se caracteriza por ser una señal continua de la variable ω (a pesar de haber partido de una secuencia) y es periódica en ω de período 2π. Esta característica particular de la TFS, permite obtener su expresión de antitransformación mediante la Serie Exponencial de Fourier, siendo los coeficientes de la serie, la señal x[n]. x[n] = 1 2π π jω jω n ∫ X (e )·e dω , con −∞ < n < ∞ (6) −π Al igual que la Transformada Z, la TFS tiene una serie de propiedades que permiten su cálculo en forma eficiente, principalmente cuando se trabaja con la respuesta en frecuencia de un filtro digital, es decir, la representación gráfica de su respuesta de amplitud y fase en función de ω. Las propiedades que se muestran a continuación, son las básicas para trabajar con la TFS en filtros digitales FIR e IIR. Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales Propiedades TFS f [n] = 1 2π π ( ) jω jω n ∫ F e ·e dω −π a1 f 1[n ] + a2 f 2 [n ] 1 f [n]·e 3 − jω n n = −∞ ( ) ) ) F (e ( Y (e ) = X (e )⋅ H (e ) F e jω ·e m jωn0 ± jω 0 n y[n] = x[n]∗ h[n] = 4 +∞ a1 F1 ( e jω ) + a 2 F2 ( e jω ) f [n m n 0 ] 2 ( ) ∑ x[n]⋅ e F e jω = j ω mω 0 ∞ ∑ x[i ]·h[n − i] i = −∞ jω jω jω Relación entre TFS y TZB Existe una relación entre la Transformada de Fourier de una Secuencia y la Transformada Z Bilateral. Si la ROC de la TZB de una secuencia x[n] contiene al círculo de radio unidad en el plano complejo Z, entonces se puede demostrar que: ( ) H e jω = H B ( z ) z = e j ω con −π ≤ ω ≤ π y e jω ∈ ROC de HB(z) (7) Filtros Digitales Un filtro digital puede ser definido como la transformada Z de un sistema lineal e invariante al desplazamiento (SLID). Considerando que todo SLID puede ser representado mediante una ecuación en diferencias lineal de orden n: a 0 y[n] + a1 y[n − 1] + a 2 y[n − 2] + L + a N y[n − N ] = b0 x[n] + b1 x[n − 1] + b2 x[n − 2] + L + b M x[n − M ] (8) Transformando miembro a miembro (8) y considerando las propiedades de la TZ: a 0 Y ( z ) + a1 z −1Y ( z ) + a 2 z −2 Y ( z ) + L + a N z − N Y (z ) = b0 X ( z ) + b1 z −1 X ( z ) + b2 z −2 X ( z ) + L + b N z − M X ( z ) H (z ) = −1 −2 −M Y ( z ) b0 + b1 z + b2 z + L + b N z = X ( z ) a 0 + a1 z −1 + a 2 z − 2 + L + a N z − N (9) La expresión (9) es la transferencia general de un filtro digital IIR (Infinite Impulse Response), también conocida como filtro ARMA (Auto Regresive Moving Average). En el caso que a1 = a 2 = a 3 = L = a N = 0 , la transferencia del filtro IIR queda: H (z ) = −1 −2 −M b z M + b1 z M −1 + b2 z M − 2 + L + b N Y ( z ) b0 + b1 z + b2 z + L + b N z = = 0 X (z ) a0 a0 z M (10) La expresión (10) es la transferencia de un filtro digital denominado FIR (Finite Impulse Response), también conocido como filtro AR (Auto Regresive). Características generales de los filtros FIR • • Respuesta Finita al Impulso h[n], es decir h[n] ≠ 0 para N 1 ≤ n ≤ N 2 = N 1 + N − 1 , donde si N 1 ≥ 0 el filtro FIR será causal. Su respuesta en frecuencia estará dada por H (e jω ) = ℑ{h[n]} = ∑ h[n]⋅ e − jωn N2 n = N1 • La Transformada Z de un filtro FIR de orden N está formada por N polos ubicados en el origen de coordenadas del plano complejo Z y N ceros ubicados en cualquier zona del plano Z. Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales • • La fase de los FIR es siempre lineal. La relación entre la frecuencia angular continua Ω y el ángulo discreto ω es lineal siendo Ω = • • • ω Ts . Debido a que los FIR tienen respuesta finita al impulso, prácticamente (en tiempo real), el filtrado de señales se realiza con la operación de convolución en el tiempo o por medios de la FFT en el dominio frecuencial. Al estar todos sus polos en el origen, carecen de realimentaciones de la salida, lo que los hace insensibles al ruido por redondeo. Hay que tener en cuenta que el ruido por de cuantificación puede ser crítico según la longitud de palabra que se utilice para diseñar los coeficientes del filtro FIR. Los filtros FIR se diseñan según la ubicación de sus ceros, o mediante ventanas de observación temporal. Características generales de los filtros IIR • h[n] tiene un número infinito de muestras. M • La respuesta en frecuencia está dada por H (e jω ) = ∑ bk e − jωk k =0 N ∑ a k e − jω k . k =0 • • • • • El orden del filtro (N polos), determina el número previo de muestras de la salida que se necesitan almacenar y realimentar en el filtro. Los filtros IIR se implementan prácticamente mediante ecuaciones en diferencias de orden N que determinan la ubicación de los polos y ceros del filtro. Son de fácil implementación para N ≤ 6 . La fase de los filtros IIR es alineal. Sin embargo para f s >> f máx , la relación de fase es aproximadamente lineal. Los filtros IIR se diseñan clásicamente a partir de filtros analógicos mediante la transformada bilineal, que relaciona la frecuencia compleja S con la variable compleja z. Estabilidad de los filtros digitales Un sistema discreto se dice estable si ante una entrada acotada en amplitud, la salida del mismo también está acotada en amplitud. Este concepto llevado al plano complejo Z y haciendo uso de la relación entre TFS y TZB indica que: “Un filtro digital (FIR o IIR) será estable si la ROC de su Transformada Z incluye al círculo de radio unidad, es decir z = e jω . Esto equivale a decir que para filtros causales, los polos de su transferencia deben estar dentro del círculo de radio unitario”. Los filtros FIR siempre serán estables ya que tienen todos sus polos en el origen de coordenadas del plano Z, en cambio los filtros IIR pueden llegar a ser inestables si el módulo de sus polos queda fuera de z = 1 . Diseño de Filtros IIR mediante Transformada Bilineal El diseño de los filtros IIR se basa en el conocimiento de la respuesta en frecuencia H (s ) de filtros analógicos. En consecuencia, se debe encontrar una transformación conforme que transforme el plano complejo S = σ + jΩ en el plano complejo Z = x + jy . Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales La función de variable compleja que realiza esta transformación es la Transformada Bilineal y está dada por: s = f (z ) = 2 1 − z −1 Ts 1 + z −1 (11) Esta transformación, mapea el semiplano izquierdo σ ≤ 0 , del plano complejo S en el círculo de radio unidad z ≤ 1 del plano complejo Z, asegurando que cualquier filtro analógico estable y causal (todos sus polos a la izquierda del eje jΩ), se encuentren dentro del círculo de radio unidad en el plano Z, condición esencial de todo filtro digital causal para ser estable. Para analizar la relación entre la frecuencia angular Ω del plano complejo S y el ángulo ω del plano complejo Z, se reemplaza z = e jω en la expresión (11) obteniéndose: 2 1 − z −1 s = σ + jΩ = Ts 1 + z −1 j z = e jω ω j ω −j ω 2 z −1 2 e jω − 1 2 e 2 e 2 − e 2 = = = ω Ts z + 1 z = e ω Ts e jω + 1 Ts j ω2 j ω2 −j e e +e 2 j ⎛ω ⎞ sen⎜ ⎟ 2 2 ⎛ω ⎞ ⎝2⎠ = j tg ⎜ ⎟ s = σ + jΩ = j T Ts ω ⎛ ⎞ ⎝2⎠ s cos⎜ ⎟ ⎝2⎠ ⇒ Ω= 2 ⎛ω ⎞ tg ⎜ ⎟ Ts ⎝ 2 ⎠ (12) De la expresión (12), puede observarse la relación alineal entre la frecuencia angular continua Ω y el ángulo ω. Sin embargo, para frecuencias de muestreo de varios órdenes de magnitud de las señales a filtrar (el filtro a diseñar), la relación es aproximadamente lineal ya que tg (x ) ≈ x para x << 1 , y ello ocurre cuando estamos a más de una década del polo dominante del filtro a diseñar. La relación lineal que se obtiene ante estas frecuencias de muestreo es Ω = ω Ts = ω ⋅ fs , exactamente igual a la relación lineal entre Ω y ω de los filtros digitales FIR. Ejemplo Dado un filtro Pasa Bajos RC de primer orden, se pide encontrar el filtro digital IIR correspondiente mediante el uso de la transformada bilineal. En la figura siguiente, se observa el filtro analógico RC de primer orden: x(t) La ecuación diferencial que modeliza la relación entrada-salida de este filtro está dada por: R y(t) dy (t ) 1 1 + y (t ) = x(t ) dt RC RC C (13) Transformando miembro a miembro por Laplace la ecuación (13) se tiene que: 1 1 sY (s ) + Y (s ) = X (s ) ⇒ RC RC Y (s ) H (s ) = = X (s ) 1 RC = Ω c , siendo Ω = 1 c 1 s +Ωc RC s+ RC (14) Si se utiliza la transformación bilineal para encontrar el filtro digital equivalente, se tiene que: s= 2 1 − z −1 T s 1 + z −1 ⇒ H ( z ) = H (s ) s = f ( z ) = Ωc s + Ωc Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar z= 2 1− z − 1 Ts 1+ z −1 Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales Ω c T s + Ω c Ts z Ω c T s + Ω c T s z −1 H( z ) = = (Ω c Ts − 2) + (Ω c Ts + 2)z (Ω c Ts + 2) + (Ω c Ts − 2)z −1 H( z ) = b0 + b1 z −1 a 0 + a1 z −1 , siendo: ⎧ ⎪ b0 ⎪ ⎪b ⎪ 1 ⎨ ⎪a 0 ⎪ ⎪ a1 ⎪⎩ Ω c Ts Ω c Ts + 2 Ω c Ts = Ω c Ts + 2 = (15) =1 = Ω c Ts − 2 Ω c Ts + 2 Como puede apreciarse en la expresión (15), el filtro IIR correspondiente al filtro analógico Pasa Bajos RC, está compuesto por un cero en z 0 = −1 y un polo ubicado en zP = 2 − Ω c Ts 2 + Ω c Ts , es decir, dentro del círculo de radio unidad. Diseño de Filtros FIR mediante ventanas El diseño de filtros FIR mediante ventanas se compone por 3 etapas en el diseño: 1. Calcular la respuesta al impulso del filtro ideal deseado, es decir: 1 π hd [n] = H d e j ω ⋅ e j ωn d ω ∫ 2π −π 2. Si la ventana de observación W N [n] es de longitud N, la respuesta en frecuencia del filtro ideal deseado debe contener un término lineal de fase (característica de los filtros FIR), como el siguiente filtro Pasa Bajos digital ideal: ( ) ( ) Hd e jω ⎧ − jω N −1 , − ω ≤ ω ≤ ω 2 ⎪ c c = ⎨1 ⋅ e ω ≤ ω ≤ π , c ⎪⎩ 0 3. Crear los coeficientes del filtro digital FIR (coeficientes b0 , b1 ,L , b N ), multiplicando hd [n] por la ventana de observación deseada W N [n] . h[n] = hd [n]⋅ W N [n] Filtro Ideal Pasa Bajos Digital H d (e jω ) 1 −π −ωc 0 ωc ⎧1 ⋅ e − jωα , − ω c ≤ ω ≤ ω c H d e jω = ⎨ ⎩ 0 , ωc ≤ ω ≤ π ( ) π , siendo α = N −1 2 ω (16) De la respuesta en frecuencia ideal del filtro Pasa Bajos Digital (16), se tiene que: 1 hd [n] = 2π π ∫ H d (e )⋅ e −π jω jωn 1 dω = 2π ωc ∫e −ω c − jωα ⋅e jω n 1 dω = 2π Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar ωc ∫e −ω c jω ( n −α ) ωc 1 e jω (n−α ) dω = 2π j (n − α ) −ω c Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales hd [n] = [ 1 e jω (n −α ) − e − jω (n −α ) j 2π (n − α ) c c ] ⇒ hd [n] = ωc N −1 sin c[ω c (n − α )] , α = 2 π (17) Filtro Ideal Pasa Banda Digital H d (e jω ) 1 −π −ω2 −ω1 0 ω1 ω2 π ω ⎧1 ⋅ e − jωα , ω 1 ≤ ω ≤ ω 2 N −1 , siendo α = H d (e jω ) = ⎨ 2 ⎩ 0 , otros casos (18) De la respuesta en frecuencia ideal del filtro Pasa Banda Digital (18), se tiene que: hd [n] = 1 2π π ∫ H d (e jω )⋅ e jωn dω = −π hd [n] = 1 2π ω ω −ω ⎡ −ω − jωα jωn ⎤ ⎤ 1 ⎡ jω (n−α ) ⋅ e dω + ∫ e − jωα ⋅ e jωn dω ⎥ = dω + ∫ e jω (n−α )dω ⎥ ⎢ ∫e ⎢ ∫e ⎢⎣ −ω ⎥⎦ 2π ⎢⎣−ω ⎥⎦ ω ω 1 2 e 1 ⎡e ⎢ + j (n − α ) ω 2π ⎢ j (n − α ) −ω ⎣ −ω1 jω ( n −α ) jω ( n −α ) ω2 2 1 2 1 2 1 2 1 ⎤ 1 ⎥= e − jω (n−α ) − e − jω (n−α ) + e jω (n−α ) − e jω (n−α ) ⎥⎦ j 2π (n − α ) [ 1 2 2 1 ] 1 [sen[ω 2 (n − α )] − sen[ω 1 (n − α )]] = ω 2 sen[ω 2 (n − α )] − ω1 sen[ω 1 (n − α )] ⇒ hd [n] = π (n − α ) πω 2 (n − α ) πω 1 (n − α ) hd [n] = ω2 ω N −1 sin c[ω 2 (n − α )] − 1 sin c[ω1 (n − α )] , α = π π 2 (19) Filtro Ideal Pasa Altos Digital H d (e jω ) 1 −π −ωc 0 ωc π ω De la figura anterior, que indica la respuesta en frecuencia de un filtro ideal Pasa Altos, puede apreciarse que es la misma que se obtendría a partir de la respuesta de un filtro ideal Pasa Bajos con una frecuencia de corte ω = π − ω c desplazado a la derecha en una frecuencia ω 0 = π . Por otra parte (propiedad 3 de TFS), se tiene que: h[n] h[n] ⋅ e ↔ ± jω 0 n ( ) H e jω ↔ H (e j (ω mω 0 ) ) (20) En consecuencia, de (20) se tiene que: π − ωc n sin c[(π − ω c )(n − α )]⋅ (e jπ ) , pero e jπ = −1 ⇒ π N −1 n π − ωc hd [n] = (− 1) sin c[(π − ω c )(n − α )] , α = 2 π hd [n] = hdLP [n ]⋅ e jπn = Filtro Ideal Elimina Banda Digital 1 −π −ω2 −ω1 0 H d (e jω ) ω1 ω2 Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar π ω (21) Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales El filtro Elimina banda ideal puede ser visto como una combinación lineal (suma) de un filtro Pasa Bajos con una frecuencia de corte ω = ω1 y un filtro Pasa Altos con una frecuencia de corte ω = ω 2 . En consecuencia: H dRB (e jω ) = H LP (e jω ) + H HP (e jω ) ⇒ hdRB [n] = hdLP [n] + hdHP [n] ω N −1 n π −ω2 hdRB [n] = 1 sin c[ω1 (n − α )] + (− 1) sin c[(π − ω 2 )(n − α )] , ω1 < ω 2 y α = π π 2 (22) Ventanas de Observación Tipo de Ventana Función ventana WN[n], 0 ≤ n ≤ N − 1 1 Rectangular 2n N −1 para 0 ≤ n ≤ N −1 2 Barlett 2− 2n N −1 para ≤ n ≤ N −1 N −1 2 Hanning ⎛ ⎛ 2·π·n ⎞ ⎞ 0.5⎜⎜ 1 − cos⎜ ⎟ ⎟⎟ ⎝ N − 1 ⎠⎠ ⎝ Hamming ⎛ 2·π·n ⎞ 0.54 − 0.46 cos⎜ ⎟ ⎝ N −1⎠ Blackman ⎛ 4·π ·n ⎞ ⎛ 2·π ·n ⎞ 0.42 − 0.5 cos⎜ ⎟ ⎟ + 0.08 cos⎜ N − 1 ⎝ N − 1⎠ ⎠ ⎝ 2 ⎡ 2·n ⎞ ⎛ I 0 ⎢β· 1 − ⎜ 1 − ⎟ N −1⎠ ⎢ ⎝ ⎣ I 0 [β] Kaiser ⎤ ⎥ ⎥ ⎦ Donde I0 es la Función de Bessel modificada de orden cero Características de las Ventanas de Observación Ancho de Banda de Transición Δω [rad] Atenuación Mínima en Banda de Transición [dB] Rectangular 1.8 π N 21 Barlett 5.6 π N 25 Hanning 6.2 π N 44 Tipo de Ventana Hamming Blackman Kaiser (β=4.54) Kaiser (β=5.67) 6.6 π N 11π N 5.8 π N 7.8 π N 53 74 50 60 Las tablas anteriores muestras las características temporales y frecuenciales de las ventanas de observación de uso frecuente. La atenuación mínima que se obtiene para cada una de las ventanas, es función del orden del filtro FIR (número de muestras N+1) y en consecuencia, la selectividad aumenta incrementando la cantidad de coeficientes del filtro. Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales Ejemplos de diseño de Filtros Digitales FIR e IIR Primera Parte. Filtros FIR (Finite Impulse Response) 1. Para cada una de las siguientes especificaciones de diseño, se pide implementar los FIR correspondientes mediante una ventana rectangular. En todos los caso el valor de N es 67. Se pide además graficar la respuesta al impulso de cada uno de ellos y la respuesta en frecuencia (lineal y semilogarítmica) para cada uno de ellos verificando su diseño. Utilice para estos gráficos MatLab. a) Filtro Pasa Bajos con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso: 0 – 1 KHz. A partir de los datos del problema, se tiene que: f s 2π = fc ωc ω c = 2π ⇒ fc 1000 1 = 2π = π = 0.25π [rad ] fs 8000 4 De la expresión (17) se tiene que: hd [n] = ωc N −1 y además W N [n] = u[n] − u[n − N ] sin c[ω c (n − α )] , α = 2 π En consecuencia los coeficientes del filtro FIR (su respuesta al impulso) serán: h[n] = hd [n]⋅ WN [n] = ωc sin c[ω c (n − α )]⋅ (u[n] − u[n − N ]) π N −1 y N = 67 2 b) Filtro Pasa Altos con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso: 3 – ∞ KHz. con ω c = 0.25π , α = A partir de los datos del problema, se tiene que: f s 2π = fc ωc ω c = 2π ⇒ fc 3000 3 = 2π = π = 0.75π [rad ] fs 8000 4 De la expresión (21) se tiene que: hd [n] = (− 1) n π − ωc N − 1 y además W N [n ] = u [n ] − u [n − N ] sin c[(π − ω c )(n − α )] , α = π 2 En consecuencia los coeficientes del filtro FIR (su respuesta al impulso) serán: h[n] = hd [n]⋅ WN [n] = (− 1) n π − ωc sin c[(π − ω c )(n − α )]⋅ (u[n] − u[n − N ]) π N −1 y N = 67 2 c) Filtro Pasa Banda con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Eliminación Inferior: 0 – 1 KHz; Banda de Paso: 1 – 2 KHz; Banda de Eliminación Superior: 2 – ∞ KHz. con ω c = 0.75π , α = A partir de los datos del problema, se tiene que: f s 2π = fc ωc f s 2π = fc ωc ⇒ ⇒ f1 1000 1 = 2π = π = 0.25π [rad ] fs 8000 4 f 2000 1 ω 2 = 2π 2 = 2π = π = 0.5π [rad ] fs 8000 2 ω1 = 2π Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales De la expresión (19) se tiene que: hd [n] = ω2 ω N −1 y además sin c[ω 2 (n − α )] − 1 sin c[ω1 (n − α )] , α = π π 2 W N [n ] = u [n ] − u [n − N ] En consecuencia, los coeficientes del filtro FIR (su respuesta al impulso) serán: ω ⎛ω ⎞ h[n] = hd [n]⋅W N [n] = ⎜ 2 sin c[ω 2 (n − α )] − 1 sin c[ω 1 (n − α )]⎟ ⋅ (u[n] − u[n − N ]) π ⎝π ⎠ N −1 y N = 67 2 d) Filtro Elimina Banda con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso Inferior: 0 – 1 KHz; Banda de Eliminación: 1 – 2 KHz; Banda de Paso Superior: 2 – ∞ KHz. con ω1 = 0.25π , ω 2 = 0.5π , α = A partir de los datos del problema, se tiene que: f s 2π = fc ωc f s 2π = fc ωc ⇒ ⇒ f1 1000 1 = 2π = π = 0.25π [rad ] fs 8000 4 f 2000 1 ω 2 = 2π 2 = 2π = π = 0.5π [rad ] fs 8000 2 ω1 = 2π De la expresión (22) se tiene que: hd [n] = ω1 N −1 n π − ω2 y además sin c[ω1 (n − α )] + (− 1) sin c[(π − ω 2 )(n − α )] , α = π π 2 W N [n ] = u[n] − u[n − N ] En consecuencia los coeficientes del filtro FIR (su respuesta al impulso) serán: ⎛ω ⎞ n π − ω2 h[n] = hd [n]⋅ WN [n] = ⎜ 1 sin c[ω1 (n − α )] + (− 1) sin c[(π − ω 2 )(n − α )]⎟ ⋅ (u[n] − u[n − N ]) π ⎝π ⎠ N −1 y N = 67 2 e) Reduzca el orden N de los filtros y observe como cambian las características de los filtros diseñados. ¿Qué puede concluir al respecto?. con ω1 = 0.25π , ω 2 = 0.5π , α = A responder por el alumno en base al análisis de los algoritmos diseñados. 2. Para cada una de las siguientes especificaciones de diseño, se pide implementar los FIR correspondientes mediante la técnica de ventanas. Se pide además graficar la respuesta al impulso de cada uno de ellos y la respuesta en frecuencia (lineal y semilogarítmica) para cada uno de ellos verificando su diseño. Utilice para estos gráficos MatLab. a) Diseñe un filtro Pasa Bajos con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso: 0 – 1 KHz; Banda de Eliminación: 1.4 – ∞ KHz; Atenuación en Banda de Eliminación: 50 dB. A partir de los datos del problema, se tiene que: Δf = 1400 − 1000 = 400 [Hz ] . De la tabla de características de atenuación (ventanas de observación), se elige una ventana de Hamming, es decir: Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales ⎛ 2·π ·n ⎞ WN [n] = 0.54 − 0.46 cos⎜ ⎟ ⇒ de la tabla de atenuaciones de ventanas: ⎝ N − 1⎠ 6.6π 400 1 Δf N= ⇒ Δω = 2π = 2π = π = 0.1π [rad ] Δω fs 8000 10 6.6π 6.6π N= = = 66 . Se elige un valor de N = 67 . Δω 0.1π Por otra parte, al tener una banda de transición desde la banda de paso a la banda de eliminación que no es infinita, se tiene que: fc = f 1000 + 1400 1200 3 = 1200 [Hz ] ⇒ ω c = 2π c = 2π = π = 0.3π [rad ] 2 fs 8000 10 De la expresión (17) se tiene que: hd [n] = 2·π ·n ⎞ ωc N −1 y además WN [n] = 0.54 − 0.46 cos⎛⎜ sin c[ω c (n − α )] , α = ⎟ 2 π ⎝ N − 1⎠ En consecuencia los coeficientes del filtro FIR (su respuesta al impulso) serán: h[n] = hd [n]⋅WN [n] = ωc ⎡ ⎛ 2·π ·n ⎞⎤ sin c[ω c (n − α )]⋅ ⎢0.54 − 0.46 cos⎜ ⎟⎥, 0 ≤ n ≤ N − 1 π ⎝ N − 1 ⎠⎦ ⎣ N −1 y N = 67 2 b) Diseñe un filtro Pasa Altos con las siguientes características: Frecuencia de Muestreo fs de 10 KHz; Banda de Eliminación: 0 – 3 KHz; Banda de Paso: 3.5 – ∞ KHz; Atenuación en Banda de Eliminación: 40 dB. con ω c = 0.3π , α = A partir de los datos del problema, se tiene que: Δf = 3500 − 3000 = 500 [Hz ] . De la tabla de características de atenuación (ventanas de observación), se elige una ventana de Hanning, es decir: WN [n] = 1⎡ ⎛ 2·π ·n ⎞⎤ 1 − cos⎜ ⎟⎥ ⇒ de la tabla de atenuaciones de ventanas: ⎢ 2⎣ ⎝ N − 1 ⎠⎦ Δf 6.2π 500 1 N= ⇒ Δω = 2π = 2π = π = 0.1π [rad ] Δω fs 10000 10 6.2π 6.6π = = 62 . Se elige un valor de N = 63 . N= Δω 0.1π Por otra parte, al tener una banda de transición desde la banda de paso a la banda de eliminación que no es infinita, se tiene que: f 3250 65 3000 + 3500 = 3250 [Hz ] ⇒ ω c = 2π c = 2π = π = 0.65π [rad ] fs 10000 100 2 De la expresión (21) se tiene que: fc = hd [n] = (− 1) n π − ωc N − 1 y además 1⎡ ⎛ 2·π ·n ⎞ ⎤ sin c[(π − ω c )(n − α )] , α = W N [n ] = ⎢1 − cos ⎜ ⎟⎥ π 2 2⎣ ⎝ N − 1 ⎠⎦ En consecuencia los coeficientes del filtro FIR (su respuesta al impulso) serán: h[n] = hd [n]⋅ WN [n] = (− 1) n π − ωc 1⎡ ⎛ 2·π ·n ⎞⎤ sin c[(π − ω c )(n − α )]⋅ ⎢1 − cos⎜ ⎟⎥, 0 ≤ n ≤ N − 1 π 2⎣ ⎝ N − 1 ⎠⎦ Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales N −1 y N = 63 2 c) Diseñe un filtro Pasa Banda con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Eliminación Inferior: 0 – 0.6 KHz; Banda de Paso: 1 – 2 KHz; Banda de Eliminación Superior: 2.6 – ∞ KHz. Atenuación en las Bandas de Eliminación: 40 dB. Utilice una ventana de Blackman. con ω c = 0.65π , α = A partir de los datos del problema, se tiene que: Δf1 = 1000 − 600 = 400 [Hz ] y Δf 2 = 2600 − 2000 = 600 [Hz ] De los dos anchos de banda de atenuación, se elige el mínimo, que dará lugar a un mayor número de muestras del filtro FIR a diseñar. A partir de la tabla de características de atenuación de la ventana de Blackman, se tiene que: ⎛ 4·π ·n ⎞ ⎛ 2·π ·n ⎞ WN [n ] = 0.42 − 0.5 cos⎜ ⎟ ⇒ de la tabla de atenuaciones de ⎟ + 0.08 cos⎜ ⎝ N − 1⎠ ⎝ N − 1⎠ ventanas: N= 11π ⇒ Δω = 2π Δf1 = 2π 400 1 = π = 0.1π 8000 10 Δω fs 11π 11π N= = = 110 . Se elige un valor de N = 111 . Δω 0.1π [rad ] Por otra parte, no ser las bandas de transición infinitas, se tiene que: f 800 2 600 + 1000 = 800 [Hz ] ⇒ ω1 = 2π 1 = 2π = π = 0.2π [rad ] fs 8000 10 2 f 2300 23 2000 + 2600 = 2300 [Hz ] ⇒ ω 2 = 2π 2 = 2π = π [rad ] f2 = fs 8000 40 2 De la expresión (19) se tiene que: f1 = hd [n] = ω2 ω N −1 y además: sin c[ω 2 (n − α )] − 1 sin c[ω 1 (n − α )] , α = π π 2 ⎛ 4·π ·n ⎞ ⎛ 2·π ·n ⎞ WN [n] = 0.42 − 0.5 cos⎜ ⎟ ⎟ + 0.08 cos⎜ ⎝ N −1 ⎠ ⎝ N −1⎠ En consecuencia los coeficientes del filtro FIR (su respuesta al impulso) serán: ω ⎛ω ⎞ h[n] = hd [n]⋅WN [n] = ⎜ 2 sin c[ω 2 (n − α )] − 1 sin c[ω1 (n − α )]⎟ ⋅ WN [n], 0 ≤ n ≤ N − 1 con: π ⎝π ⎠ 23 N −1 ⎛ 2·π ·n ⎞ ⎛ 4·π ·n ⎞ ω1 = 0.2π , ω 2 = π , WN [n] = 0.42 − 0.5 cos⎜ y N = 111 ⎟ + 0.08 cos⎜ ⎟, α = 40 2 ⎝ N −1⎠ ⎝ N −1⎠ d) Diseñe un filtro Elimina Banda con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso Inferior: 0 – 0.6 KHz; Banda de Eliminación: 1 – 2 KHz; Banda de Paso Superior: 2.6 – ∞ KHz. Atenuación en la Banda de Eliminación: 70 dB. A partir de los datos del problema, se tiene que: Δf1 = 1000 − 600 = 400 [Hz ] y Δf 2 = 2600 − 2000 = 600 [Hz ] De los dos anchos de banda de atenuación, se elige el mínimo, que dará lugar a un mayor número de muestras del filtro FIR a diseñar. A partir de la tabla de características de atenuación, se elige la ventana de Blackman: Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales ⎛ 2·π ·n ⎞ ⎛ 4·π ·n ⎞ WN [n ] = 0.42 − 0.5 cos⎜ ⎟ + 0.08 cos⎜ ⎟ ⇒ de la tabla de atenuaciones de N − 1 ⎝ ⎠ ⎝ N − 1⎠ ventanas: N= 11π ⇒ Δω = 2π Δf1 = 2π 400 1 = π = 0.1π 8000 10 Δω fs 11π 11π N= = = 110 . Se elige un valor de N = 111 . Δω 0.1π [rad ] Por otra parte, no ser las bandas de transición infinitas, se tiene que: 600 + 1000 f 800 2 = 800 [Hz ] ⇒ ω1 = 2π 1 = 2π = π = 0.2π [rad ] 2 fs 8000 10 f 2300 23 2000 + 2600 = 2300 [Hz ] ⇒ ω 2 = 2π 2 = 2π = π [rad ] f2 = fs 8000 40 2 De la expresión (22) se tiene que: f1 = ω1 N −1 n π − ω2 sin c[ω1 (n − α )] + (− 1) sin c[(π − ω 2 )(n − α )] , ω1 < ω 2 y α = π π 2 y además WN [n] = 0.42 − 0.5 cos⎛⎜ 2·π ·n ⎞⎟ + 0.08 cos⎛⎜ 4·π ·n ⎞⎟ ⎝ N −1 ⎠ ⎝ N −1⎠ hd [n] = En consecuencia los coeficientes del filtro FIR (su respuesta al impulso) serán: ⎛ω ⎞ n π −ω2 h[n] = hd [n]⋅WN [n] = ⎜ 1 sin c[ω1 (n − α )] + (− 1) sin c[(π − ω 2 )(n − α )]⎟ ⋅ WN [n], 0 ≤ n ≤ N − 1 π ⎝π ⎠ siendo: ω1 = 0.2π , ω 2 = 23 N −1 ⎛ 2·π ·n ⎞ ⎛ 4·π ·n ⎞ π , WN [n] = 0.42 − 0.5 cos⎜ y N = 111 ⎟ + 0.08 cos⎜ ⎟, α = 40 2 ⎝ N −1⎠ ⎝ N −1⎠ 3. Diseñe un filtro FIR Notch de segundo orden (N=2) que elimine la frecuencia de ruido de línea de 50 Hz de un Electrocardiógrafo. La frecuencia a la cual se muestrea la señal de ECG es de 250 Hz (más del doble del ancho de banda de una señal de electrocardiograma que es aproximadamente 100 Hz en el humano). Para diseñar un filtro FIR Notch de segundo orden, sus dos polos tienen que estar en el origen del plano complejo Z, en tanto que los dos ceros complejos conjugados deber estar sobre el círculo de radio unidad. En consecuencia: f s 2π = f0 ω0 ⇒ ω 0 = 2π f0 50 2 = 2π = π = 0.4π [rad ] fs 250 5 Los ceros del filtro FIR Notch serán entonces: z0 = 1 ⋅ e ± jω . Por lo tanto, la respuesta del filtro en la transformada Z será: 0 H (z ) = k ( z − z ) ⋅ ( z − z ) = k (z − e ω ) ⋅ (z − e j 01 0 02 z 2 z 2 − jω 0 )=k z 2 − 2 z cos ω 0 + 1 z2 Se desea que a ω = 0 la ganancia del filtro Notch sea 1. En consecuencia: ( H z = e jω ω =0 ) =1 =1 ⇒ k 1 − 2 cos ω 0 + 1 1 =1 ⇒ k = 2(1 − cos ω 0 ) 1 Finalmente, se tiene que: H (z ) = z 2 − 2 z cos ω 0 + 1 1 2(1 − cos ω 0 ) z2 Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales Antitransformando la expresión anterior, se encuentran los coeficientes del filtro digital FIR Notch de segundo orden que elimina la frecuencia de línea en una señal de ECG: h[n] = cos ω 0 1 1 2 δ [n] − δ [n − 1] + δ [n − 2], con ω 0 = π [rad ] 2(1 − cos ω 0 ) 2(1 − cos ω 0 ) 2(1 − cos ω 0 ) 5 4. Diseñe un diferenciador FIR de primer orden si la frecuencia a la cual se quiere muestrear la señal a derivar es de fs=1000 Hz. La derivada discreta de una señal digitalizada, se puede expresar como: y[n] = x[n] − x[n − 1] = f s ⋅ ( x[n] − x[n − 1]) Ts Si se reemplaza x[n] = d [n] , se obtendrá la respuesta al impulso del filtro FIR derivador, es decir: h[n] = f s ⋅ δ [n] − f s ⋅ δ [n − 1] Transformando la expresión anterior, se obtiene la transferencia del filtro digital: H [z ] = f s ⋅ (1 − z −1 ) = f s z −1 z Segunda Parte. Filtros IIR (Infinite Impulse Response) En la sección de diseño de filtros IIR mediante Transformada Bilineal, se explicitó el procedimiento utilizado para el cálculo de los coeficientes del filtro digital. En consecuencia, estos ejercicios se encuentran desarrollados íntegramente en Matlab, debido a la complejidad de los cálculos si se realizaran en forma manual. 1. Dada la respuesta en frecuencia de un filtro Pasa Bajos de primer orden RC, se pide implementarlo en forma digital con un filtro IIR (mediante el uso de la Transformada Bilineal) con las siguientes características: Frecuencia de Muestreo fs=1 KHz y una frecuencia de 3 dB del filtro de 60 Hz. 2. Verifique la correcta implementación del filtro IIR anterior mediante MatLab, calculando y graficando su respuesta al impulso, su función de Transferencia y graficando la salida temporal y(t) que se obtiene de haber filtrado la señal de entrada x(t ) = 2 sen(2π50 ⋅ t ) + sen(2π300 ⋅ t ) con el filtro digital IIR. 3. Diseñe un filtro Pasa Bajos Butterworth IIR suponiendo que se requiere que la banda de paso sea constante dentro de 1 dB para frecuencias por debajo de 100 Hz y que la banda de atenuación sea mayor que 15 dB para frecuencias superiores a 150 Hz (se recomienda utilizar MatLab para obtener la función de transferencia del filtro pedido). La frecuencia de muestreo que se utiliza para el diseño del filtro es de 1 KHz. Verifique su diseño graficando la respuesta al impulso del filtro como así también su respuesta en frecuencia. 4. Diseñe un filtro Pasa Altos Chebyshev IIR con una frecuencia de –3 dB a 1 KHz y una banda de atenuación de 50 dB a 0.5 KHz. La frecuencia de muestreo que se utiliza para el diseño del filtro es de 10 KHz. Verifique su diseño graficando la respuesta al impulso del filtro como así también su respuesta en frecuencia. Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales Desarrollos de los ejemplos en lenguaje MatLab Primera Parte. Filtros FIR (Finite Impulse Response) 1. % % % % Resultados MatLab. a) Filtro Pasa Bajos con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso: 0 – 1 KHz. Ventana rectancular con N=67. Filtro Pasa Bajos FIR con Ventana Rectangular FIR con su respuesta de frecuencia y fase. Diseño mediante ventana cuadrada Copyright @2004 Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_1a fs=8000; figure(1) N=67; alfa=(N-1)/2; % Linealidad de fase wc=0.25*pi; n=0:N-1; hn=zeros(size(n)); hn=wc/pi*sinc(wc*(n-alfa)/pi); subplot(221) plot(n,hn); title('Pasa Bajos. h[n]') grid on [H,W]=freqz(hn,1,N); f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') xlabel('f [Hz]') subplot(224) plot(f,angle(H)); title('Resp. de Fase') grid on xlabel('f [Hz]') b) Filtro Pasa Altos con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso: 3 – ∞ KHz. Ventana rectancular con N=67. % Filtro Pasa Altos FIR con Ventana Rectangular % Copyright @2004 % Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_1b fs=8000; figure(1) N=67; alfa=(N-1)/2; n=0:N-1; hn=zeros(size(n)); wc=0.75*pi; hn=zeros(size(n)); expo=(-1).^n; hn=(pi-wc)/pi*sinc((pi-wc)… *(n-alfa)/pi).*expo; subplot(221) plot(n,hn); title('Pasa Altos. h[n]') Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales grid on [H,W]=freqz(hn,1,N); f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') xlabel('f [Hz]') subplot(224) plot(f,angle(H)); title('Resp. de Fase') grid on xlabel('f [Hz]') c) % % % % Filtro Pasa Banda con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Eliminación Inferior: 0 – 1 KHz; Banda de Paso: 1 – 2 KHz; Banda de Eliminación Superior: 2 – ∞ KHz. Ventana rectancular con N=67. Filtro Pasa Banda FIR con Ventana Rectangular FIR con su respuesta de frecuencia y fase. Diseño mediante ventana cuadrada Copyright @2004 Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_1c % Filtro FIR Pasa Banda f1=1 KHz y f2=2 KHz fs=8000; figure(1) N=67; % tamaño del filtro FIR alfa=(N-1)/2; % Linealidad de fase n=0:N-1; hn=zeros(size(n)); w1=0.25*pi; w2=0.5*pi; hn=zeros(size(n)); hn=w2/pi*sinc(w2*(n-alfa)/pi)… -w1/pi*sinc(w1*(n-alfa)/pi); subplot(221) plot(n,hn); title('Pasa Banda. H[n]') grid on [H,W]=freqz(hn,1,N); f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') xlabel('f [Hz]') subplot(224) plot(f,angle(H)); grid on title('Resp. de Fase') grid on xlabel('f [Hz]') d) Filtro Elimina Banda con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso Inferior: 0 – 1 KHz; Banda de Eliminación: 1 – 2 KHz; Banda de Paso Superior: 2 – ∞ KHz. Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales % % % % Filtro Elimina FIR con Ventana Rectangular FIR con su respuesta de frecuencia y fase. Diseño mediante ventana cuadrada Copyright @2004 Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_1d fs=8000; figure(1) N=67; alfa=(N-1)/2; n=0:N-1; hn=zeros(size(n)); w1=0.25*pi; w2=0.5*pi; expo=(-1).^n; hn=w1/pi*sinc(w1*(n-alfa)/pi)… +(pi-w2)/pi*sinc((pi-w2)… *(n-alfa)/pi).*expo; subplot(221) plot(n,hn); title('Elimina Banda H[n]') grid on [H,W]=freqz(hn,1,N); f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') xlabel('f [Hz]') subplot(224) plot(f,angle(H)); grid on title('Resp. de Fase') grid on xlabel('f [Hz]') 2. Resultados MatLab. a) Diseñe un filtro Pasa Bajos con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso: 0 – 1 KHz; Banda de Eliminación: 1.4 – ∞ KHz; Atenuación en Banda de Eliminación: 50 dB. % Filtro Pasa Bajos FIR con Ventana Hamming % FIR con su respuesta de frecuencia y fase. Diseño mediante ventana cuadrada % Copyright @2004 % Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_2a fs=8000; figure(1) N=67; alfa=(N-1)/2; wc=0.3*pi; n=0:N-1; hn=zeros(size(n)); hn=wc/pi*sinc(wc*(n-alfa)/pi); Wn=hamming(N)'; hn=hn.*Wn; subplot(221) plot(n,hn); Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales title('Pasa Bajos. h[n]') grid on [H,W]=freqz(hn,1,N); f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') xlabel('f [Hz]') subplot(224) plot(f,angle(H)); title('Resp. de Fase') grid on xlabel('f [Hz]') b) Diseñe un filtro Pasa Altos con las siguientes características: Frecuencia de Muestreo fs de 10 KHz; Banda de Eliminación: 0 – 3 KHz; Banda de Paso: 3.5 – ∞ KHz; Atenuación en Banda de Eliminación: 40 dB. % % % % Filtro Pasa Altos FIR con Ventana Hanning FIR con su respuesta de frecuencia y fase. Diseño mediante ventana cuadrada Copyright @2004 Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_2b fs=10000; figure(1) N=63; alfa=(N-1)/2; n=0:N-1; hn=zeros(size(n)); wc=0.65*pi; hn=zeros(size(n)); expo=(-1).^n; hn=(pi-wc)/pi*sinc((pi-wc)… *(n-alfa)/pi).*expo; Wn=hanning(N)'; hn=hn.*Wn; subplot(221) plot(n,hn); title('Pasa Altos. h[n]') grid on [H,W]=freqz(hn,1,N); f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') xlabel('f [Hz]') subplot(224) plot(f,angle(H)); title('Resp. de Fase') grid on xlabel('f [Hz]') c) Diseñe un filtro Pasa Banda con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Eliminación Inferior: 0 – 0.6 KHz; Banda de Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales Paso: 1 – 2 KHz; Banda de Eliminación Superior: 2.6 – ∞ KHz. Atenuación en las Bandas de Eliminación: 40 dB. Utilice una ventana de Blackman. % % % % Filtro Pasa Banda FIR con Ventana Blackman FIR con su respuesta de frecuencia y fase. Diseño mediante ventana cuadrada Copyright @2004 Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_2c fs=8000; figure(1) N=111; alfa=(N-1)/2; n=0:N-1; hn=zeros(size(n)); w1=0.2*pi; w2=23*pi/40; hn=zeros(size(n)); hn=w2/pi*sinc(w2*(n-alfa)/pi)… -w1/pi*sinc(w1*(n-alfa)/pi); Wn=blackman(N)'; hn=hn.*Wn; subplot(221) plot(n,hn); title('Pasa Banda. H[n]') grid on [H,W]=freqz(hn,1,N); f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') xlabel('f [Hz]') subplot(224) plot(f,angle(H)); grid on title('Resp. de Fase') grid on xlabel('f [Hz]') d) Diseñe un filtro Elimina Banda con las siguientes características: Frecuencia de Muestreo fs de 8 KHz; Banda de Paso Inferior: 0 – 0.6 KHz; Banda de Eliminación: 1 – 2 KHz; Banda de Paso Superior: 2.6 – ∞ KHz. Atenuación en la Banda de Eliminación: 70 dB. % % % % Filtro Elimina FIR con Ventana Blackmamn FIR con su respuesta de frecuencia y fase. Diseño mediante ventana cuadrada Copyright @2004 Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_2d fs=8000; figure(1) N=111; alfa=(N-1)/2; n=0:N-1; hn=zeros(size(n)); w1=0.2*pi; w2=23*pi/40; expo=(-1).^n; hn=w1/pi*sinc(w1*(n-alfa)/pi)+… Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales (pi-w2)/pi*sinc((pi-w2)*… (n-alfa)/pi).*expo; Wn=blackman(N)'; hn=hn.*Wn; subplot(221) plot(n,hn); title('Elimina Banda H[n]') grid on [H,W]=freqz(hn,1,N); f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') xlabel('f [Hz]') subplot(224) plot(f,angle(H)); grid on title('Resp. de Fase') grid on xlabel('f [Hz]') 3. Diseñe un filtro FIR Notch de segundo orden (N=2) que elimine la frecuencia de ruido de línea de 50 Hz de un Electrocardiógrafo. La frecuencia a la cual se muestrea la señal de ECG es de 250 Hz (más del doble del ancho de banda de una señal de electrocardiograma que es aproximadamente 100 Hz en el humano). % % % % Filtro Notch Segundo Orden FIR con su respuesta de frecuencia y fase. Diseño mediante ventana cuadrada Copyright @2004 Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_4 fs=250; % Frecuencia de Muestreo f0=50; % Frecuencia de Eliminación figure(1) N=3; % tamaño del filtro FIR n=0:N-1; w0=0.4*pi; % Frecuencia normalizada en el plano Z hn=zeros(size(n)); hn(1)=1/(2*(1-cos(w0))); hn(2)=-cos(w0)/(1-cos(w0)); hn(3)=1/(2*(1-cos(w0))); subplot(221) stem(n,hn); title('Elimina Banda H[n]') grid on [H,W]=freqz(hn,1); f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') subplot(224) plot(f,angle(H)); grid on title('Resp. de Fase') grid on Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales 4. Diseñe un diferenciador FIR de primer orden si la frecuencia a la cual se quiere muestrear la señal a derivar es de fs=1000 Hz. % Filtro Diferenciador de Segundo Orden % FIR con su respuesta de frecuencia y fase. Diseño mediante ventana cuadrada % Copyright @2004 % Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_5 fs=1000; % Frecuencia de Muestreo figure(1) N=2; % tamaño del filtro FIR n=0:N-1; hn=zeros(size(n)); hn(1)=fs; hn(2)=-fs; subplot(221) stem(n,hn); title('Diferenciador H[n]') grid on [H,W]=freqz(hn,1,N); min(abs(H)) f=W*fs/(2*pi); subplot(222) plot(f,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(f,Hdb); grid on title('Resp. de Amplitud (dB)') subplot(224) plot(f,angle(H)); grid on title('Resp. de Fase') grid on Segunda Parte. Filtros IIR (Infinite Impulse Response) 1. Dada la respuesta en frecuencia de un filtro Pasa Bajos de primer orden RC, se pide implementarlo en forma digital con un filtro IIR (mediante el uso de la Transformada Bilineal) con las siguientes características: Frecuencia de Muestreo fs=1 KHz y una frecuencia de 3 dB del filtro de 60 Hz. % % % % % % % % Función que demuestra la salida de un filtro pasa bajos RC, implementado en forma digital mediante el método de Transformada Bilineal Se ingresan los vectores del filtro B y A. Se usa Una frecuencia de muestreo de 1KHz, una señal de entrada correspondiente a la suma de dos senoidales de 50 y 300 Hz. Se usó una frecuencia de polo en el filtro de fp=60 Hz. Copyright @2004 Msc. Ing. Franco Martín Pessana. Universidad Favaloro function Y=G6_b1() % Definición de las constantes Fs=1000; Fp=60; wp=2*pi*Fp; Ts=1/Fs; t=0:Ts:1-Ts; % 1000 puntos h=figure(1); Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales set(h,'name','Filtro Digital. Transformada Bilineal'); x=2*sin(2*pi*50*t)+sin(2*pi*300*t); figure(1); subplot(221); plot(t(1:200),x(1:200)); title('Señal de Entrada'); ylabel('x(t)'); grid; B=[wp*Ts wp*Ts]; A=[wp*Ts+2 wp*Ts-2]; [H,w]=freqz(B,A,256); F=Fs*w./(2*pi); subplot(222); plot(F,abs(H)) title('Respuesta del Filtro'); grid; subplot(223); semilogy(F,(abs(H))); title('Respuesta del Filtro dB'); ylabel('H(f)'); Y=filter(B,A,x); grid; subplot(224); plot(t(1:200),Y(1:200)); title('Señal de Salida'); ylabel('y(t)'); grid; n=zeros(size(t)); n=0:size(t,2)-1; delta=zeros(size(n)); delta(1)=1; hn=filter(B,A,delta); hn(1:2) figure(2) subplot(221) plot(t(1:50),hn(1:50)); title('Pasa Bajos. h[n]') grid on [H,W]=freqz(hn,1,256); subplot(222) %size(H) %size(F) plot(F,abs(H)); grid on title('Resp. de Amplitud') subplot(223) Hdb=20*log(abs(H)); plot(F,Hdb); grid on title('Resp. de Amplitud (dB)') xlabel('f [Hz]') subplot(224) plot(F,angle(H)); title('Resp. de Fase') grid on xlabel('f [Hz]') 2. Verifique la correcta implementación del filtro IIR anterior mediante MatLab calculando y graficando su respuesta al impulso, su función de Transferencia y graficando la salida temporal y(t) que se obtiene de haber filtrado la señal de entrada x(t ) = 2 sen(2π50 ⋅ t ) + sen(2π300 ⋅ t ) con el filtro digital IIR. 3. Diseñe un filtro Pasa Bajos Butterworth IIR suponiendo que se requiere que la banda de paso sea constante dentro de 1 dB para frecuencias por debajo de 100 Hz y que la banda de atenuación sea mayor que 15 dB para frecuencias superiores a 150 Hz (se recomienda utilizar MatLab para obtener la función de transferencia del filtro pedido). La frecuencia de muestreo que se utiliza para el diseño del filtro es de 1 Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales KHz. Verifique su diseño graficando la respuesta al impulso del filtro como así también su respuesta en frecuencia. % Copyright @2004 % Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_b4() % Orden y Frecuencia Natural de Diseño [N,Wn]=BUTTORD(2*pi*100,2*pi*150,1,15,'s') [B,A]=butter(N,Wn,'s'); H=tf(B,A) figure(1) bode(H) Fs=1000; [Numz,Denz]=bilinear(B,A,Fs); [Hd,W]=freqz(Numz,Denz); figure(2) F=Fs*W./(2*pi); subplot(211) plot(F,abs(Hd)); xlabel('Hz') ylabel('Hd') HHd=tf(Numz,Denz,1/Fs) Z=roots(Numz); P=roots(Denz); subplot(212) zplane(Z,P) En la Pantalla observamos N=6 Wn = 7.086537346688198e+002 Transfer function: 1.266e017 --------------------------------------------------------------------------------------------------------------------s^6 + 2738 s^5 + 3.748e006 s^4 + 3.253e009 s^3 + 1.882e012 s^2 + 6.905e014 s + 1.266e017 Transfer function: 0.0005135 z^6 + 0.003081 z^5 + 0.007702 z^4 + 0.01027 z^3 + 0.007702 z^2 + 0.003081 z + 0.0005135 ------------------------------------------------------------------------------------------------------------------------------z^6 - 3.377 z^5 + 5.114 z^4 - 4.329 z^3 + 2.139 z^2 - 0.5805 z + 0.06733 4. Diseñe un filtro Pasa Altos Chebyshev IIR con una frecuencia de –3 dB de 1 KHz y una banda de atenuación de 30 dB a 0.5 KHz. La frecuencia de muestreo que se utiliza para el diseño del filtro es de 2 KHz. Verifique su diseño graficando la respuesta al impulso del filtro como así también su respuesta en frecuencia. Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar Procesamiento Digital de Señales Adquisición y Procesamiento de Señales Biológicas Facultad de Ingeniería y Ciencias Exactas y Naturales % Copyright @2004 % Msc. Ing. Franco Martín Pessana. Universidad Favaloro function G6_b6() [N,Wn]=CHEB1ORD(2*pi*500,2*pi*1000,1,50,'s'); %[B,A]=BUTTER(N,1,'s'); [B,A]=CHEBY1(N,1,1,'s'); Wc=2*pi*1000; [NUMT,DENT]=lp2hp(B,A,Wc); % Transformación de pasa Bajos a Passa Altos %H=tf(B,A) H=tf(NUMT,DENT) figure(1) bode(H) Fs=10000; % Frecuencia de Muestreo [Numz,Denz]=bilinear(NUMT,DENT,Fs); % Transformada Bilineal para obtener IIR [Hd,W]=freqz(Numz,Denz); figure(2) F=Fs*W./(2*pi); subplot(211) plot(F(1:200),abs(Hd(1:200))); xlabel('Hz') ylabel('Hd') HHd=tf(Numz,Denz,1/Fs) % Filtro Butterworth de 6to orden digital Z=roots(Numz); P=roots(Denz); subplot(212) zplane(Z,P) En la Pantalla observamos: N=6 Wn = 3.141592653589793e+003 Transfer function: 0.8913 s^6 - 1.808e-012 s^5 - 6.361e-008 s^4 - 5.699e-014 s^3 - 5.022 s^2 + 986.1 s + 4.2e-023 -------------------------------------------------------------------------------------------------------------------------s^6 + 2.8e004 s^5 + 5.382e008 s^4 + 4.327e012 s^3 + 4.367e016 s^2 + 1.319e020 s + 8.929e023 Transfer function: 0.1931 z^6 - 1.159 z^5 + 2.897 z^4 - 3.863 z^3 + 2.897 z^2 - 1.159 z + 0.1931 ----------------------------------------------------------------------------------------------z^6 - 2.925 z^5 + 4.155 z^4 - 3.344 z^3 + 1.735 z^2 - 0.5691 z + 0.1409 Msc. Ing. Franco Martin Pessana fpessana@favaloro.edu.ar