Universidad Tecnológica Nacional Facultad Regional Bahía Blanca INTRODUCCION AL PROCESAMIENTO DIGITAL DE SEÑALES Cátedra: Técnicas Digitales III Profesor: Mag. Guillermo R. Friedrich Octubre 2002 Indice Introducción ......................................................................................................... 1 1. Filtros Digitales ............................................................................................... 1 1.1 Características de los filtros digitales .................................................. 1 1.2 Caracterización de filtros digitales ...................................................... 3 1.2.1 Filtros No Recursivos ........................................................... 3 1.2.2 Filtros Recursivos ................................................................. 4 1.2.3 Redes de Filtrado Digital....................................................... 4 2. Introducción al análisis en el dominio del tiempo ........................................ 5 2.1 Sumatoria de Convolución .................................................................. 8 2.2 Estabilidad ........................................................................................... 9 3. La transformada Z .......................................................................................... 11 3.1 Propiedades de la transformada Z ....................................................... 11 3.2 Transformada Z unilateral ................................................................... 12 3.3 La transformada Z inversa ................................................................... 13 3.4 Otras maneras de hallar la antitransformada Z .................................... 14 3.5 Aplicación de la transformada Z ..........................................................17 3.5.1 Obtención de H(z) ................................................................. 17 3.5.2 Criterio de Estabilidad de Jury ..............................................19 3.5.3 Análisis en el dominio del tiempo ........................................ 20 3.5.4 Análisis en el dominio de la frecuencia ................................ 21 4. Aproximaciones de filtros analógicos ............................................................ 23 4.1 Conceptos básicos ............................................................................... 23 4.2 Aproximación de Butterworth ............................................................ 23 4.2.1 Función Transferencia Normalizada .................................... 24 4.3 Otras aproximaciones de filtros analógicos ......................................... 25 4.4 Transformaciones ................................................................................ 26 5. Aproximación por filtros recursivos ............................................................. 27 5.1 Realizabilidad ...................................................................................... 27 5.2 Método de la Transformación Bilineal ................................................ 27 5.3 Realización de un filtro digital ............................................................ 30 5.4 Propiedades de mapeo de la transformación bilineal .......................... 33 6. La transformada discreta de Fourier (DFT) ................................................ 35 6.1 Antitransformada discreta de Fourier (IDFT) ..................................... 35 6.2 Interrelación entre DFT y transformada Z .......................................... 37 6.3 Teorema del muestreo en el dominio de la frecuencia ....................... 38 6.4 Aliasing en el dominio del tiempo ...................................................... 38 6.5 Interrelación entre la transformada discreta de Fourier (DFT), y la la transformada contínua de Fourier (CFT) ......................................... 39 7. Algoritmos para el cálculo de la transformada rápida de Fourier (FFT) . 41 8. Diseño de filtros no recursivos (FIR) ............................................................ 45 8.1 Propiedades de los filtros no recursivos .............................................. 45 8.2 Diseño de filtros no recursivos usando Series de Fourier ................... 49 8.3 Uso de funciones de ventana ............................................................... 52 8.3.1 Ventana Rectangular ............................................................ 54 8.3.2 Ventanas de von Hann y de Hamming ................................. 55 8.3.3 Ventana de Blackman ........................................................... 55 8.3.4 Ventana de Dolph-Chebyshev .............................................. 56 8.3.5 Ventana de Kaiser ................................................................. 56 8.3.5.1 Un método de diseño de filtros FIR basado en la ventana de Kaiser .......................................... 58 Bibliografía recomendada ¾ Antoniu A., "Digital Filters. Analysis, Design and Applications", 2º edición., McGraw-Hill. ¾ Oppenheim, Schafer & Buck, "Tratamiento de Señales en Tiempo Discreto", 2º edición, Prentice-Hall. Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Introducción al Procesamiento Digital de Señales Introducción El procesamiento de señales trata de la representación, transformación y manipulación de señales y de la información que contienen. Por ejemplo, podríamos desear separar dos o más señales que se han combinado de alguna forma, o podríamos querer realzar alguna componente de la señal o algún parámetro de un modelo de señal. Este procesamiento se puede realizar mediante teconología analógica en tiempo contínuo, o como se ha ido difundiendo cada vez más mediante procesamiento en tiempo discreto mediante programas y procesadores. Si las señales a tratar son analógicas, deberán ser convertidas en una secuencia de muestras, a fin de ser procesadas mediante algún algoritmo. Luego, de ser necesario serán vueltas a convertir en señales analógicas. Un ejemplo de esto es el filtrado de señales de audio. Es común que se denomine a esta forma de procesamiento, indistintamente, como procesamiento digital de señales o procesamiento de señales en tiempo discreto. Una buena parte del procesamiento de señales involucra el proceso de una señal para obtener otra señal: es el caso del filtrado digital. Otra buena parte del procesamiento de señales comprende la interpretación de señales. En este caso no se intenta obtener una señal de salida, sino una caracterización de la señal de entrada. Un ejemplo de este tipo de procesamiento es el reconocimiento de voz. 1. Filtros Digitales Un filtro digital puede ser representado mediante el siguiente diagrama en bloques: y(nT) = R x(nT) Filtro Digital x(nT) y(nT) x(nT) es la secuencia de entrada -la excitación del filtro- e y(nT) es la respuesta del filtro ante la excitación x(nT). El análisis de un filtro digital es el proceso de determinar la respuesta de un filtro ante una dada excitación. El diseño de un filtro digital es el proceso de sintetizar e implementar un filtro digital de tal manera que cumpla con las especificaciones prescriptas. 1.1 Características de los filtros digitales Los filtros digitales deben cumplir con las siguientes propiedades: ¾ Invariancia en el tiempo ¾ Causalidad ¾ Linealidad ¾ Invariancia en el tiempo Partiendo del reposo, y teniendo en cuenta que: Mag. Guillermo Friedrich -1- x(nT) = y(nT) = 0 ∀ n < 0, Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales un filtro digital es invariante en el tiempo si, para cualquier posible excitación, se cumple que: R x(nT – kT) = y(nT – kT) Ejemplos: (a) y(nT) = 2 nT x(nT) R x(nT − kT) = 2 nT x(nT – kT) son distintos ⇒ NO es Invariante en el Tiempo y(nT – kT) = 2 (nT – kT) x(nT – kT) (b) y(nT) = R x(nT) = 12 x(nT – T) + 11 x(nT – 2T) R x(nT – kT) = 12 x(nT – kT – T) + 11 x(nT – kT – 2T) y(nT – kT) = 12 x(nT – kT – T) + 11 x(nT – kT – 2T) son iguales ⇒ es Invariante en el Tiempo ¾ Causalidad Para que un filtro digital sea causal, su salida en un instante dado no puede depender de valores posteriores de la excitación. Es decir: para un par de excitaciones tales que: Si el filtro es causal se debe cumplir que: x1(nT) = x2(nT) ∀ n ≤ k x1(nT) ≠ x2(nT) ∀ n > k R x1(nT) = R x2(nT) y ∀n≤k Ejemplos: (a) y(nT) = R x(nT) = 3 x(nT – 2T) + 3 x(nT + 2T) Para n=k tenemos: R x1(kT) = 3 x1(kT – 2T) + 3 x1(kT + 2T) = = 3 x1( (k–2)T ) + 3 x1( (k+2)T ) R x2(kT) = 3 x2( (k–2)T ) + 3 x2( (k+2)T ) son distintos ⇒ ⇒ NO Causal (b) y(nT) = R x(nT) = 2 x(nT – T) – 3 x(nT – 2T) Si n ≤ k ⇒ (n–1) < k y: (n–2) < k ∴ x1(nT – T) = x2(nT – T) y: Mag. Guillermo Friedrich x1(nT – 2T) = x2(nT – 2T) -2- ∀n≤k Técnicas Digitales III - UTN - FRBB ⇒ R x1(nT) = R x2(nT) Procesamiento Digital de Señales ∀n≤k ⇒ El filtro es Causal ¾ Linealidad Un filtro digital es lineal si se cumple que: R α x(nT) = α R x(nT) R [ x1(nT) + x2(nT) ] = R x1(nT) + R x2(nT) ∀ α, x1(nT) y x2(nT) O bien: R [α x1(nT) + β x2(nT) ] = α R x1(nT) + β R x2(nT) ∀ α, β, x1(nT) y x2(nT) Ejemplos: (a) y(nT) = R x(nT) = 7 x2(nT – T) R α x(nT) = 7 α2 x2(nT – T) ≠ α R x(nT) = 7 α x2(nT – T) ⇒ No Lineal (b) y(nT) = R x(nT) = (nT)2 x(nT + 2T) R [α x1(nT) + β x2(nT) ] = (nT)2 [ α x1(nT + 2T) + β x2(nT + 2T) ] = = α (nT)2 x1(nT + 2T) + β (nT)2 x2(nT + 2T) = = α R x1(nT) + β R x2(nT) ⇒ Es Lineal 1.2 Caracterización de Filtros Digitales 1.2.1 Filtros No Recursivos Los filtros digitales no recursivos también se denominan "de Respuesta Finita al Impulso", y también se los identifica con la sigla FIR (Finite Impulse Response). La expresión general de un filtro FIR es la siguiente: ∞ y(nT) = ∑ ai x(nT – iT) i = –∞ Considerando que el filtro es causal tenemos que: Mag. Guillermo Friedrich -3- a–1 = a–2 = .... = 0, por lo tanto: Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales ∞ y(nT) = ∑ ai x(nT – iT) i=0 Si además se considera que se parte del reposo: x(nT) = 0 ∀n<0 y si sólo una cantidad finita de coeficientes es distinta de cero: ai = 0 ∀ i>N Se llega a la siguiente expresión del filtro no recursivo: N y(nT) = ∑ ai x(nT – iT) i=0 Donde N: orden del filtro Esta expresión indica que el valor de salida actual de un filtro FIR es función de la entrada actual y de las N entradas anteriores. 1.2.2 Filtros Recursivos Los filtros digitales recursivos también se denominan "de Respuesta Infinita al Impulso", y también se los identifica con la sigla IIR (Infinite Impulse Response). La respuesta de un filtro IIR es función de la excitación y también de las respuestas anteriores. La siguiente es la expresión de un filtro digital recursivo, lineal, invariante en el tiempo y causal: N N y(nT) = ∑ ai x(nT – iT) – ∑ bi y(nT – iT) i=0 i=1 1.2.3 Redes de Filtrado Digital La estructura de un filtro digital puede representarse gráficamente mediante una red en la que se combinan los siguientes elementos básicos: Retardo unitario: x(nT) T y(nT) Sumador: x1(nT) k y(nT) = ∑ xi (nT) i=1 xk(nT) Mag. Guillermo Friedrich -4- y(nT) = x(nT – T) Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Multiplicador: m x(nT) Ejemplo: y(nT) y(nT) = m x(nT) y(nT) = x(nT) + eα y(nT – T) x(nT) e y(nT) α T 2. Introducción al análisis en el dominio del tiempo Para analizar el comportamiento temporal de un filtro digital se considera que a la entrada se le aplica una secuencia determinada. Para ello se utilizan una serie de funciones elementales, que generan cada una de ellas distintas secuencias. Estas funciones son las siguientes: 1 n=0 ¾ Impulso unitario: δ(nT) = 0 n≠0 1 n≥0 ¾ Escalón unitario: u(nT) = 0 ¾ Rampa unitaria: n<0 nT n≥0 0 n<0 r(nT) = ¾ Exponencial: eα nT ¾ Sinusoide: sen( ω nT ) La respuesta temporal de un filtro digital se puede determinar resolviendo la correspondiente ecuación de diferencias. Ejemplo (a): Hallar la respuesta temporal al impulso de filtro digital cuya ecuación de diferencias es: α y(nT) = x(nT) + e y(nT – T) Mag. Guillermo Friedrich -5- Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales α Partiendo del reposo: y(0) = 1 + e y( – T) = 1 α α y(T) = 0 + e y(0) = e α 2α y(2T) = 0 + e y(T) = e ....... nα y(nT) = e Las siguientes gráficas representan la respuesta temporal del filtro en función de α: α<0 α=0 y(nT) α>0 y(nT) 1 y(nT) 1 1 nT nT nT Ejemplo (b): Hallar la respuesta temporal del filtro dado por la siguiente expresión: α α<0 y(nT) = x(nT) + e y(nT – T) Para la entrada: x(nT) = u(nT) sen(ω nT) y(nT) = R sen(ω nT) = R ( 1 e j ωnT – 1 e –j ωnT ) = 1 2j 2j 2j R e j ωnT – 1 R e –j ωnT = 2j y(nT) = 1 y1(nT) – 1 y2(nT) 2j 2j Ahora resolvemos por separado cada una de las componentes de la salida. y1(nT) = R ejωnT Partiendo del reposo: α y1(0) = 1 + e y( – T) = 1 j ωT j ωT α α + e y1(0) = e + e y1(T) = e j 2ωT α α + j ωT 2α y1(2T) = e + e y1(T) = e + e + e j 2ωT ....... nα y1(nT) = e + e(n–1)α + j ωT + .......+ e j ωnT n y1(nT) = e j ωnT ∑ k ( α – j ωT) e k=0 Como esta expresión corresponde a una serie geométrica, puede demostrarse que : Mag. Guillermo Friedrich -6- Técnicas Digitales III - UTN - FRBB e Procesamiento Digital de Señales j ωnT – e ((n+1) α – j ωT) y1(nT) = 1– e ( α – j ωT) Si ahora consideramos la función: H(e e j ωT )= e donde: y: j ωT j ωT –e 1 α = 1– e ( α – j ωT) = M(ω) e jθ(ω) 1 M(ω) = H(e j ωT) = 1 + e2α – 2 e α cos(ωT) θ(ω) = arg H(e j ωT) = ωT – arc tg sen(ωT) cos(ωT) – e α y1(nT) = u(nT) M(ω) e j( θ(ω) + ω nT) – e (n+1)α + j( θ(ω) – ω T) Reemplazando ω por –ω en y1(nT) se obtiene y2(nT) y2(nT) = u(nT) M(–ω) e j( θ(–ω) – ω nT) – e (n+1)α + Como M(–ω) = M(ω) j( θ(–ω) + ω T) θ(–ω) = – θ(ω) se puede llegar a: y y(nT) = 1 y1(nT) – 1 y2(nT) 2j 2j y(nT) = M(ω) sen [ω nT + θ(ω) ] – M(ω) e(n+1)α sen [ θ(ω) – ωT] estacionario transitorio (tiende a 0 para n → ∞) lím y(nT) = M(ω) sen [ω nT + θ(ω) ] n→∞ Donde: H(e j ωT) : M(ω) : θ(ω) : respuesta en frecuencia respuesta en amplitud respuesta en fase x(nT) 1- y(nT) M(ω) - nT nT –1 - Mag. Guillermo Friedrich -7- Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 2.1 Sumatoria de Convolución La respuesta de un filtro digital a una excitación arbitraria puede ser expresada en términos de la respuesta del filtro a una entrada impulsiva. Para ello se debe realizar la convolución entre la señal de entrada y la respuesta impulsiva. Una señal de entrada x(nT) puede ser expresada de la siguiente forma: ∞ x(nT) = x(kT) si n=k ∑ k=–∞ xk (nT) donde: xk(nT) = si n≠k 0 También se podría expresar de la siguiente manera: xk(nT) = x(kT) δ(nT – kT) Por lo tanto: ∞ ∑ x(nT) = x(kT) δ(nT – kT) k=–∞ Partiendo de esta última expresión, vamos a considerar un filtro digital lineal, invariante en el tiempo, tal que su respuesta impulsiva sea: h(nT) = R δ(nT) y(nT) = R x(nT) y su respuesta a una entrada arbitraria x(nT) sea: ∞ ⇒ y(nT) = R ∑ ∞ R δ(nT – kT) = ∑ x(kT) h(nT – kT) k=–∞ ∀ n < 0, por lo tanto: ∞ n ∑ x(kT) k=–∞ Si el filtro es causal ⇒ h(nT) = 0 y(nT) = ∑ x(kT) δ(nT – kT) = k=–∞ ∞ x(kT) h(nT – kT) = k=–∞ ∑ h(kT) x(nT – kT) k=0 Si además se considera que: x(nT) = 0 ∀ n < 0, la respuesta del filtro digital queda expresada mediante la siguiente sumatoria de convolución: n ∑ y(nT) = k=0 n ∑ x(kT) h(nT – kT) = h(kT) x(nT – kT) k=0 Ejemplo: Dado el filtro digital caracterizado por la siguiente expresión: y(nT) = x(nT) + eα y(nT – T) , calcular, usando la sumatoria de convolución, la respuesta del filtro a la siguiente excitación: Mag. Guillermo Friedrich -8- Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 1 para 0 ≤ n ≤ 4 x(nT) = 0 para ∀ otro n Tal como se ha visto más arriba, la respuesta impulsiva de este filtro es: h(nT) = R δ(nT) = enα La entrada puede expresarse de esta otra forma, en términos de alguna de las funciones básicas que se mencionaron anteriormente: x(nT) = u(nT) – u(nT – 5T) ¾ Para n ≤ 4 → y(nT) = R u(nT), En un ejemplo anterior ya se ha hallado la respuesta de este filtro al escalón unitario, entonces tenemos: n ∑ y(nT) = ekα u(nT – kT) = k=0 ¾ Para n > 4 1 – e(n+1) α n ∑ ekα = 1 – eα para n ≥ 0 0 para n < 0 k=0 → y(nT) = R u(nT) – R u(nT – 5T) n–5 R u(nT – 5T) = R u( (n–5)T ) = ∑ 1 – e(n–4)α 1 – eα n–5 ekα u( (n–5)T – kT ) = k=0 ∑ n≥5 ekα = k=0 0 n<5 Finalmente, reuniendo ambos resultados en una sola expesión, llegamos a: 1 – e(n+1) α 1 – eα y(nT) = R u(nT) – R u(nT – 5T) = e(n–4) α – e(n+1) α 1 – eα 0≤n≤4 n≥5 2.2 Estabilidad Un filtro digital es estable si para cualquier excitación acotada se obtiene una salida acotada, es decir: y(nT) < ∞ ∀n para x(nT) < ∞ ∀ n Vamos a tratar de encontrar la forma de determinar si un filtro es estable: Mag. Guillermo Friedrich -9- Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales ∞ y(nT) ≤ ∑ h(kT) . x(nT – kT) k=–∞ → El módulo de una suma es menor o igual que la suma de los módulos; y además el módulo de un producto es menor o igual que el producto de los módulos. ∞ Si x(nT) ≤ M < ∞ ∀n ⇒ y(nT) ≤ M ∑ h(kT) k=–∞ ∞ Por lo tanto, si: ∑ h(kT) < ∞ ⇒ y(nT) < ∞ ∀n k=–∞ Condición de estabilidad Ejemplo: analizar si el filtro dado por y(nT) = x(nT) + eα y(nT – T) es estable. Para este filtro: h(nT) = R δ(nT) = enα ∞ Por lo tanto: ∑ h(kT) = 1 + eα + e2α + ..... + e nα k=–∞ e (k+1)α Esta serie converge si: e kα <1 Por lo tanto, la condición de estabilidad es: Mag. Guillermo Friedrich Es decir, si: α<0 - 10 - eα < 1 Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 3. La transformada Z La transformada Z se utiliza para el análisis de filtros digitales lineales e invariantes en el tiempo. Transforma ecuaciones de diferencias en expresiones algebraicas, lo que simplifica los cálculos. ∞ Definición: F(z) = ∑ f(nT) z –n Para cualquier z, tal que F(z) converge. z : variable compleja z=x+jy n=-∞ Notación: F(z) = Z f(nT) 3.1 Propiedades de la transformada Z a) Región de convergencia - El tipo de funciones que se usa en filtros digitales son funciones meromórficas (sus únicas singularidades son polos). Hay más de una serie que converge. Por ejemplo, dado el siguiente diagrama de polos y ceros: x x x x x Se puede ver que hay tres regiones de convergencia: I, II y III III II I x x x x x Se asume que la serie que interesa es una que converge en la región III, es decir: R1 ≤ z≤ R2 donde: z= R1 es el círculo que pasa por los polos más alejados del origen R2 → ∞ b) Linealidad Si a y b son constantes, y Z f(nT) = F(z) y Mag. Guillermo Friedrich Z g(nT) = G(z), entonces: - 11 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Z [ a f(nT) + b g(nT) ] = a F(z) + b G(z) c) Translación Z f(nT + mT) = zm F(z) d) Cambio de escala complejo: Z [ω–n f(nT) ] = F(ωz) e) Diferenciación compleja: Z [ nT f(nT) ] = –T z d F(z) dz ∞ Z ∑ f(kT) g(nT – kT) = F(z) G(z) k=–∞ f) Convolución Real: o bien: ∞ Z ∑ f(nT – kT) g(nT) = F(z) G(z) k=–∞ 3.2 Transformada Z unilateral De manera análoga a la transformada de Laplace, la transformada Z unilateral es definida así: F(z) = Z ≠ ZI ∞ ∑ f(nT) z –n = ZI f(nT) n=0 sólo si f(nT) ≠ 0 para n<0. Como se trabaja con funciones que son cero para n<0, no es necesario hacer la distinción. Ejemplos: a) b) c) Z δ(nT) = δ(0) + δ(T) z–1 + δ(2T) z–2 + .......... = 1 –1 1 –2 Z u(nT) = u(0) + u(T) z + u(2T) z + .......... = 1 + z–1 + z–2 + ........ = 1 – z–1 z = z–1 K –1 Z u(nT –T) K = K z Z u(nT) = (aplicando la propiedad de translación) z–1 d) Z [ u(nT) K ω–n ] = K Z [ (1/ω) u(nT) ] = K Z u(nT) = z→ z/ω –n Mag. Guillermo Friedrich - 12 - Kz z–ω (se aplicó la prop. de cambio de escala complejo) Técnicas Digitales III - UTN - FRBB e) Z [ u(nT) e –α nT Procesamiento Digital de Señales z ]= (se partió del ejemplo anterior, y se hizo K=1 y ω = e–αT ) z – e–αT f) Z r(nT) = Z [ nT u(nT) ] = –T z d [ Z u(nT) ] = Tz (aplicando prop. de diferenc. compl.) dz (z–1)2 g) Z [u(nT) sen(wnT)] = Z [ u(nT) ( ejωnT – e–jω nT )] = 2j = 1 Z [ u(nT) ejωnT ] – 1 [ u(nT) e–jωnT ] = 2j 2j Aplicando lo visto en el ejemplo (e), se llega al siguiente resultado: Z [u(nT) sen(wnT)] = 1 [ z – z ]= z sen(ωnT)_____ 2j z – ejωT z – e–jωT z2 – 2z cos(ωnT) + 1 3.3 La transformada Z inversa Si F(z) converge en algún anillo abierto, tal como se vió anteriormente al definir la transformada Z, entonces es posible obtener f(nT) de la siguiente manera: f(nt) = 1 2πj ∫ F(z) z n–1 dz = Z–1 F(z) Γ Si: F(z) zn–1 = F0(z) = N(z) donde k y m son enteros positivos k mi ∑ ( z–pi ) i=1 Aplicando el teorema del residuo se obtiene: La notación es la siguiente: f(nt) = f(nT) = ∑ res z=pi [Fo(z)] Z–1 F(z) Ejemplos: Hallar la antitransformada Z de las siguientes F(z): (a) F(z) = (2z – 1) z 2 (z–1) (z + 0.5) f(nT) = resz=1 [ F(z) zn–1 ] + resz=–0,5 [ F(z) zn–1 ] = (2z – 1) zn + (2z – 1) zn 2 (z + 0.5) 2(z – 1) z=1 z=–0.5 Mag. Guillermo Friedrich - 13 - Técnicas Digitales III - UTN - FRBB f(nt) = 1 + 2 ( –1 )n 3 3 2 (b) F(z) = 1 2 (z–1) (z + 0.5) Procesamiento Digital de Señales Como f(nT)=0 ∀ n<0 ⇒ f(nT) = u(nT) [ 1 + 2 ( –1 )n ] 3 3 2 Fo(z) = F(z) zn–1 = zn–1 _ 2 (z–1) (z + 0.5) Esta F(z) tiene un polo en el origen para n=0 ⇒ f(0) debe obtenerse por separado. Para n=0 : f(0) = ______1_______ + ______1_____ + ____1____ = –1 + _1 + 2 _ = 0 2 (z–1) (z + 0.5) 2 (z + 0.5) z 2 (z – 1) z 3 3 z=0 z=1 z=–0.5 Para n>0 : f(0) = _____zn-1_____ + ___zn-1___ = _1 – 1 ( –1 )n–1 2 (z + 0.5) 2 (z – 1) 3 3 2 z=1 z=–0.5 Finalmente: f(nT) = a(nT – T) [ 1 – 1 ( 1 )n–1 ] 3 3 2 3.4 Otras maneras de hallar la antitransformada Z Expansión Binomial F(z) = K = K ( 1 – w z–1 )–1 = K ( 1 – w z–1 + w 2 z–2 + .... ) = z–w z z ∞ F(z) = K ( z + w z–2 + w 2 z–3 + .... ) = ∑ [ u(nT – T) K w n–1 ] z –n n=0 ⇒ Z–1 [ K ] = u(nT – T) K w n–1 z–w Mag. Guillermo Friedrich - 14 - → Es apta para F(z) con un solo polo. Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Fracciones Parciales k Si una transformada Z se expresa de la siguiente manera: F(z) = ∑ Fi (z) i=1 Entonces, la antitransformada Z se puede hallar así: –1 Z k ∑ Z–1 Fi (z) F(z) = i=1 Ejemplo: Sea F(z) = z = 2 – 1___ (z – ½) (z – ¼) (z – ½) (z – ¼) Por lo tanto: f(nT) = 2 u(nT – T) (½)n–1 – u(nT – T) (¼)n–1 = 4 u(nT – T) [(½)n –(¼)n ] Uso del Teorema de Convolución Si una transformada Z se puede convertir en el producto de dos transformadas Z cuyas antitransformadas sean conocidas, mediante convolución se puede hallar la antitransformada Z. –1 Z ∞ ∑ [ F(z) G(z) ] = f(kT) g(nT – kT) k=–∞ Ejemplo: Y(z) = z (z – 1)2 ⇒ De la tabla se obtiene: F(z) = z z–1 f(nT) = u(nT) G(z) = 1__ z–1 g(nT) = u(nT – T) ∞ Por lo tanto: y(nT) = ∑ u(kT) u(nT – T – kT) = k=–∞ y(nT) = u(0) u(nT – T) + u(T) u(nT – 2T) + ....... = 1 + 1 + 1 +..... = n ⇒ y(nT) = n u(n) Mag. Guillermo Friedrich - 15 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Convolución Compleja La convolución compleja permite encontrar la transformada Z del producto de dos funciones en el dominio del tiempo. ∞ Si: Z f(nT) = F(z) = ∑ f(nT) z–n n=–∞ ∞ [f(nT) g(nT)] z–n n=–∞ Donde: g(nT) = 1 G(v) vn–1 dv 2πj Γ1 ∞ Z g(nT) = G(z) = ∑ g(nT) z–n n=–∞ ∞ Por lo tanto: Y(z) = ∑ f(nT) n=–∞ Y(z) = Y(z) = ∑ ⇒ Y(z) = Z [ f(nT) g(nT) ] = ∫ 1 2πj Γ1 ∫ G(v) v 1 n–1 ∫ z–n = dv 2πj Γ1 ∞ ∑ f(nT) vn–1 z–n G(v) v–1 dv = n=–∞ ∫ ∫ F(z/v) G(v) v–1 dv = 1 F(z) G(z/v) v–1 dv = 1 2πj Γ1 2πj Γ2 Donde: Γ1 (o Γ2 ) es un contorno en la región común de convergencia de F(z) y G(z/v) de F(z) y G(z/v) ( o de F(z/v) y G(z) ). Ejemplo: Hallar la transformada Z de Sean: f(nT) = u(nT) e–αnT ⇒ F(z) = z z – e–αT ⇒ F(z/v) = ⇒ Y(z) = Γ2 y(nT) = u(nT) e–αnT sen ωT g(nT) = u(nT) sen ωT G(z) = z sen ωT_____ (z – ejωT) (z – e–jωT) z/v = –z z/v – e–αT v – z e–αT G(v) = ∫ 1 – z e–αT sen ωT_______ dv = z e–αT sen ωT_________ 2πj Γ2 (v – z e–αT) (v – ejωT) (v – e–jωT) z2 – 2z e–αTcos ωT + e–2αT 1 plano v Mag. Guillermo Friedrich v sen ωT________ (v – ejωT) (v – e–jωT) F(z/v) y G(z) convergen en: - 16 - |v| < zeαT |v| > 1 Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 3.5 Aplicación de la transformada Z Usando la transformada Z, un filtro digital puede ser caracterizado mediante una función transferencia discreta en el tiempo, que juega el mismo rol que la función transferencia contínua en el tiempo para un filtro analógico. Considerando un filtro digital lineal e invariante en el tiempo, tal como el siguiente: ∞ y(nT) = ∑ Z y(nT) = Z h(nT) . Z x(nT) x(kT) h(nT – kT) ⇒ ⇒ Y(z) = H(z) . X(z) k=–∞ 3.5.1 Obtención de H(z) Para un filtro digital causal y recursivo tenemos: N N y(nT) = ∑ ai x(nT – iT) – ∑ bi y(nT – iT) i=0 i=1 Por lo tanto: N Z y(nT) = ∑ ai N z –i Z x(nT) i=0 – ∑ bi N Y(z) = X(z) ∑ ai z i=0 –i – Y(z) ∑ bi z–i i=1 N ⇒ Y(z) 1 + Z y(nT) i=1 N ⇒ z–i N ∑ bi z–i i=0 = X(z) ∑ ai z–i i=1 Como H(z) = Y(z) ⇒ X(z) N N ∑ ai z –i Ho i=0 ⇒ H(z) = Y(z) = Π ( z – zi ) i=0 = .... factoreando ...= N 1+ ∑ N bi z Π ( z – pi ) –i i=1 i=1 Donde: zi son los ceros y pi son los polos Mag. Guillermo Friedrich - 17 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Ejemplo: Hallar la función transferencia discreta del siguiente filtro: U(z) X(z) Y(z) ½ –¼ T T ¾ Los tres elementos básicos son: sumador: y(nT) = ∑ xi(nT) xi(nT) multiplicador: y(nT) = m x(nT) y(nT) ∴ Y(z) = ∑ Xi(z) y(nT) ∴ Y(z) = m Xi(z) y(nT) ∴ Y(z) = z–1 Xi(z) m xi(nT) retardo: y(nT) = x(nT – T) T x(nT) ⇒ U(z) = X(z) + ½ z–1 U(z) – ¼ z–2 U(z) ∴ U(z) = X(z)_______ 1 – ½ z–1 + ¼ z–2 Y(z) = U(z) + z–1 U(z) = (1 + z–1) U(z) ∴ (1 + z–1) X(z)___ 1 – ½ z–1 + ¼ z–2 Y(z) = ∴ H(z) = z (z + 1)_____ z –½z+¼ 2 ∴ H(z) = Y(z) = (1 + z–1)_____ X(z) 1 – ½ z–1 + ¼ z–2 los polos son: p1 = ¼ + j √3_ 4 p2 = ¼ – j √3_ 4 Como p1< 1 Mag. Guillermo Friedrich y p2< 1 ⇒ El filtro es estable - 18 - 1 x x Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 3.5.2 Criterio de Estabilidad de Jury Si expresamos la función transferencia discreta de un filtro de la siguiente manera: N H(z) = N(z) D(z) Donde: D(z) = ∑ bi z N – i i=0 ( se asume b0 > 0 ) Y se construye un arreglo como el siguiente: Fila 1 2 3 4 5 6 : : 2N–3 Coeficientes b0 b1 b2 bN bN–1 bN–2 c0 c1 c2 cN cN–1 cN–2 d0 d1 d2 dN dN–1 dN–2 r0 r1 Donde: b3 b4 ........ ........ c3 c4 ........ ........ d3 d4 ........ ........ b0 ci = bN b0 cN c0 dN d0 bN–1 ∀ i ∈ [0, N–1] bN bi c0 di = cN–1 ∀ i ∈ [0, N–2] cN ci ei y subsiguientes se calculan de manera análoga. r2 Para que el sistema sea estable se deben cumplir las siguientes condiciones: a) D(1) > 0 b) (–1)N D(–1) > 0 c) c0 > cN–1 d0 > dN–2 ......... r0 > r2 Ejemplo: H(z) = z4__________ 4 3 4z + 3z + 2z2 + z + 1 Verificando: (a) D(1) = 4 + 3 + 2 + 1 + 1 = 11 > 0 1 2 4 1 3 1 2 2 1 3 3 4 15 1 11 6 6 11 1 15 5 224 159 79 √ (b) (–1)4 D(–1) = 4 – 3 + 2 –1 + 1 = 3 > 0 √ (c) r0=224 Mag. Guillermo Friedrich > r2=79 √ - 19 - ⇒ El filtro es estable. 1 4 Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 3.5.3 Análisis en el dominio del tiempo Si se desea obtener la respuesta temporal de un filtro digital caracterizado por una función transferencia discreta H(z), ante una cierta excitación X(z), se hace lo siguiente: y(nT) = Z–1 [ H(z) X(z) ] Ejemplo: Hallar la respuesta temporal al escalón unitario del siguiente filtro digital: X(z) Y(z) T T –½ H(z) = 1 – z–1 + z–2 = –1 –2 1–z +½z X(z) = z__ ∴ z–1 Donde: A=2 –1 z2 – z + 1 = z2 – z + 1 z2 – z + ½ (z – p1) (z – p2) Y(z) = H(z) X(z) = B = ej5π/4 √2 p1 = e–jπ/4 √2 p2 = ejπ/4 √2 z (z2 – z + 1) = A z + B z + C z__ (z–1)(z–p1)(z–p2) (z–1) (z–p1) (z–p2) C = B* = e–j5π/4 √2 ∴ y(nT) = Z–1 [ H(z) X(z) ] = 2 u(nT) + ⇒ y(nT) = 2 u(nT) + Donde: 1 u(nT) [ ej(n–5)π/4 + e–j(n–5)π/4 ] (√ 2 )n–1 1 u(nT) cos[ (n–5) π/4 ] n–1 (√ 2 ) y(nT) 2 1 nT Mag. Guillermo Friedrich - 20 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 3.5.4 Análisis en el dominio de la frecuencia La respuesta estacionaria de un filtro analógico cuya función transferencia es H(s) , se calcula de la siguiente manera: lím y(t) = lím R u(t) sen(ω t) = M(ω) sen[ ωT + θ(t) ] t→∞ t→∞ Donde: M(ω) = H(jω) : ganancia θ(ω) = arg H(jω) : desplazamiento de fase Si consideramos un filtro digital de orden N, la respuesta a una excitación senoidal es: donde: X(z) = Z [ u(nT) sen(ωnT) ] = y(nT) = Z–1 [ H(z) X(z) ] O sea: y(nT) = ∫ H(z) X(z) z n–1 z sen(ωnT)___ (z–ejωT)(z–e–jωT) dz = ∑ res [ H(z) X(z) zn–1 ] Γ Para n > 0 tenemos: N y(nT) = ∑ res [ H(z)] x(pi) pin–1 + 1 [ H(ejωT) ejωnT – H(e–jωT) e–jωT ] i=1 z=pi 2j Como pi<1 , este término tiende a cero para n → ∞ Por lo tanto: Como: y(nT) ≈ 1 [ H(ejωT) ejωnT – H(e–jωT) e–jωT ] 2j H(ejωT) = H*(e–jωT) y si: H(ejωT) = M(ω) ejθ(ω) Donde: M(ω) = H(ejωT) y θ(ω) = arg H(ejωT) ⇒ y(nT) = M(ω) sen[ωnT + θ(ω)] jϕziT N H(e jωT ) = M(ω) e jθ(ω) H0 = Π jωT (e – zi) i=1________ e jωT – zi = Mzi e Donde: jϕpiT N Π (ejωT – pi) ejωT – pi = Mpi e i=1 Mag. Guillermo Friedrich - 21 - Técnicas Digitales III - UTN - FRBB Así obtenemos: Procesamiento Digital de Señales N H0 M(ω) = Π Mzi N θ(ω) = i=1________ ϕzi – i=1 N Π ∑ N ∑ ϕpi i=1 Mpi i=1 Por lo tanto, M(ω) y θ(ω) pueden obtenerse dibujando los fasores en el plano, y midiendo sus magnitudes y sus ángulos. Para un filtro recursivo de segundo orden tenemos: ϕz1 p1 ϕp1 Mp1 Mz1 x Mp2 C MZ2 El punto A ⇒ ω = ∞ C ⇒ ω = π/T (frecuencia de Nyquist) o z1 A ϕp2 x ϕz2 p2 o z2 Como: ω+ kωs)T H(ejωT) = H(ej( ) = H(ejωT) Una vuelta completa alrededor del origen corresponde a un incremento de frecuencia de ωS = 2π T Donde ωS : frecuencia de muestreo ⇒ H(ejωT) es periódica con período ωS A los fines prácticos se trabaja con un período –ωS , ωS llamado banda base. Ejemplo: Hallar la respuesta en frecuencia en fase y amplitud para el siguiente filtro, considerando: ωS = 2 [rad/seg] ( A0 = 0.4 A1 = 0.303 y A2 = 0.0935 ). H(z) = A2 z2 + A1 z + A0 + A1 z–1 + A2 z–2 z2 H(ejωT) = A2 ( ej2ωT + e–j2ωT ) + A1 ( ejωT + e–jωT ) + A0 = ej2ωT H(ejωT) = 2 A2 cos(2ωT ) + 2 A1 cos(ωT) + A0 ej2ωT ∴ ∴ M(ω) = H(ejωT) = 2 A2 cos(2ωT ) + 2 A1 cos(ωT) + A0 θ(ω) = θN – 2ωT Mag. Guillermo Friedrich donde: θN = 0 si (2 A2 cos(2ωT ) + 2 A1 cos(ωT) + A0 ) > 0 π para ∀ otro caso - 22 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 4. Aproximaciones de filtros analógicos Un filtro digital recursivo se puede aproximar usando alguna de las siguientes aproximaciones de filtros analógicos: - Butterworth - Tschebyscheff - Elipticos - Bessel 4.1 Conceptos Básicos La función transferencia de un filtro analógico se puede expresar como: V0(s) = H(s) = N(s) Vi(s) D(s) Donde: N(s) y D(s) son polinomios en función de s = σ + jω ¾ Atenuación en dB: A(ω) = 20 log Vi(jω) = 20 log 1 Vo(jω) H(jω) Donde: L(ω 2) = = 10 log L(ω 2) 1_______ H(jω) H(–jω) ¾ Desplazamiento de fase: θ(jω) = arg H(jω) ¾ Retardo de grupo: τ = – dθ(jω) dω De aquí surgen las curvas características de Atenuación, Fase y Retardo en funcion de ω. Con ω = s j hacemos: L(–s2) = D(s) D(–s) N(s) N(–s) Función de atenuación Un par de diagramas típicos de polos y ceros de H(s) y L(–s2) son como los siguientes: jω jω H(s) x2 x σ x x x 2 4.2 Aproximación de Butterworth La aproximación mas simple para un pasabajos es la de Butterworth. Se asume que: L(ω2) = B1 ω2 + B2 ω4 + ....... + Bn ω2n Mag. Guillermo Friedrich - 23 - L(–s2) Técnicas Digitales III - UTN - FRBB tal que: lím L(ω2) = 1 ω2→ ∞ Procesamiento Digital de Señales ∴ Bo = 1 ⇒ L(0) = 1 Se puede llegar a que B1 = B2 = ..... = Bn = 0 ∴ L(ω2) = 1 + Bn ω2n Como para un pasabajos normalizado: A(ω) = –3dB a ⇒ Bn = 1 ∴ ω = 1 [rad/seg] L(ω2) = 1 + ω2n La atenuación de un pasabajos Butterworth normalizado es: A(ω) = 10 log(1+ω2n) , y en la siguiente figura se presentan las curvas de atenuación en función de n (orden del filtro). n=9 n=6 n=3 4.2.1 Función Transferencia Normalizada 2n Con ω = s tenemos: L(–s2) = 1 + (–s2)n = Π (s – sk) j k=1 donde: sk = e j(2k–1)π sk = e j(k–1)π / 2n /n para n par para n impar Como | sk | = 1 , los ceros de L(–s2) están en el círculo |s| = 1. La función transferencia normalizada puede ser expresada como: 1 HN(s) = n donde: pi son los ceros de L(–s2) en el semiplano izquierdo. Π (s – pi) i=1 Mag. Guillermo Friedrich - 24 - Técnicas Digitales III - UTN - FRBB Ejemplo: hallar HN(s) para: Procesamiento Digital de Señales (a) n=2 (b) n=3 (a) n = 2 (par) ⇒ sk = e j(2k–1) π / 2n ⇒ sk = e j(2k–1) π / 4 s1 = e j π / 4 (semiplano derecho) j 3π / 4 ⇒ s2 = –1 + j 1 √2 √2 √ s3 = e j 3 π / 4 ⇒ s2 = –1 – j 1 √2 √2 √ s2 = e s4 = e j 7 π / 4 ∴ HN(s) = s2 X s3 X (semiplano derecho) 1 (s + 1 – j 1 ) (s + 1 + j 1 ) √2 √2 √2 √2 = 1_______ (s +√2 s+1) 2 (b) n = 3 (impar) ⇒ sk = e j(k–1) π / n ⇒ sk = e j(k–1) π / 3 = cos (k–1)π + j sen (k–1)π 3 3 ⇒ s3 = –0.5 + j √ 3_ 2 s4 = –1 s3 s5 = –0.5 + j √ 3_ 2 ∴ HN(s) = s4 1 (s + 1) (s2 + s + 1) X X s5 X 4.3 Otras aproximaciones de filtros analógicos Además de la aproximación de Butterworth, existen otras aproximaciones para filtros analógicos, de las cuales las siguientes son las más conocidas. ¾ Aproximación de Tschebyscheff – La atenuación en la banda de paso oscila entre 0 y un máximo permitido – La atenuación en la banda de rechazo aumenta monotónicamente. Mag. Guillermo Friedrich - 25 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales ¾ Aproximación Elíptica – La atenuación en la banda de paso oscila entre 0 y Ap. – La atenuación en la banda de rechazo oscila entre ∞ y Aa. ¾ Aproximación de Bessel – Tiene una respuesta lineal en fase ( a diferencia de las tres anteriores ). 4.4 Transformaciones Partiendo de un filtro pasabajos normalizado, se pueden obtener filtros pasabajos, pasaaltos, pasabandas y rechazabandas desnormalizados. Para tal fin se utilizan transformaciones de la forma: s = f( s ). PasaBajos → PasaBajos : s=λs PasaBajos → PasaAltos : s = λ_ s PasaBajos → PasaBanda: s = 1 ( s + ωo2 ) B s PasaBajos → RechazaBanda: s= B s___ s 2 + ωo2 Ejemplo: Hallar la función transferencia de un filtro pasabajos de Buterworth de orden 3. La frecuencia de corte (–3 dB) debe ser de 2000 Hz. HN(s) = 1_______ (s + 1) (s2 + s + 1) λ = ωoN ωoD = 1 2 π 2000 HPB(š) = 1 = λ–3 = (λš + 1) ( (λš)2 + λš + 1 ) (š + λ–1) ( š 2 + λ–1 š + λ–2 ) HPB(š) = 1.9844 . 1012__________________ (š + 12566.37) ( š 2 + 12566.37 š + 157.9137 . 106 ) = 1 4000 π Como se verá posteriormente, una de las aplicaciones de los filtros digitales es el procesamiento de señales analógicas, con un esquema como el siguiente: Mag. Guillermo Friedrich - 26 - Técnicas Digitales III - UTN - FRBB x(t) x~(t) FPB Procesamiento Digital de Señales A/D x(nT) FILTRO y(nT) DIGITAL D/A y~(t) FPB y(t) c(t) Una posibilidad para el diseño y síntesis del filtro digital es partir de la función transferencia del filtro analógico, y aplicarle una transformación para hallar H(z), y posteriormente implementar el filtro digital. Las transformaciones para pasar de un filtro analógico a un filtro digital recursivo son: ¾ ¾ ¾ ¾ Método de la respuesta invariante al impulso Variante del anterior Transformada Z asociada Transformación Bilineal → es la más común. 5. Aproximación por filtros recursivos Al igual que para los filtros analógicos, la etapa de aproximación es el proceso a través del cual se obtiene una función transferencia que satisfaga los requerimientos. Los filtros digitales recursivos pueden obtenerse a partir de aproximaciones de filtros analógicos, mediante alguno de los métodos recién mencionados. 5.1 Realizabilidad A fin de poder ser implementada mediante un filtro recursivo, una función transferencia debe satisfacer las siguientes condiciones: 1) Debe ser una función real de z con coeficientes reales. 2) Sus polos deben estar dentro del círculo unidad en el plano Z. 3) El grado del polinomio del numerador debe ser de grado menor o igual al grado del polinomio del denominador. 5.2 Método de la Transformación Bilineal El objetivo de la transformación Bilineal es lograr un filtro digital cuya respuesta temporal sea similar a la respuesta temporal del filtro analógico de origen, ante cualquier excitación. N Se parte de la función transferencia analógica: ∑ ai sN–i HA(s) = i=0 N s + ∑ bi sN–i N Mag. Guillermo Friedrich - 27 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Y se obtiene HD(z) mediante el siguiente reemplazo: Es decir: HD(z) = HA(s) s = 2 (z – 1) T (z + 1) donde T : período de muestreo s = 2 (z–1) T (z+1) Demostración: Un integrador analógico con función transferencia HI(s) = 1 , tiene una respuesta temporal al impulso: s L 1 para t ≥ 0+ –1 HI(s) = hI(t) = 0 para t ≤ 0– t Y su respuesta temporal ante cualquier excitación será: y(t) = ∫ x(τ) h (t–τ) dτ I 0 x(τ) t1 τ t2 Considerando: 0+ < t1 < t2, podemos escribir: t1 y(t2) – y(t1) = ∫ x(τ) h (t–τ) dτ I 0 t2 – ∫ x(τ) h (t–τ) dτ I 0 Como para 0+ < τ < t1 , t2 → hI(t1–τ) = hI(t2–τ) = 1 ⇒ t2 ⇒ y(t2) – y(t1) = ∫ x(τ) h (t–τ) dτ I t1 Si t1 → t2 ⇒ y(t2) – y(t1) ≈ t2 – t1 [ x(t1) + x(t2) ] 2 haciendo t1 = nT – T , t2 = nT ⇒ y(nT) – y(nT–T) = ½ T [ x(nT–T) + x(NT) ] ⇒ Y(z) – z–1Y(z) = ½ T [ z–1 X(z) + X(z) ] Mag. Guillermo Friedrich - 28 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales ⇒ Y(z) [ 1 – z–1 ] = ½ T X(z) [ z–1 + 1 ] ⇒ HI(z) = Y(z) = T z–1 + 1 = T z + 1 X(z) 2 1 – z–1 2 z–1 Es decir: HI (z) = HI (s) Y en general: s = 2 (z–1) T (z+1) HD(z) = HA(s) Transformación Bilineal s = 2 (z–1) T (z+1) Ejemplo: Hallar la función transferencia discreta en el tiempo, partiendo de un pasabajos analógico con frecuencia de corte igual a 2000 Hz, usando aproximación de Butterworth con n=3. Considerar T=125 µseg (8000 muestras/seg). Aplicar transformación Bilineal. HN (s) = Si λ = 1 2 (s+1) (s + s + 1) ⇒ HPB(š) = 1 2 π 2000 Aplicando la transformación Bilineal: s = 2 (z–1) T (z+1) HD(z) = λ–3_________ (š+λ–1)(š2 + λ–1š + λ–2) y luego de realizar los pasos algebráicos correspondientes, se llega a la siguiente expresión: 0.112958 (z + 1) (z2 + 2z + 1)______ (z – 0.318993 z + 0.346114) (z – 0,120198) 2 Finalmente, una posible realización de este filtro es la siguiente: 0.112958 x(nT) ⊕ ⊕ ⊕ T 0.120198 T 0.3118993 –0.346114 Mag. Guillermo Friedrich ⊕ - 29 - T 2 y(nT) Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 5.3 Realización de un filtro digital 1. Realización Directa N Y(z) = H(z) = N(z) = N(z)__ X(z) D(z) 1 + D'(z) Donde: N(z) = ∑ ai z–i i=0 N D'(z) = ∑ bi z–i i=1 ⇒ Y(z) [ 1 + D'(z) ] = X(z) N(z) Y(z) = X(z) N(z) – Y(z) D'(z) → X(z) ⊕ N(z) Y(z) D'(z) Ejemplo: N(z) = a0 + a1 z–1 + a2 z–2 D'(z) = b1 z–1 + b2 z–2 N(z) ⇒ ⊕ X(z) X(z) N(z) T T a1 a2 D'(z) ⇒ X(z) N(z) ⊕ Y(z) T –b1 –b2 Mag. Guillermo Friedrich - 30 - T Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales ⊕ Filtro completo: X(z) Y(z) T T a0 T a1 –b1 a2 –b2 T 2. Realización Directa Canónica Minimiza la cantidad de retardos: la cantidad de retardos es igual al orden del filtro. Y(z) = H(z) = N(z) = N(z)__ X(z) D(z) 1 + D'(z) Donde: Y'(z) = X(z) 1 + D'(z) Se puede expresar como: Y(z) = N(z) Y'(z) ⇒ Y'(z) = [ 1 + D'(z) ] = X(z) ⇒ Y'(z) = X(z) – Y'(z) D'(z) X(z) ⊕ Y'(z) –D'(z) ∴ Y(z) = N(z) Y'(z) → X(z) ⊕ N(z) –D'(z) Volviendo al ejemplo anterior: Mag. Guillermo Friedrich - 31 - Y'(z) Técnicas Digitales III - UTN - FRBB X(z) Procesamiento Digital de Señales ⊕ ⊕ –b1 T T T T –b2 Y(z) a0 a1 a2 (*) y (**) Como lo que está almacenada en cada par de retardos son los mosmos valores, el filtro puede quedar finalmente así: X(z) ⊕ ⊕ T –b1 –b2 T Y(z) a0 a1 a2 Solución Canónica Mag. Guillermo Friedrich - 32 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 5.4 Propiedades de mapeo de la transformación bilineal La transformación bilineal tiene como objetivo que el filtro digital obtenido tenga la misma respuesta temporal que el filtro analógico de origen. Por otra parte, puede haber diferencias entre la respuesta en frecuencia del filtro digital y la del filtro analógico de origen. Esto es lo que se analiza a continuación. s = 2 (z–1) T (z+1) → Con s = σ + jω ⇒ z = 2/T + s_ 2/T – s Considerando que z = r e jθ (2/T + σ)2 + ω2 (2/T – σ)2 + ω2 r= θ = arc tg ⇒ si σ > 0 si σ = 0 si σ < 0 ⇒ ⇒ ⇒ r>1 r=1 r<1 z = 2/T + σ + jω 2/T – σ – jω ω – arc tg –ω___ 2/T + σ 2/T + σ jω s=j∞ s=0 σ s=–j∞ La transformación bilineal mapea: – El semiplano derecho del plano s en la región |z| > 1 – El eje jω en la circunferencia |z| = 1 – El semiplano izquierdo del plano s en la región |z| < 1 Si σ = 0 ⇒ r=1 ∴ θ = 2 arc tg (ωT / 2) si ω = 0 si ω → +∞ si ω → –∞ El efecto "warping" (distorsión de frecuencia) Si ω : frecuencia en el filtro analógico, y Ω : frecuencia en el filtro digital HD(ejΩT) = HA(jω) Del análisis anterior obtuvimos que: Mag. Guillermo Friedrich θ = 2 arc tg (ωT / 2) - 33 - θ=0 θ → +π θ → –π Técnicas Digitales III - UTN - FRBB Como θ = Ω T ⇒ Procesamiento Digital de Señales ω = 2 tg( ΩT ) T 2 Si Ω < 0.3 T : ω≈Ω Es decir que para que el filtro digital tenga una cierta atenuación a una frecuencia Ω, debe diseñarse el filtro analógico de origen con la corrección dada por ω = 2 tg(ΩT) T 2 Por ejemplo: para el pasabajos de Butterworth de orden 3, una frecuencia de corte (–3 dB) de 2000 Hz y período de muestreo T=125 µseg, el filtro analógico debería calcularse para una frecuencia de corte de: ω= 2 tg 2 π 2000 125 x 10–6 –6 125 x 10 2 f = ω = 16000 = 2546,48 Hz 2π 2π = 16000 rad/seg f = 2546,48 Hz Esta corrección se denomina "prewarping". A continuación se trata de obtener la función transferencia del filtro digital: HN (s) = 1 2 (s+1) (s + s + 1) Si λ = 1 2 π 2546,48 ⇒ HPB(š) = Aplicando la transformación Bilineal: s = 2 (z–1) T (z+1) HD(z) = λ–3__________ (š+λ–1)(š2 + λ–1š + λ–2) y luego de realizar los pasos algebráicos correspondientes, se llega a la siguiente expresión: 0.166667 (z + 1) (z2 + 2z + 1) _ = 0.166667 (1 + z–1) (1 + 2 z–1 + z–2 ) z (z2 + 0.333333) ( 1 + 0.333333 z–2 ) Una posible realización de este filtro es la siguiente: 0.166667 x(nT) ⊕ ⊕ ⊕ ⊕ T y(nT) T 0 0 T 2 –0.333333 Observación: calculando este mismo filtro con algún programa (por ej.: QED Lite), puede darse alguna diferencia en los valores de los coeficientes, debido a los errores de redondeo que cometen dichos programas. (por ej.: en lugar de anularse los términos en z–1 del denominador, toman valores muy pequeños). Mag. Guillermo Friedrich - 34 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 6. La transformada discreta de Fourier (DFT) Dada una señal x(nT) real, discreta en el tiempo y de duración finita, puede formarse una señal periódica, con período NT, xp(nT), de la siguiente manera: ∞ xp(nT) = ∑ x(nT + rNT) r = –∞ xp(nT) x(nT) nT nT NT La transformada discreta de Fourier de xp(nT) se define de la siguiente forma: W = e j2π/N N–1 Xp(jkΩ) = ∑ xp(nT) W–kn = D xp(nT) n=0 donde: Ω = ωs / N ωs = 2π / T En general Xp(jkΩ) es complejo, y puede expresarse de la siguiente forma: Xp(jkΩ) = A(kΩ) e jΦ( kΩ ) donde: A(kΩ) = |Xp(jkΩ)| espectro de amplitud Φ(kΩ) = arg Xp(jkΩ) espectro de fase 6.1 Antitransformada discreta de Fourier (IDFT) xp(nT) se denomina "antitransformada discreta de Fourier" de Xp(jkΩ), y está dada por la siguiente expresión: N–1 xp(nT) = 1 ∑ Xp(jkΩ) W kn = D–1 Xp(jkΩ) N k=0 Demostración: N–1 1 ∑ Xp(jkΩ) W N k=0 Mag. Guillermo Friedrich N–1 kn = 1 ∑ N k=0 N–1 ∑ N–1 xp(mT) W m=0 - 35 - –km W kn N–1 = 1 ∑ xp(mT) ∑ W k(n–m) N m=0 k=0 Técnicas Digitales III - UTN - FRBB N si m=n N–1 Como: Procesamiento Digital de Señales ∑ W k(n–m) = k=0 0 N–1 ⇒ 1 ∑ Xp(jkΩ) W N k=0 para ∀ otro caso N–1 kn N–1 = 1 ∑ xp(mT) ∑ W k(n–m) = xp(nT) N m=0 k=0 Ejemplo: calcular la DFT para la siguiente señal: 1 si 2 ≤ n ≤ 6 0 ∀ otro n xp(nT) = N=10 6 Xp(jkΩ) = ∑ W–kn = n=2 como W = e j2π/N = e j π/5 W –2k – W –7k 1 – W –k ⇒ serie geométrica de términos finitos ⇒ Xp(jkΩ) = e –j 4π/5 sen (πk/2)_ sen (πk/10) Los siguientes graficos representan xp(nT) y A(kΩ) xp(nT) A(kΩ) 1 5 nT kΩ 10T 10Ω 20Ω La siguiente tabla muestra los valores de A(kΩ), para 0 ≤ k ≤ 9, correspondientes al gráfico anterior. k A(kΩ) 0 5 Mag. Guillermo Friedrich 1 2 3.236 0 3 4 1,236 0 - 36 - 5 1 6 0 7 8 1.236 0 9 3.236 Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 6.2 Interrelación entre DFT y transformada Z La DFT de xp(nT) puede derivarse de la transformada Z, tal como se ve a continuación: ∞ N–1 ∞ Xp(jkΩ) = ∑ ∑ x(nT + rNT) W n=0 r = –∞ –kn ∑ = N–1 ∑ x(nT + rNT) W–kn r = –∞ n=0 Haciendo n = m – rN obtenemos la siguiente expresión: ∞ rN+N–1 Xp(jkΩ) = ∑ ∑ x(mT) W–k (m–rN) = r = –∞ m=rn –1 N–1 ∑ = .... + x(mT) W –km m=–N ∑ + 2N–1 x(mT) W –km m=0 + ∑ x(mT) W–km + ..... = m=N ∞ Xp(jkΩ) = ∑ x(mT) W–km m = –∞ Reemplazando W=e j2π/N y m por n obtenemos la siguiente expresión: ∞ Xp(jkΩ) = ∑ x(nT) e–jk Ω nT = XD (e–jk ΩT ) n = –∞ ∴ Xp(jkΩ) = XD (e–jk ΩT ) ⇒ XD (z) = ℑ x(nT) ⇒ La DFT de x(nT) es numéricamente igual a la transformada Z de x(nT) muestreada en el círculo |z| = 1. 3 Ejemplo: N=12 ⇒ 4 2 plano Z 5 1 kΩT 6 0 7 11 8 10 9 Mag. Guillermo Friedrich - 37 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 6.3 Teorema del muestreo en el dominio de la frecuencia El teorema del muestreo en el dominio de la frecuencia es análogo al teorema del muestreo en el dominio del tiempo, el cual dice que si x(t) es tal que X(jω) = 0 para |ω| ≥ ωs/2, donde ωs= 2π/T, entonces: x(t) puede obtenerse a partir de x(nT). El teorema del muestreo en el dominio de la frecuencia dice que una transformada Z XD(z) para la cual: x(nT) = Z–1 XD(z) = 0 para n ≥ N y para n<0 puede ser determinada a partir de los valores de XD(ejkΩT), donde Ω = ωs / N. Asimismo: XD(z) puede obtenerse de la DFT de xp(nT) de acuerdo a lo visto en el punto anterior. Por lo tanto: Si x(nT)=0 para nT<0 o nT ≥ NT, entonces: xp(nT) puede obtenerse de x(nT), y Xp(jkΩ) puede obtenerse de XD(z) Y, por otra parte, x(nT) y XD(z) pueden obtenerse a partir xp(nT) y Xp(jkΩ) respectivamente. x(nT) = [ u(nT) – u(nT – NT) ] xp(nT) N–1 XD(z) = 1 ∑ Xp(jkΩ) 1 – z–N___ ∴ x(nT) puede ser representada por la DFT de xp(nT) N k=0 1 – W k z–1 ⇒ Cualquier señal discreta en el tiempo de duración finita, puede ser procesada empleando algoritmos de Transformada Rápida de Fourier (FFT), si se adopta un valor de N lo suficientemente grande. 6.4 Aliasing en el dominio del tiempo Si x(nT) ≠ 0 para n ≥ N o n<0, xp(nT) y Xp(jkω) pueden obtenerse a partir de x(nT) y XD(z). Sin embargo, en este caso x(nT) no podrá ser recuperada a partir de xp(nT) haciendo: x(nT) = [ u(nT) – u(nT–NT) ] xp(nT) Esta situación se puede ver en las siguientes figuras: Mag. Guillermo Friedrich - 38 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales x(nT) xp(nT) nT nT NT Asimismo: la expresión de XD(z) en función de Xp(jkΩ) presentada en el punto anterior ya no es exacta, y en el mejor de los casos la DFT de xp(nT) es una representación distorsionada de x(nT). 6.5 Interrelación entre la transformada discreta de Fourier (DFT), y la transformada contínua de Fourier (CFT). Si : x(t) es contínua en el tiempo, podemos obtener X(jω) : CFT de x(t) x^(t) es la versión muestreada de x(t), podemos obtener X ^(jω) : CFT de x^(t) Xp(jkΩ) = XD(ejkΩT) = x^(jkΩ) ∞ ∞ D∑ x(nT + rNT) = 1 ∑ X(jkΩ + jrωs) r = –∞ T r = –∞ Si x(t) = 0 (*) para t < 0 y para t ≥ NT ⇒ las sumatorias anteriores (*) se hacen periódicas y X(jω) = 0 para |ω| ≥ ωs / 2 ∴ xp(nT) = x(nT) para 0 ≤ nT ≤ (N–1)T Xp(jkΩ) = 1 X(jkΩ) T Por lo tanto: xp(nT) x(t) Xp(jkΩ) Si, por el contrario, x(t) ≠ 0 para |kΩ| < ωs_ 2 X(jω) para t < 0 o para t ≥ NT xp(nT) ya no es una representación periódica de x(nT), por lo tanto la DFT de xp(nT) no es una representación precisa de x(t). Sin embargo, si la banda de frecuencias está limitada, se puede aplicar una ventana temporal w(t), y obtenemos x'(t) –una versión truncada de x(t)–: Mag. Guillermo Friedrich - 39 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales w(t) = 0 para t < 0 y para t ≥ NT x'(t) = w(t) . x(t) Se puede demostrar que X'(jω) ≈ X(jω) para |ω| < ωs / 2, y como x'(t) ≈ x(t) para t < 0 y para t ≥ NT entonces, la DFT de x'(nT) es una representación aproximada de x(t), en el dominio de la frecuencia. Las pautas para seleccionar el tipo de ventana –w(t)– y el valor de N pueden verse en el cap. 9.4 del libro "Digital Filters" de Antoniou, 2º edición. El valor de T (= 2π/ωs) debe elegirse de modo tal que la expresión X(jω)=0 ∀ |ω| ≥ ωs/2, se satisfaga lo mejor posible. La técnica recién descripta también puede ser usada para obtener la representación aproximada mediante DFT de señales discretas en el tiempo tales que: x(nT) ≠ 0 para n < 0 o para n ≥ N Mag. Guillermo Friedrich - 40 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 7. Algoritmos para el cálculo de la transformada rápida de Fourier (FFT) Uno de los algoritmos existentes para el cálculo de la transformada rápida de Fourier está basado en la técnica de decimación en el tiempo. Partiendo de la transformada discreta de Fourier que se desea obtener: N–1 ∑ X(k) = donde: WN = e j2π / N x(n) WN –kn n=0 Si se considera un valor de N que sea una potencia entera de 2 (N=2r -r entero-), entonces la sumatoria puede dividirse en dos partes, según que n sea par o impar: N–1 ∑ X(k) = N–1 x(n) WN –kn ∑ + n=0 (n par) x(n) WN –kn n=0 (n impar) Lo anterior se puede expresar de esta otra forma: N/2–1 X(k) = ∑ N/2–1 x10(n) WN n=0 –2kn + ∑ x11(n) WN –2kn n=0 donde: x10(n) = x(2n) x11(n) = x(2n+1) para 0 ≤ n ≤ N / 2 –1 y como: WN –2kn = WN / 2–kn N/2–1 ⇒ X(k) = ∑ x10(n) WN/2 N/2–1 –kn + WN n=0 ∴ X(k) = X10(k) + WN–k X11(k) –k ∑ x11(n) WN/2 –kn = X10(k) + WN–k X11(k) n=0 Como X10(k) y X11(k) son periódicas con período N/2: ⇒ X(k+N/2) = X10(k+N/2) + WN–(k+N/2)X11(k+N/2) ∴ X(k+N/2) = X10(k) – WN–k X11(k) | Las ecuaciones y | pueden representarse mediante el siguiente gráfico, denominado "mariposa" Mag. Guillermo Friedrich - 41 - Técnicas Digitales III - UTN - FRBB X10(k) Procesamiento Digital de Señales X(k) 1 1 ±W–k 1 X11(k) X(k+N/2) O también se puede utilizar el siguiente diagrama simplificado: X10(k) X(k) k X11(k) X(k+N/2) N/2–1 A su vez: X10(k) = ∑ x(n) WN/2–kn también puede dividirse en dos sumatorias: n=0 N/4–1 X10(k) = ∑ N/4–1 x20(n) WN/4 –kn + WN –2k n=0 ∑ x21(n) WN/4 –kn n=0 donde: x20(n) = x10(2n) y x21(n)=x10(2n+1) 0 ≤ n ≤ N/4–1 Que puede expresarse como: X10(k) = X20(k) + WN –2k X21(k) Por su parte, puede hacerse un análisis similar a partir de X11(k), llegando a la siguiente expresión: X11(k) = X22(k) + WN –2k X23(k) donde: x22(n) = x11(2n) y x23(n)=x11(2n+1) 0 ≤ n ≤ N/4–1 Como X20(k) y X21(k) son periódicas con período N/4, se puede repetir el razonamiento aplicado anteriormente, por lo tanto: X10(k+N/4) = X20(k) – WN–2k X21(k) X11(k+N/4) = X22(k) – WN–2k X21(k) De igual modo a lo realizado hasta aquí, se puede continuar dividiendo las sumatorias, y en el ciclo m-ésimo tendremos: Mag. Guillermo Friedrich - 42 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales X(m–1)0(k) = Xm0(k) + WN –2 m–1 k Xm1(k) X(m–1)0(k+N/2m) = Xm0(k) – WN –2 X(m–1)1(k) = Xm2(k) + WN –2 m–1 k m–1 k Xm1(k) Xm3(k) X(m–1)1(k+N/2m) = Xm2(k) – WN –2 m–1 k Xm3(k) ..................... donde: xm0(n) = x(m–1)0(2n) xm1(n) = x(m–1)0(2n+1) xm2(n) = x(m–1)1(2n) xm3(n) = x(m–1)1(2n+1) ........................ Y todo esto es válido para 0 ≤ m ≤ N / 2m–1 . Sin embargo, para el último ciclo, o sea: el ciclo r-ésimo (N=2r), xr0(n), xr1(n), etc. quedan reducidas a secuencias de un solo elemento, en cuyo caso tendremos: Xri(0) = xri(0) para i = 0, 1,....., N–1 Los valores de la penúltima DFT pueden obtenerse de las siguientes ecuaciones: X(r–1)0(0) = xr0(k) + WN 0 xr1(0) X(r–1)0(1) = xr0(k) – WN 0 xr1(0) X(r–1)1(0) = xr2(k) + WN 0 Xr3(0) X(r–1)1(1) = xr2(k) – WN –2 xr3(0) ................ Lo último que resta es identificar los elementos xr0(0), xr1(0), .... Esto es sencillo dado que: xrp(0) = x(q) donde: q es la representación binaria con r bits, de p revertido. Por ejemplo: si r=3 (N=8) , x31(0) será x(4), ya que 1 = 0012 ; efectuando la reversión de bits queda 1002 = 4. En definitiva, {xr0(0), xr1(0), ....} es una versión reordenada de la secuencia de muestras de entrada {x(0), x(1), ....}. Ejemplo: Construir el algoritmo de FFT por decimación en tiempo para N=8. Como: x10(n) = x(2n) y x11(n) = x(2n+1) x10 = { x(0), x(2), x(4), x(6) } x11 = { x(1), x(3), x(5), x(7) } Mag. Guillermo Friedrich - 43 - para 0 ≤ n ≤ N/2–1 Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Consecuentemente obtenemos los siguientes valores: x20 = { x(0), x(4) } x21 = { x(2), x(6) } x22 = { x(1), x(5) } x23 = { x(3), x(7) } Finalmente: x30 = { x(0) } x31 = { x(4) } x32 = { x(2) } x33 = { x(6) } x34 = { x(1) } x35 = { x(5) } x36 = { x(3) } x37 = { x(7) } El algoritmo queda expresado mediante el siguiente diagrama de "mariposas": X3i(k) X2i(k) X1i(k) X(k) x(0) 0 0 0 1 1 1 x(4) 0 x(2) x(6) 0 x(1) x(5) 0 x(3) x(7) 0 0 0 1 2 2 2 3 3 0 3 0 4 1 3 1 5 0 0 3 2 6 1 2 3 3 7 Como puede verse, la cantidad de operaciones ("mariposas") que hay que realizar es igual a N/2 log2N , en lugar de las N2 correspondientes a la DFT. Por ejemplo: si N=512, la DFT requiere 5122 = 262144 cálculos, mientras que la FFT requiere de sólo 2304 cálculos (≈ 1%). Por otra parte, tambien puede verse del gráfico anterior que se la cantidad memoria necesaria para poder calcular la FFT es igual a 2 N, ya que luego utilizar un conjunto de valores Xmi(k) como entradas para calcular los valores X(m–1)i(k) , ya no se necesitan más los valores de Xmi(k), por lo que los lugares memoria que ocupan podrán ser destinados a los valores de X(m–2)i(k). Mag. Guillermo Friedrich - 44 - de de de de Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 8. Diseño de filtros no recursivos (FIR) Los filtros recursivos (IIR) que se han considerado anteriormente permiten obtener filtros de alta selectividad y sencillez computacional. Sin embargo, es muy dificil diseñar un filtro digital recursivo que tenga alta selectividad y al mismo tiempo un retardo de grupo constante. Mediante la aproximación de Bessel y la transformación invariante al impulso se puede obtener un filtro recursivo con retardo de grupo constante, pero esto solamente permite obtener filtros pasabajos o pasabanda de baja selectividad. Por el contrario, los filtros no recursivos se pueden diseñar fácilmente para que tengan un retardo de grupo constante, al mismo tiempo que se puede lograr una gran variedad de respuestas en frecuencia. Hay diferentes métodos para resolver la aproximación de filtros no recursivos. El método que se va a considerar está basado en series de Fourier. Otro método está basado en el uso de la DFT (o FFT), y otra posibilidad es utilizar el algoritmo de intercambio de Remez. Este último método permite lograr soluciones óptimas, es decir, un filtro con el mínimo orden posible. La desventaja del algoritmo de intercambio de Remez es la complejidad y volumen de cálculos necesarios para efectuar el diseño. 8.1 Propiedades de los filtros no recursivos ¾ Filtros de retardo constante. Un filtro causal no recursivo puede ser caracterizado mediante la siguiente función transferencia: N–1 H(z) = ∑ h(nT) z–ne j 2π / N n=0 y su respuesta en frecuencia estará dada por: N–1 jωt H(e ) = M(ω) e jθ(ω) = ∑ h(nT) e– jωnT n=0 donde: M(ω) = |H(ejωt)| y θ(ω) = arg H(ejωt) Los retardos de fase y de grupo están dados respectivamente por: τp = – θ(ω) ω y τg = – dθ(ω) dω Si se requiere que tanto τp como τg sean constantes, la respuesta en fase deberá ser lineal, es decir: θ(ω) = – τω De las ecuaciones precendentes y se puede expresar la respuesta en fase como: Mag. Guillermo Friedrich - 45 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales N–1 ∑ h(nT) n=0 θ(ω) = – τω = arc tg sen ωnT _____________ N–1 ∑ h(nT) n=0 Por lo tanto: cos ωnT N–1 ∑ h(nT) n=0 tan ωτ = sen ωτ = cos ωτ sen ωnT _____________ N–1 ∑ h(nT) n=0 cos ωnT Luego, se puede llegar a: N–1 ∑ h(nT) ( cos ωnT n=0 sen ωτ – sen ωnT cos ωτ ) = 0 Y finalmente, la expresión anterior es equivalente a la siguiente: N–1 ∑ h(nT) n=0 sen(ωτ – ωnT ) = 0 Puede demostrarse que la solución a esta expresión es: τ = (N – 1) T 2 y h(nT) = h[(N–1–n)T ] para 0 ≤ n ≤ N–1 Por lo tanto, un filtro no recursivo puede tener fase y retardo de grupo constantes a lo largo de toda la banda base. Solamente es necesario que la respuesta impulsiva sea simétrica alrededor del punto medio entre las muestras (N–2)/2 y N/2, para N par, o bien con resepcto a la muestra (N–1)/2 para N impar. La figura siguiente muestra la simetría requerida para N=10 y N=11. 1.0 N=10 1.0 h(nT) h(nT) nT nT n=10 n=10 –1.0 Mag. Guillermo Friedrich N=11 –1.0 - 46 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales En algunas aplicaciones solamente es necesario que el retardo de grupo sea constante, en cuyo caso la respuesta de fase puede ser de la forma: θ(ω) = θ0 – τω (donde θ0 : constante) Usando el mismo procedimiento anterior, se puede obtener una segunda clase de filtros no recursivos. Si θ0 = ± π/2, la solución es: τ = (N – 1) T 2 y h(nT) = –h[(N–1–n)T ] para 0 ≤ n ≤ N–1 ¾ Respuesta en Frecuencia Las precedentes ecuaciones y permiten arribar a algunas expresiones sencillas para la respuesta en frecuencia. Para el caso de respuesta impulsiva simétrica y N impar, la ecuación puede ser expresada así: (N–3)/2 H(e jωT )= ∑ n=0 N–1 h(nT) e –jωnT + h[ (N–1)T ] e 2 –jω(N–1)T/2 + ∑ h(nT) e–jωnT n=(N+1)/2 Usando la ecuación y haciendo N – 1 – n = m, m=n, la última sumatoria en la ecuación anterior puede ser expresada así: N–1 ∑ N–1 h(nT) e –jωnT n=(N+1)/2 = ∑ (N–3)/2 h[(N–1–n)T] e –jωnT n=(N+1)/2 = ∑ n=0 h(nT) e–jω(N–1– n)T Por lo tanto, de y podemos llegar a la siguiente expresión de la respuesta en frecuencia: (N–3)/2 H(e jωT )= e –jω(N–1)T/2 h { [ (N–1)T ] + 2 ∑ n=0 2h(nT) cos[ω (N–1 – n) T ] } 2 Por último, si hacemos (N–1)/2 – n = k, llegamos a: (N–1)/2 H(e jωT )= e –jω(N–1)T/2 ∑ k=0 ak cos(ω k T ) donde: a0 = h[(N–1)T] 2 ak = 2 h[(N–1 – k) T ] 2 De igual manera se pueden considerar el caso de respuesta impulsiva simétrica con N par y para los dos casos de respuesta antisimétrica. La siguiente tabla resume las expresiones de la respuesta en frecuencia para los cuatro casos posibles. Mag. Guillermo Friedrich - 47 - Técnicas Digitales III - UTN - FRBB h(nT) Procesamiento Digital de Señales H(ejωT) N (N–1)/2 Simétrica Impar ∑ e –jω(N–1)T/2 e –jω(N–1)T/2 e –j[ω(N–1)T/2 – π/2] e –j[ω(N–1)T/2 – π/2] k=0 ak cos(ω k T ) N/2 Par ∑ k=1 bk cos[ω(k–½) T ] (N–1)/2 Antisimétrica Impar ∑ k=0 ak sen(ω k T ) N/2 Par donde: a0 = h[(N–1)T] 2 ∑ k=1 ak = 2h[(N–1 – k) T] 2 bk sen[ω(k–½) T ] bk = 2h[( N – k) T] 2 ¾ Ubicación de los Ceros Las condiciones impuestas a la respuesta impulsiva por las ecuaciones y , imponen ciertas restricciones a los ceros de H(z). Para N impar tenemos: (N–3)/2 H(z) = 1 z (N–1)/2 ∑ n=0 h(nT) ( z(N–1)/2–n ± z–[ (N–1)/2–n] ) + ½ h[ (N–1)T ] ( z0 ± z0 ) 2 Donde: el signo negativo se aplica al caso de respuesta impulsiva antisimétrica. Considerando (N–1)/2 – n = k , podemos escribir la expresión anterior de la siguiente forma: (N–1)/2 H(z) = N(z) = 1 (N–1)/2 D(z) z ∑ n=0 ½ ak ( zk ± z–k ) Los ceros de H(z) son las raices de N(z), dado por: (N–1)/2 N(z) = ∑ k=0 ak ( zk ± z–k ) Si z es reemplazada por z–1, tenemos: Mag. Guillermo Friedrich - 48 - Donde: a0 y ak están dados por las ecuaciones y . Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales (N–1)/2 –1 N(z ) = ∑ k=0 (N–1)/2 ak ( z –k k ± z )= ± ∑ k=0 ak ( zk ± z–k ) = ± N(z) La misma relación se puede obtener para N par, y por lo tanto, si zi=ri ejψi es un cero de H(z), entonces zi–1= ejψi también será un cero de H(z). ri Esto tiene las siguientes consecuencias sobre la ubicación de los ceros: – Puede haber un número arbitrario de ceros ubicados en zi = ±1, ya que zi–1 = ±1. – Puede haber un número arbitrario de pares complejos conjugados de ceros ubicados en el círculo unidad, debido a que: (z–zi)(z–zi*) = (z – ejψi)(z – e–jψi) = (z – 1 )(z – 1 ) z i* zi – Los ceros reales fuera del círculo unidad deben ocurrir en pares recíprocos. – Los ceros complejos fuera del círculo unidad deben ocurrir en grupos de cuatro, es decir: zi, zi*, y sus recíprocos: 1/zi* y 1/zi. La siguiente figura muestra un hipotético diagrama de polos y ceros para un filtro no recursivo con retardo constante de fase. z3 1/z5* z5 Plano z z4 z2 z3 * z1 1/z4 z5 * 1/z5 8.2 Diseño de filtros no recursivos usando Series de Fourier. Como la respuesta en frecuencia de un filtro no recursivo es una función periódica de ω con período ωs, puede ser expresada como una serie de Fourier. Podemos escribir: ∞ H(e jωT )= Mag. Guillermo Friedrich ∑ n=–∞ ωs/2 h(nT) e –jωnT Donde: h(nT) = 1 ωs - 49 - ∫ H(ejωT) ejωnT dω –ωs/2 Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Si consideramos z = ejωT obtenemos: ∞ H(z) = ∑ n=–∞ h(nT) z–n De la expresión analítica de la respuesta en frecuencia es fácil llegar a una expresión de la función transferencia. Sin embargo, esta función transferencia es no causal y de orden infinito. Para obtener un filtro de orden finito, la serie planteada puede ser truncada haciendo: h(nT) = 0 Para |n| > N – 1 2 En cuyo caso llegamos a la siguiente expresión: (N–1)/2 H(z) = h(0) + ∑ n=1 [h(–nT) zn + h(nT) z–n] La causalidad puede lograrse multiplicando H(z) por z–(N–1)/2 , de modo tal que: H'(z) = z–(N–1)/2 H(z) Esta modificación es posible debido a que la respuesta en amplitud no se ve afectada, y el retardo de grupo es incrementado en un valor constante (N–1)T / 2. Cabe destacar que si H(ejωT) es una función par de ω, entonces la respuesta al impulso es simétrica alrededor de n=0, y el filtro tiene retardo de grupo 0. En consecuencia, el filtro no causal representado por la ecuación anterior tiene retardo de grupo (N–1)T / 2. Ejemplo Diseñar un filtro pasabajos no recursivo con la siguiente respuesta en frecuencia: H(e jωT 1 para |ω| ≤ ωc )≈ 0 para ωc < |ω| ≤ ωs / 2 Donde ωs: frecuencia de muestreo Solución: ωc h(nT) = 1 ωs ∫ ejωnT dω = –ωc 1 sen(ωcnT) nπ Luego: (N–1)/2 H(z) = z –(N–1)/2 ∑ an n=0 2 [zn + z–n] Donde: a0 = h(0) an = 2 h(nT) Si consideramos los siguientes valores: N=7, ωc=2 rad/s y ωs=10 rad/s, la función transferencia del filtro sería: Mag. Guillermo Friedrich - 50 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 3 H(z) = z –3 H(z) = z –3 [ h(0) + ∑ n=1 h(nT) (zn + z–n) ] 3 [ 0.4 + ∑ n=1 1 sen(2nπ) (zn + z–n) ] nπ 5 Y finalmente obtenemos la siguiente función transferencia: H(z) = –0.0624 + 0.0935 z–1 + 0.3027 z–2 + 0.4 z–3 + 0.3027 z–4 + 0.0935 z–5 – 0.0624 z–6 Oscilaciones de Gibbs En las figuras siguientes se muestra la respuesta en amplitud para un filtro con los requerimientos planteados en el ejemplo anterior (ωc=2 rad/s y ωs=10 rad/s), y considerando N=11, N=21 y N=31. Se pueden observar oscilaciones en la banda de paso y en la banda de rechazo, debidas a la lenta convergencia de las series de Fourier, las cuales son causadas por la discontinuidad existente entre la banda de paso y la banda de rechazo. A medida que N aumenta, aumenta también la frecuencia de las oscilaciones. Asimismo, puede verse que al aumentar N disminuye la amplitud de las oscilaciones, excepto la última de la banda de paso y la primera de la banda de rechazo, que tienden a mantenerse virtualmente sin cambio. N=11 N=21 N=31 Una forma rudimentaria de evitar las discontinuidades en la respuesta en frecuencia puede ser introducir una banda de transición. Por ejemplo, el pasabajos considerado en el ejemplo anterior podría ser redefinido así: Mag. Guillermo Friedrich - 51 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales H(ejωT) ≈ 1 para |ω| ≤ ωp – (ω – ωa) / (ωa – ωp) para ωp < |ω| < ωa 0 para ωa < |ω| ≤ ωs /2 8.3 Uso de funciones de ventana. Una técnica alternativa y de fácil aplicación para reducir las oscilaciones de Gibbs consiste en preacondicionar h(nT) usando una clase de funciones en el dominio del tiempo conocidas como funciones de ventana. Sean: ∞ H(z) = Z h(nT) = ∑ h(nT) z–n n=–∞ ∞ W(z) = Z w(nT) = ∑ w(nT) z–n n=–∞ ∞ Hw(z) = Z[w(nT) h(nT)] = ∑ h(nT) z–n n=–∞ Donde w(nT) representa una función de ventana. El uso de la convolución compleja nos lleva a: Hw(z) = ∫ 1 H(v) W(z/v) v–1 dv 2πj Γ Donde Γ : contorno en la la región común de convergencia de H(v) y W(z/v). Con v = ejΩT y z = ejωT , y tanto H(v) como W(z/v) convergentes en el círculo unidad del plano v, la ecuación anterior puede escribirse así: 2π/T Hw(e jωT )= T 2π ∫ H(e jΩT ) W(ej(ω–Ω)T) dΩ 0 Si a los fines de esta explicación consideramos: H(ejΩT) = 1 para 0 ≤ |Ω| ≤ ωc 0 para ωc < |Ω| ≤ ωs/2 1 –π/T –ωc Mag. Guillermo Friedrich - 52 - H(ejΩT) ωc π/T Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales Si asimismo se considera que W(ejΩT) es real y tiene la forma dada en la siguiente figura, y se asume que W(ejΩT) = 0, para ωm < |Ω| ≤ ωs/2. W(ejΩT) –π/T ωm –ωm π/T Esto representa un diagrama espectral ideal para una función de ventana –más adelante se verá el espectro real–. Se puede demostrar que con W(ejΩT) tal como la anterior, la gráfica de Hw(ejΩT) adoptaría una forma parecida a la siguiente: Hw(ejωT) –π/T ωm –ωm π/T Si H(z) representa un filtro de retardo constante y se desea que Hw(z) también represente un filtro de retardo constante de orden finito, entonces w(nT) deberá satisfacer las siguientes propiedades en el dominio del tiempo: ¾ w(nT) = 0 para |n| > (N–1)/2 ¾ Para N impar, w(nT) debe ser simétrica alrededor de n=0. La siguiente figura muestra una típica función de ventana: 1.0 w(nT) N=11 nT En la práctica, el espectro de una función de ventana w(nT) se aparta del espectro ideal visto más arriba, y adopta una forma como la que se ve en la próxima figura. la amplitud del lóbulo principal está dada por kωs/N, donde k es una constante. Mag. Guillermo Friedrich - 53 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales W(ejωT) ω –kωs / 2N kωs / 2N El efecto que tienen los lóbulos laterales del espectro de w(nT) es aumentar las oscilaciones de Gibbs en la respuesta en amplitud del filtro. Para que el ripple en la banda de paso sea pequeño, y la atenuación en la banda de rechazo sea grande, el área encerrada por los lóbulos laterales debe ser una pequeña fracción del área encerrada por el lóbulo principal. Por otra parte, la amplitud del lóbulo principal determina la amplitud de la banda de transición del filtro resultante. Para lograr una alta selectividad, el valor de N (y por lo tanto el orden del filtro) deberá ser grande, mientras que el valor de k deberá ser pequeño. Las funciones de ventana más frecuentemente usadas son: – Rectangular – von Hann (o Hanning) – Hamming – Blackman – Dolph-Chebyshev – Kaiser 8.3.1 Ventana Rectangular. La ventana rectangular está dada por: wR(NT) = 1 para |n| ≤ (N – 1) / 2 0 para otros valores de |n| El espectro de wR(NT) puede calcularse de la siguiente forma: (N–1)/2 WR(e Mag. Guillermo Friedrich jωT )= ∑ e–jωnT = sen (ωNT / 2) n=–(N–1)/2 sen (ωT / 2) - 54 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales El ancho del lóbulo principal es igual a 2ωs/N. Puede calcularse una relación de ripple, r, que nos da una idea de la amplitud que tendrán las oscilaciones debidas al efecto Gibbs: r = máxima amplitud de un lóbulo lateral . 100 % amplitud del lóbulo principal Para N=11, r = 22.34, mientras que si N=101, r se reduce a 21.70. 8.3.2 Ventanas de von Hann y de Hamming. Las ventanas de von Hann y de Hamming están dadas por: α + (1–α) cos(2πn / (N–1)) wH(nT) = 0 para |n| ≤ (N–1) / 2 para los demás casos α = 0.5 α = 0.54 (von Hann) (Hamming) Puede observarse que los lóbulos laterales de estas ventanas son más reducidos que los de la ventana rectangular, y por lo tanto el ripple es menor. Considerando ωs=10 rad/s, el factor de ripple para estas ventanas es: von Hann Hamming N=11 2.62 1.47 N=101 2.67 0.74 El ancho del lóbulo principal puede demostrarse que es aproximadamente igual a 4ωs/N. 8.3.3 Ventana de Blackman. La ventana de Blackman es similar a la anterior, y está dada por la siguiente expresión: 0.42 + 0.5 cos(2πn/(N–1)) + 0.08 cos(4πn/(N–1))) para |n| ≤ (N–1)/2 wB(nT) = 0 en los demás casos. El término coseno adicional produce una reducción adicional en la amplitud de las oscilaciones por efecto Gibbs. El factor de ripple, considerando ωs=10 rad/s es de 0.08 para N=11, y de 0.12 para N=101. Por su parte, el ancho del lóbulo principal se ve incrementado a 6 ωs / N. Mag. Guillermo Friedrich - 55 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales 8.3.4 Ventana de Dolph-Chebyshev. Como pudo observarse, las ventanas anteriores dan lugar a un ripple que es prácticamente independiente del valor de N, y por lo tanto la aplicación de tales ventanas es limitada. Una ventana más versátil es la de Dolph-Chebyshev, y está dada por la siguiente fórmula: (N–1)/2 wDC(nT) = 1 1 + 2 ∑ TN–1 x0 cos(iπ/N) cos(2nπ i/N) i=1 N r para: n = 0, 1, 2, ..., (N–1)/2 donde: r : relación de ripple deseada (expresada como fracción) x0 = cosh( 1/(N–1) cosh–1(1/r) ) Tk(x) : k-ésimo polinomio de Chebyshev asociado con la aproximación para filtros recursivos, y dado por: cos(k cos–1 x) para |x| ≤ 1 Tk(x) = cosh(k cosh–1 x) para |x| > 1 Como puede verse, se puede elegir el factor de ripple que se desea obtener y, al igual que para otras ventanas, el valor de N determina el ancho del lóbulo principal. Dos propiedades interesantes de la ventana de Dolph-Chebyshev son las siguientes: – Para un dado valor de N, el ancho del lóbulo principal es el menor que podría obtenerse para una relación de ripple dada. Esto implica que usando esta ventana se obtienen filtros con una banda de transición muy estrecha. – Todos los lóbulos laterales tienen la misma amplitud. Esto implica que el error de aproximación tiende a distribuirse uniformemente con respecto a la frecuencia. 8.3.5 Ventana de Kaiser. La ventana de Kaiser, al igual que la anterior, también permite controlar independientemente la relación de ripple y el ancho del lóbulo principal. La ventana de Kaiser está dada por: wK(nT) = Mag. Guillermo Friedrich I0(β) I0(α) para |n| ≤ (N–1)/2 0 en los demás casos - 56 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales α es un parámetro independiente Donde: β=α 1 – (2n / (N–1) )2 ∞ I0(x) = 1 + ∑ 1 x k=1 k! 2 k 2 es la función de Bessel modificada de orden cero del primer tipo. El espectro de wK(nT) está dado por: (N–1)/2 WK(e jωT ) = wK(0) + 2 ∑ wK(nT) n=1 cos(ωnT) La ventana de Kaiser para tiempo contínuo es: wK(t) = I0(β) I0(α) para |t| ≤ τ 0 en los demás casos Donde: β=α 1 – ( t / τ )2 α = (N – 1) T 2 El espectro de wK(t) puede demostrarse que está dado por: WK(jω) = 2 I0(α) sen (τ ω2 – ωa2 ) ω2 – ωa2 Donde: ωa = α / τ ∧ Si WK(jω) ≈ 0 para |ω| ≥ ωs / 2, el espectro de la señal muestreada wK(t), o equivalentemente el espectro de wK(nT) puede expresarse así: ∧ WK(jω) = WK(ejωT) ≈ (1/T) WK(jω) para 0 ≤ |ω| ≤ ωs / 2 De las anteriores expresiones y puede obtenerse la siguiente expresión aproximada para WK(ejωT): WK(ejω) = N – 1 sen(α (ω/ωa)2 – 1 ) α I0(α) (ω/ωa)2 – 1 Para un dado valor de N, el valor de α tiene influencia sobre la relación de ripple y el ancho del lóbulo principal. La relación de ripple disminuye con el aumento de α, Mag. Guillermo Friedrich - 57 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales mientras que el ancho del lóbulo principal aumenta al aumentar α. Una característica muy importante de la ventana de Kaiser es que a partir de las expresiones recién consideradas existen algunas fórmulas empíricas para determinar los valores de α y N que permiten cumplir con las especificaciones para un filtro dado. Esto se verá a continuación. 8.3.5.1 Un método de diseño de filtros FIR basado en la ventana de Kaiser. Consideremos el diseño de un pasabajos, cuya respuesta en frecuencia está representada en el siguiente gráfico: Ganancia 1+δ 1 1–δ δ ωp ω ωa ½ ωs ω ¾ El ripple en la banda de paso, en dB, está dado por: Ap = 20 log ((1+δ) / (1–δ)) ¾ La mínima atenuación en la banda de rechazo es: Aa = –20 log δ ¾ El ancho de la banda de transición es: Bt = ωa – ωp Para obtener los coeficientes de un filtro cuyo ripple en la banda de paso sea igual o menor a A'p , su atenuación en la banda de rechazo sea mayor o igual a A'a, y cuya banda de transición sea Bt, se pueden seguir los pasos siguientes: (1) Determinar h(nT) usando la aproximación por series de Fourier vista en 8.2, asumiendo una respuesta en frecuencia ideal, es decir: H(ejωT) = 1 para |ω| ≤ ωc 0 para ωc < |ω| ≤ ½ ωs Donde : ωc = ½ (ωp + ωa) (2) Seleccionar un valor de δ tal que Ap ≤ A'p y Aa ≥ A'a. Un valor adecuado es δ = mín(δ1, δ2) Mag. Guillermo Friedrich - 58 - donde: δ1 = 10–0,05 A'a δ2 = 100,05 A'p – 1 100,05 A'p + 1 Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales (3) Calcular Aa = –20 log δ (4) Seleccionar el parámetro α según el siguiente criterio: α= 0 0.5842(Aa – 21)0,4 + 0.07886(Aa – 21) 0.1102(Aa – 8.7) para Aa ≤ 21 para 21 < Aa ≤ 50 para Aa > 50 (5) Elegir el parámetro D según el siguiente criterio: 0.9222 para Aa ≤ 21 (Aa – 7.95) / 14.36 para Aa > 21 D= (6) Adoptar el mínimo valor impar de N que satisfaga la siguiente desigualdad: N ≥ ωs D + 1 Bt (7) Formar wK(nT) según lo descripto en 8.3.5 (8) Formar Donde: Hw(z) = Z H'w(z) = z–(N–1)/2 Hw(z) [ wk(nT) h(nT) ] Ejemplo: Diseñar un pasabajos FIR con las siguientes especificaciones: – Máximo ripple en la banda de paso, entre 0 y 1.5 rad/s : 0.1 dB – Mínima atenuación en la banda de rechazo, entre 2.5 y 5 rad/s : 40 dB – Frecuencia de muestreo: 10 rad/s (1) Del ejemplo dado en 8.2 obtenemos: h(nT) = Donde: ωc = ½ (1.5 + 2.5) = 2.0 rad/s (2) 1 sen(ωc nT) nπ δ1 = 10–0,05(40) = 0.01 δ2 = 10–0,05(0,1) – 1 = 5.7564 x 10–3 10–0,05(0,1) + 1 Por lo tanto: δ = 5.7564 x 10–3 (3) Aa = –20 log δ = –20 log(5.7564 x 10–3) = 44.797 dB (4) α = 0.5842(Aa – 21)0,4 + 0.07886(Aa – 21) = 3.9524 (5) D = (Aa – 7.95) / 14.36 = 2.566 (6) N ≥ ωs D + 1 = ( 10 2.566 ) + 1 = 26.66 = 27 Bt (2.5 – 1.5) Mag. Guillermo Friedrich - 59 - N=27 Técnicas Digitales III - UTN - FRBB (7) Procesamiento Digital de Señales Debido a la simetría de los coeficientes del filtro, sólo es necesario calcular los mismos para n entre 0 y 13. El siguiente programa escrito en lenguaje C implementa el procedimiento de cálculo recién descripto, y da como resultado el orden del filtro y el listado de coeficientes del filtro: h[n]*w[n]. Con algunas mínimas modificaciones este programa podría servir para calcular filtros con distintas especificaciones. //------------------------------------------------------------------------------// Programa para calcular los coeficientes de un filtro // pasabajos FIR, en base a la ventana de Kaiser. // Basado en Antoniu, "Digital Filters", 2º edic. Inciso 9.4.6 // Ing. G. Friedrich - Marzo 2002 //------------------------------------------------------------------------------- printf( "Orden del filtro: N = %d\n", N ); for(n=0; n<=(N-1)/2; n++) { b = a * sqrt(1-pow(2*(float)n/(float)(N-1),2)); // calcula el término n-ésimo de la serie de // Fourier: h[n] #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <math.h> if( n==0 ) h[n] = 2*wc/Ws; else float Io( float x ); long fact( long n ); h[n] = sin(2*n*M_PI*wc/Ws) / (n*M_PI); // calcula el término n-ésimo de la ventana: w[n] // Datos --> deben cambiarse para especificar otro filtro. w[n] = Io(b)/Io(a); #define Ws 10.0 // frecuencia de muestreo, en rad/s #define Wp 1.5 // frecuencia límite de la banda de paso, en rad/s #define Wa 2.5 // frecuencia límite de la banda de rechazo, en rad/s #define Ap 0.1 // máx ripple en la banda de paso, en dB #define Aa 40.0 // mín atenuacion en la banda de rechazo, en dB // Imprime los resultados printf ( "wk(%2dT) = %f\th(%2dT) = %f\th(%2dT)wk(%2dT) = %f\n", n, w[n], n, h[n], n, n, h[n]*w[n] ); } getch(); void main() { int k, n, N; float a, b, d, d1, d2, D, A_a, wc=(Wp+Wa)/2; float h[64], w[64]; } //-----------------------------------------------------------------// Calcula Io(x), la función modificada de Bessel // de orden cero, del primer tipo //------------------------------------------------------------------ clrscr(); d1 = pow(10, -0.05*Aa); d2 = (pow(10, 0.05*Ap) - 1) / (pow(10, 0.05*Ap) + 1); d = min(d1,d2); float Io( float x ) { int k; float I; // calcula la atenuación real en la banda de rechazo // Como la serie converge r pido, suma sólo 10 términos for(I=1.0,k=1; k<=10; k++) { I += pow( pow(x/2.0,k)/fact(k), 2 ); } return I; A_a = -20 * log10(d); if( A_a <= 21.0 ) a = 0.0; else if( A_a > 21.0 && A_a <= 50 ) a=0.5842*pow(A_a-21.0, 0.4)+0.07886*(A_a-21.0); else // A_a > 50 a = 0.1102*(A_a-8.7); if ( A_a <= 21.0 ) D = 0.9222; else D = (A_a - 7.95) / 14.36; } //----------------------------------// Calcula el factorial de n //----------------------------------long fact( long n ) { long x = 1; while( n ) // calcula el orden del filtro N = (int) ceil(10 * D / (Wa-Wp) + 1); if( N%2 == 0 ) N++; x *= n--; return x; } Los resultados obtenidos de la ejecución de este programa son los que se ven a Mag. Guillermo Friedrich - 60 - Técnicas Digitales III - UTN - FRBB Procesamiento Digital de Señales continuación: Orden del wk( 0T) = wk( 1T) = wk( 2T) = wk( 3T) = wk( 4T) = wk( 5T) = wk( 6T) = wk( 7T) = wk( 8T) = wk( 9T) = wk(10T) = wk(11T) = wk(12T) = wk(13T) = Mag. Guillermo Friedrich filtro: 1.000000 0.989963 0.960309 0.912385 0.848347 0.771029 0.683782 0.590272 0.494279 0.399484 0.309270 0.226556 0.153657 0.092193 N = 27 h( 0T) h( 1T) h( 2T) h( 3T) h( 4T) h( 5T) h( 6T) h( 7T) h( 8T) h( 9T) h(10T) h(11T) h(12T) h(13T) = = = = = = = = = = = = = = 0.400000 0.302731 0.093549 -0.062366 -0.075683 -0.000000 0.050455 0.026728 -0.023387 -0.033637 -0.000000 0.027521 0.015591 -0.014392 - 61 - h( 0T)wk( 0T) h( 1T)wk( 1T) h( 2T)wk( 2T) h( 3T)wk( 3T) h( 4T)wk( 4T) h( 5T)wk( 5T) h( 6T)wk( 6T) h( 7T)wk( 7T) h( 8T)wk( 8T) h( 9T)wk( 9T) h(10T)wk(10T) h(11T)wk(11T) h(12T)wk(12T) h(13T)wk(13T) = = = = = = = = = = = = = = 0.400000 0.299692 0.089836 -0.056902 -0.064205 -0.000000 0.034500 0.015777 -0.011560 -0.013437 -0.000000 0.006235 0.002396 -0.001327 Técnicas Digitales III - UTN - FRBB Mag. Guillermo Friedrich Procesamiento Digital de Señales - 62 -