Técnicas de diseño de filtros IIR Expositor: José Luis Oropeza Rodríguez
México D. F., a 17 de agosto de 2006
OBJETIVO
Presentar al alumno un conjunto de técnicas empleadas para el diseño de filtros digitales de respuesta al impulso infinita, haciendo hincapié en las posibles formas de encontrar las ecuaciones de diferencia que permitan su implementación de forma adecuada.
BOSQUEJO DE LA PRESENTACIÓN
Introducción Filtro de respuesta al impulso infinita Técnicas de diseño Aplicaciones
OBJETIVO
Presentar al alumno un conjunto de técnicas empleadas para el diseño de filtros digitales de respuesta al impulso infinita, haciendo hincapié en las posibles formas de encontrar las ecuaciones de diferencia que permitan su implementación de forma adecuada.
BOSQUEJO DE LA PRESENTACIÓN
Introducción Filtro de respuesta al impulso infinita Técnicas de diseño Aplicaciones
DISEÑO DE FILTROS IIR Los filtros IIR se encuentran caracterizados por la siguiente ecuación y (n)
h(k ) x(n k )
IIR
k 0
y (n)
N
k 0
k 0
M
h(k ) x(n k ) a x(n k ) b y(n k ) k
k
k 1
M H ( z ) ak z /1 bk z k k 0 k 1 N
k
La cual puede ser factorizada de la forma:
H ( z )
K ( z z 1 )( z z 2 ).....( z z N )
( z p )( z p ).....( z p k 0
1
2
M
)
Los coeficientes del numerador son los ceros y los del denominador son los polos. Para que el filtro se considere estable, todos los polos deben de encontrarse dentro de las inmediaciones del círculo unitario.
PASOS DEL DISEÑO DE FILTROS DIGITALES •Especificación
de requerimientos del filtro
los
•Cálculo de los coeficientes
adecuados del filtro
PASOS
Características del filtro (Dominio de la frecuencia) El comportamiento deseado
IIR. Método invariantes con el impulso, métodos de transformación bilineal y el método del lugar de polos y ceros.
Se convierte la función de transferencia en una estructura de filtro adecuada.
•Realización
• Análisis de errores
•Implementación del filtro en
software o hardware
IIR. Forma directa, cascada, paralelo y lattice.
Se refiere al efecto que tiene el número de bits utilizado en la implantación de hardware. * Errores de cuantización, cuantización del coeficiente, errores de redondeo y sobreflujo. Se hace uso de: memoria ROM (almacenar coeficientes), memoria RAM (almacenar los estados actuales y anteriores de la señal de entrada y salida), multiplicadores de Hardware y sumadores.
ETAPA 1. ESPECIFICACIONES DE DISEÑO 1. Características de la señal 2. Características de la respuesta en frecuencia del filtro (amplitud y fases deseadas) 3. Forma de implementación (rutinas de alto nivel sobre una computadora o sistemas basados en microprocesadores DSP) 4. Otras condiciones de diseño (tales como costos y degradación de señal permisible)
ETAPA 2. CÁLCULO DE LOS COEFICIENTES DEL FILTRO IIR La tarea aquí es calcular el valor de los coeficientes del filtro. Una forma simple de obtener tales coeficientes es colocar los polos y los ceros de manera apropiada en el plano z de tal forma que el filtro resultante tenga la forma de respuesta adecuada. Dicha aproximación es útil sólo para filtros sencillos. Una forma de diseño más común es aquella que se basa en el diseño de filtros analógicos para convertirlos en filtros digitales. Fs /4
MÉTODO DE COLOCAR POLOS Y CEROS. Cuando un cero es colocado en un punto dado del plano z, la respuesta en frecuencia será cero en dicho punto. Un polo, produce un pico en el diagrama de respuesta en frecuencia.
Fs /2
0 0 Fs /4 3Fs /4
3Fs /4
MÉTODO DE POLOS Y CEROS Se desea diseñar un filtro pasa banda que se ajuste a los siguientes requerimientos. a) Rechazo de la señal tanto a un nivel de cd como a 250 Hz b) Un efecto pasa banda a una frecuencia centrada en 125 Hz c) Un ancho de banda de 3 dB a 10 Hz Considerando que la frecuencia de muestreo es de 500 Hz, se desea obtener la respuesta en frecuencia del filtro, los polos y ceros del filtro, así como su ecuación de diferencia. F /4 s
LOS CEROS. Se encontrarán en las frecuencias de 0 y 250 Hz. Lo que en el círculo del plano z se trduce en (0x250)/500=0º y (360x250)/500=180º. LOS POLOS. Se encontrarán en las frecuencias de 125 Hz. Lo que en el círculo del plano z se trduce en +-(360x250)/500=+-90º.
Fs /2
0
3Fs /4
MÉTODO DE POLOS Y CEROS El radio, r de los polos se determina por el ancho de banda deseado. Una relación de aproximación entre y, para r>0.9, y un ancho de banda bw, es:
r 1 (bw / F s ) 1 (10 / 500 ) 0.937 Del diagrama de polos y ceros, la función de transferenciase puede escribir de la forma: H ( z )
( z 1)( z 1) ( z re j / 2 )( z re z 1
la
)
1
z 2
2
j / 2
1 z
1
z
-1
y(n)
z 2 0.877969 1 0.877969 z 2 ecuación de diferencia
z 1
y (n) 0.877969 y (n 2) x (n) x(n 2) por lo
tan to
a0 1
b1 1
a1 0
b2 0.877969
a
1
z 1
-0.877969
MÉTODO DE POLOS Y CEROS (EJEMPLO 2) Se desea diseñar un filtro NOTCH que se ajuste a los siguientes requerimientos. a) Frecuencia notch 50 Hz b) Un ancho de banda de 3 dB a +-5 Hz Considerando que la frecuencia de muestreo es de 500 Hz, se desea obtener la respuesta en frecuencia del filtro, los polos y ceros del filtro, así como su ecuación de diferencia. Fs /4
LOS CEROS. Se encontrarán en las frecuencias donde se desea que la respuesta en frecuencia sea nula, es decir, en 50 Hz (360x50)/500=+-36º.
Fs /2 0
LOS POLOS. Se encontrarán sobre la misma línea de trazo del origen a donde se encuentran los ceros, con un radio de r<1.
3Fs /4
MÉTODO DE POLOS Y CEROS El radio, r de los polos se determina por el ancho de banda deseado. Una relación de aproximación entre y, para r>0.9, y un ancho de banda bw, es:
r 1 (bw / F s ) 1 (10 / 500 ) 0.937 Del diagrama de polos y ceros, la función de transferenciase puede escribir de la forma: H ( z )
[ z exp( j 36 º )][ z exp( j 36 º )] [ z 0.937 exp(39 .6 º )][( z 0.937 exp(39 .6º )]
z 2 1.6180 1 1 16180 z 1 z 2 2 z 1.5161 z 0.87 1 1.5161 z 1 0.8780 z 2 la ecuación de diferencia y ( n ) x ( n ) 1.6180 x ( n 1) x ( n 2) 1.5161 y ( n 1) 0.8780 y ( n 2) por lo
tan to
a0 1
b1 1.5161
a1 1.6180
b2 0.8780
CONVERSIÓN DE FILTROS ANALÓGICOS EN SU EQUIVALENTE DE FILTROS DIGITALES MÉTODOS UTILIZADOS: 1. Método del impulso invariante 2. Método de la transformada Z bilineal
MÉTODO INVARIANTE CON EL TIEMPO En este método, se inicia con una función de transferencia analógica, H(s) , la respuesta al impulso, h(t) , se obtiene utilizando la transformada de Laplace. La h(t) obtenida entonces, es muestreada para producir h(nT) , y la función de tranferencia deseada, H(z) , se obtiene al aplicar la transformada Z a la sucesión de puntos h(nT)
EJEMPLO sea
la
H ( s )
función transferencia C
s p
aplicando Laplace
C Ce pt h(t ) L [ H ( s)] L s p como h(nT ) h(t ) para t nT , 1
1
n 0,1,2,.....,
h(nT ) h(t ) t nT Ce pnT H ( z ) se
H ( z )
obtiene aplicando
h(nT ) z n 0
n
Ce z C (e z ) n 0
pnT n
n 0
pT 1 n
C 1 e pT z 1
GENERALIZACIÓN Generalizando si H ( s )
C 1 s p1
C 2
.....
s p2
M
C M s p M
k 1
C k s pk
por similitud M
M
C k
s p k 1
k 1
k
IIR se
C k
1 e pkT z 1
diseñan en
cascada o paralelo
C 2 e p T ) z 1 p T 1 p T 1 p T p T ( p p )T 1 s p1 s p2 1 e z 1 e z 1 (e e ) z 1 e z C 1
si
C 2
C 1
C 2
1
2
los polos son C 1 1
1 e z p1T
C 1* 1 e
p1*T
1
z
C 1 C 2 (C 1e 1
conjugados C 1 , C 2
p2T
2
1
pr T
2
conjugados
2C r [C r cos( piT ) C i sin( piT )]2e 1 2e
1
cos( piT ) z 1 e
pr T
z 1
z 2
pr T
En la expresión Cr y Ci son las partes real e imaginaria de C 1, Pr y Pi son las partes real e imaginaria de P 1 y * representa el conjugado complejo.
EJEMPLO Aplicando el método del impulso invariante realizar el diseño de un filtro digital IIR de tal forma que se aproxime a la respuesta en frecuencia del siguiente filtro en el tiempo continuo.
H ( s )
1 s 2 2 s 1
reemplazar s por s / donde
Considerar que el filtro tiene la frecuencia de corte es a 150 Hz de 3 dB, a una frecuencia de muestreo de 1.28kHz. Antes de aplicar el método, se debe de escalar en frecuencia la función de transferencia normalizada, esto es:
2 x150 942.4778.
Por tan to
H ' ( s ) H ( s ) s s /
2
s 2 2 s 2
C 1 s p1
donde p1
2 (1 j )
C 1
2
666.4324(1 j ), p2 p1*
j 666.4324 j; C 2 C 1*
2 entonces aparecen polos
conjugados complejos
C r 0, C i 666.4324, P iT 0.5207, P r T 0.5207 P t T
e
0.3530.
Sustituyendo H ( z )
393.9264 z 1 1 1 0308 z 1 0 3530 z 2
EJEMPLO Si se sustituye z=eiwT en la ecuación anterior, el valor de H(z) en w=0 es de 1223, aproximadamente igual a la frecuencia de muestreo. Tal ganancia tan grande es características de los filtros invariantes al impulso. En general, la ganancia de la función de transferencia obtenida mediante este método es igual a la frecuencia de muestreo (1/T), y resulta del muestreo de respuestas al impulso. Para conservar la ganancia y evitar sobreflujos cuando el filtro es implementado, es práctica común multiplicar H(z) por T (o de forma equivalente dividir por la frecuencia de muestreo). Por lo que el problema se reduce a: 0.3078 z 1
H ( z )
1 1.0308 z 1 0.3530 z 2 entonces se tiene : a0 0
b1 1.0308
a1 0.3078
b2 0.3530
Un método alternativo de remover el efecto de la frecuencia de muestreo sobre la ganancia del filtro es trabajar con frecuencias normalizadas. Para el ejemplo se tendría:
T 1
y 2 x150 / 1280
RESUMEN DE MÉTODOS INVARIANTES AL MPULSO PARA OBTENER COEFICIENTES IIR 1. Determinar el filtro analógico normalizado, H(s), que satisface las especificaciones del filtro digital deseado. 2. Si es necesario, se expande H(s) usando fracciones parciales para simplificar el siguiente paso. 3. Obtener la transformada z de cada fracción parcial. 4. Obtener H(z) para combinar la transformada z de las fraccione parciales dentro del segundo término y posiblemente un término de primer orden. Si la frecuencia de muestreo es usada entonces al multiplicar H(z) por T. PUNTOS QUE RECORDAR SOBRE EL MÉTODO 1) La respuesta al impulso del filtro discreto, h(nT), es idéntica a la del filtro analógico h(t), en instantes de tiempo t=nT, con n=0,1,2, …, 2) La frecuencia de muestreo afecta la respuesta en frecuencia del filtro discreto invariante al impulso. 3) Como en el caso de los sistemas de datos muestreados, el espectro del filtro invariante al impulso que corresponde a H(z) debe ser el mismo a aquel del filtro
MÉTODO DE LA TRANSFORMADA Z BILINEAL Este método es el más ampliamente utilizado en la determinación de los coeficientes de los filtros IIR . En este método, la operación básica es que a partir de la función de transferencia H(s) de un filtro analógico se pasa a un filtro digital equivalente simplemente al reemplazar a s de la función de transferencia como sigue: z 1 2 s k , k 1 o z 1 T La expresión anterior mapea una función de transferencia analógica, H(s) , en el plano-s en una función de transferencia discreta, H(z) , en el plano-z . Im
Im (=jw’)
Re
Re 0
0
plano-s
plano-z
MÉTODO DE LA TRANSFORMADA Z BILINEAL Como se observa en la gráfica anterior el eje jw en el plano-s es mapeado en el círculo unitario, el lado izquierdo en el plano-s se mapea dentro del círculo unitario, y el lado derecho del plano-s se encuentra mapeado fuera del círculo unitario del plano-z . Así, si se tiene un filtro analógico, con polos sobre la mitad izquierda del , equivale a tener un filtro digital con polos dentro del círculo interno. plano-s El cambio de las expresiones anteriores no es sencillo, en lugar de ello se utiliza:
z e
j t
y s j '
Simplificando
T w' k tan , 2
k 1 o
2 T
RESUMEN DEL PROCEDIMIENTO PARA CALCULAR LOS COEFICIENTES DEL FILTRO DIGITAL POR EL MÉTODO BZT 1. Usar las especificaciones del filtro digital para determinar una función de transferencia adecuada, H(s) . 2. Determinar la frecuencia de corte (o frecuencia de corte pasabanda) del filtro digital y se llama wp. 3. Obtener una frecuencia de corte del filtro analógico equivalente (wp’) usando la relación de la diapositiva anterior. z e j t
y s j '
Simplificando
T , 2
w' k tan
k 1 o
2 T
4. Desnormalizar el filtro analógico por el escalamiento en frecuencia H(s). Esto se alcanza al reemplazar s con s/wp’ 5. Aplicar la transformación bilineal para obtener la función de transferencia del filtro digital deseada H(z) pero reemplazando s por (z-1)/(z+1)
EJEMPLO Determinar, usando el método BZT, la función de transferencia y la ecuación de diferencias para el filtro digital del filtro RC analógico. Considerar una frecuencia de muestreo de 150Hz y una frecuencias de corte de 30Hz. La función de transferencia normalizada del filtro RC es: H ( s )
1
s 1 f recuencia crítica p
2 x30
f recuencia ' p
por
analógica
tan( pT / 2),
tan( / 5) 0.7265
tan to
H ' ( s ) H ( s ) s
0.7265
1 s / 0.7265 1
'
H ( z ) H ( s ) la
' p
T 1 / 150 Hz ,
ecuación
s ( z 1) /( z 1)
de
0.7265 s 0.7265
0.7265(1 z ) (1 0.7265) z 0.7265 1
diferencia s
0.4208(1 z 1 )
1 0.1584 z 1
EJEMPLO DIAGRAMAS DEL FILTRO ANALÓGICO Y DEL FILTRO DIGITAL
0.4208 x(n)
R
z 1
x(t)
y(t)
-1
y(n)
z 1
C
0.1584
EJEMPLO H ( s)
1 s 2 s 1 2
f c 150 Hz @ 3dB f s 1.28kHz
,
frecuencia crítica p 2 x150
frecuencia analógica p tan( pT / 2), '
T 1 / 1280 Hz , p' 0.3857
por tan to H ' ( s) H ( s) s s / ' p
H ( z ) H ( s)
1
' 2
p
( s / p' ) 2 2 s / p' 1 s 2 2 s p' p'
'
0.0878 z 2 0.1756 z 0.0878
z 1.0048 z 0.3561 la ecuación de diferencia s s ( z 1) /( z 1)
2
2
0.1488 s 2 0.5455 s 0.1488
0.0878(1 2 z 1 z 2 )
1 1.0048 z 1 0.3561 z 2
y(n) 1.0048 y (n 1) 0.3561 y (n 2) 0.0878[ x(n) 2 x(n 1) x(n 2)]
FILTROS ANALÓGICOS PASABAJAS BUTTERWORTH Este tipo de filtros se definen por la propiedad de que la respuesta en magnitud es máxima en la región de la pasabanda. La función de la magnitud para un filtro Butterworth es de la forma: 2
H ( j )
1
2 1 p
2 N
El procesamiento de señal discreto en tiempo está referido con la transformación de una señal de entrada a una señal de salida que ha sido modificada de acuerdo a alguna especificación preescrita. El diseño de filtros digitales concierne a procedimientos para determinar los coeficientes de la función de transferencia que satisfacen las especificaciones en el dominio de la frecuencia. •El diseño de fórmulas para la generación de polos y ceros pasa bajas de filtros
analógicos Butterworth, Chebyshev, y elípticos. •Fórmulas de transformación de banda de frecuencia para la conversión de filtros
pasabajos, pasaaltos, pasabanda y rechaza banda. •La transformación linea que mapea polo en el plano-s a polos en el plano-z.
FILTROS BUTTERWORTH La gráfica de la función anterior es monotonicamente decreciente, en donde la respuesta máxima es cuando w=0. La respuesta en magnitud se aproxima a la de un filtro pasabajas ideal cuando se incrementa el valor de N. La respuesta de un filtro Butterwoth se considera máxima en la región de pasabanda.
FILTROS BUTTERWORTH omegac=500; omega=0:2000; N1=2; N2=3; N3=4; h1=(1./((1+((omega/omegac).^(2*N1))))); h2=(1./((1+((omega/omegac).^(2*N2))))); h3=(1./((1+((omega/omegac).^(2*N3))))); plot(omega,h1,omega,h2,omega,h3)
FILTROS BUTTERWORTH
FILTROS BUTTERWORTH N s log p log
Tomando las expresiones anteriores, se tiene:
0.1 A p
0.1 A s
10 De donde se puede obtener:
10
1
0.5
10 1 A 0.1 A 10 1
Donde A p es la máxima atenuación pasabanda en dB. Para simplificar la expresión, se utilizan los parámetros A y K 0 .
1
0.5
0.1 A s
p
k
p s
0.5
FILTROS BUTTERWORTH El orden de la ecuación para el filtro analógico pasa bajas Butterworth está dado por
N
log A 1 log K 0
1 2 N 0 como s j
De la ecuación del filtro Butterworth, los polos en el plano-s normalizado son encontrados estableciendo el denominador igual a cero. Para normalizar el resultado, considerar p 1 y 1 , entonces.
s
2 N
en
1 0
notación polar s 1
(1) N s 2 N e j ( 2 k 1) 1,
k 1,2,...., N
sk k j k e j ( 2 k N 1) / 2 N je j ( 2 k 1) / 2 N Finalmente, los
polos
normalizad os
analógi cos
2k 1 2k 1 j cos 2 N 2 N (2k N 1) (2k N 1) sk ' cos j p ' sin 2 N 2 N 1,2,.......,( N 1) / 2, para n impar k N / 2 para n par 1 2 sk sin
FILTROS CHEBYSHEV Las características de los filtros Chebyshev proveen una forma alternativa de obtener una función de transferencia analógica adecuada, H(s). Existen 2 tipos de filtros Chebyshev: 1. Tipo I, con igual ondulación en la zona de transición, constante en la banda de rechazo 2. Tipo II, con igual ondulación en la banda de rechazo, constante en la banda de transición. K
2
H ( ' )
1 2C N 2 ( ' / p' )
donde C N 2 ( ' / p ' ) es
el polinomio Chebyshev
oscilación pasabanda 10 log 10 (1 2 ) 20 log 10 (1 p ) atenuación del filtro atenuación 20 log 10 ( s ) N
cosh1 ( / ) cosh1 ( ' / ' )
FILTROS CHEBYSHEV Los polos del filtro Chebyshev están dados por: sk p ' [sinh( ) cos( k ) j cosh( ) sin( k )] donde (2k N 1) 1 1 sinh ; , k N 2 N 1
k 1,2,......, N
TIPOS DE ESTRCUTURAS DE DISEÑO DEL FILTRO IIR x(n)
w(n)
+
a0
+
y(n)
x(n)
w(n)
+
a0
z-1
z-1 +
a1
-b1
-b1
+
a1
z-1
z-1
-b2
+
-b2
a2
Forma directa
a2
Segundo orden canonico w(n)
x(n)
a0
y(n)
+
z-1 z-1
z-1 -b1
a1 a2
forma directa de segundo orden
z-1 -b2
y(n-1) y(n-2)
y(n)
DISEÑO D E FIL TRO S IIR El diseño de un filtro pasabaja digital IIR tipo butterworth de orden 3 mediante MATLAB es sencillo y se realiza mediante la siguiente forma: 50
0
-50
»[b ,a] =b u tt er (3,0.2); »[H ,w ] =f re q z(b ,a,512); »m ag =20*lo g 10(ab s (H)); »p lo t(w ,m ag ) »p h i= an g le (H); »p h i=(180/p i)*p h i; »p lo t(w ,p h i)
-100
-150
-200
0
200 150 100 50 0 -50 -100 -150
0.5
1
1.5
2
2.5
3
3.5
DISEÑO DE FILTROS DIGITALES Para una frecuencia de muestreo de 1KHz., diseñar un filtro pasa baja con menos de 3dB de rizado en la banda de paso, definida para 0-40Hz, y como mínimo de 60dB de atenuación en la banda eliminada, definida para 150Hz. Frecuencia de Nyquist es de 500Hz. Obtener la respuesta en frecuencia. » Wp = 40/500; Ws = 150/500; » Rp = 3; Rs = 60; » [n,Wn] = cheb1ord(Wp,Ws,Rp,Rs); » [b,a] = cheby1(n,Rp,Wn); » freqz(b,a,512,1000); » title('n=4 Chebyshev Type I Lowpass Filter');
» Wp = 40/500; Ws = 150/500; » [n,Wn] = buttord(Wp,Ws,3,60); » [b,a] = butter(n,Wn); » freqz(b,a,512,1000); title('n=5 Butterworth Lowpass Filter'); ) B d ( 200 e s n o 0 p s e R e-200 d u t i n g-400 a 0 M
n=5 Butterworth Lowpass Filter ) B d (
50
100
150
200 250 300 Frequency (Hertz)
350
400
450
500
0
) s e e r -200 g e d ( e s -400 a h P
-600
n=4 Chebyshev Type I Lowpass Filter 0
e s n o -100 p s e R e d -200 u t i n g a M-300
0
50
100
150
200 250 300 Frequency (Hertz)
350
400
450
500
0
50
100
150
200
350
400
450
500
0 ) s -100 e e r g e d ( -200 e s a h -300 P
0
50
100
150
200 250 300 Frequen (Hertz)
350
400
450
500
-400
250
300
RESULTADOS GRÁFICOS grá fica de b
grá fica de w vs H
0.4
1.4
0.35
1.2 0.3
1
0.25 0.2
0.8 0.15
0.6
0.1 0.05
0.4 0
0.2
-0.05 -0.1
0
10
20
30
40
50
60
0
0
0.1
0.2
0.3
0.4
0.5
0.6
» b1=b.*hamming(51)'; » plot(b1) » [H1,w1]=freqz(b1,1,512,2); » plot (w1,abs(H1)), grid ,title ('gráfica de w1 vs H1'); 0.4
grá fica de w1 vs H1 1.4
0.35 0.3 0.25
1.2
1
0.2
0.8 0.15 0.1
0.6
0.05
0.4 0 -0.05
0.2
0.7
0.8
0.9
1