Apunte Filtros Digitales

Universidad Tecnológica Nacional Facultad Regional Bahía Blanca INTRODUCCION AL PROCESAMIENTO DIGITAL DE SEÑALES Cáted

Views 108 Downloads 0 File size 609KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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

∀nN

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 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 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

T

0.120198

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)



T

T

Y(z) T

a0



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





T

–b1

a0

T



Y(z)

T

T

a1





–b2

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

Y(z)

a0

T

a1





–b2

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 – 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 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 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