Ejemplos de dise˜no de filtros IIR por transformación bilineal

Anuncio
Ejemplos de diseño de filtros IIR por transformación bilineal
Procesamiento de señales I- FIUBA
1 de mayo de 2016
1.
Diseño de un pasabajos
Diseñe un filtro pasabajos IIR discreto tal que su respuesta H(z) satisfaga:
|H(ejω )| ≤ δs = 0,01
jω
1 ≥ |H(e )| ≥ δp = 0,95
1.1.
si |ω| ≥ ωs = 0,4π
si |ω| ≤ ωp = 0,2π
(1)
(2)
Diseño Tchebycheff tipo I
Transformamos el filtro a una especificación en tiempo continuo, aplicando la transformación:
2
Ω=
tan(ω/2)).
Td
Dado que Td no afecta, seleccionamos Td = 2, y esto implica que Ω = tan(ω/2). Entonces las
especificaciones se trasladan al filtro continuo como:
Ωs = 0,2313π
(3)
Ωp = 0,1034π.
(4)
El filtro Tchebycheff tipo I tiene respuesta:
|Hc (jΩ)|2 =
donde
1
1 + 2 TN2
Ω
Ωc
,


cos (N arc cos(x)) si |x| ≤ 1
TN (x) = cosh (N arcosh(x)) si x > 1


(−1)N cosh (N arcosh(x)) si x < −1
(5)
(6)
es el polinomio de Tchebycheff de orden N . Tenemos que:
Cuando Ω = Ωc tenemos, TN2 (Ω/Ωc )2 y entonces:
|Hc (jΩc )|2 =
1
.
1 + 2
(7)
Ademas, si Ω > Ω el filtro es monótonamente decreciente. Por lo tanto se selecciona:
Ωc = Ωp ,
1
(8)
y se busca tal que:
|Hc (jΩc )|2 =
es decir:
s
=
1
= δp2 ,
1 + 2
1
− 1.
δp2
(9)
(10)
Para este ejercicio obtenemos:
= 0,3287.
(11)
Para seleccionar el N más pequeño, utilizando que la respuesta es decreciente cuando
Ω > Ωc debemos resolver:
1
|Hc (jΩs )|2 =
1+
obteniendo:
2 TN2
Ωs
Ωp
= δs2 ,
p
(δs )−2 − −2
Ωs
arcosh Ω
p
(12)
arcosh
N≥
(13)
En este caso obtenemos, N > 4,4013 y elegimos entonces N = 5.
Los polos 2N de |Hc (s)|2 se encuentran en una elipse cuyo eje mayor está en la dirección
del eje imaginario. Los radios son:
1
1
Ωc 1/N
Eje menor: a = Ωc sinh
arsinh
=
(α
− α−1/N ),
(14)
N
ε
2
1
1
Ωc 1/N
Eje mayor: b = Ωc cosh
arsinh
=
(α
+ α−1/N ),
(15)
N
ε
2
√
con α = −1 + 1 + −2 . Los polos tienen la misma fase que en el filtro Butterworth del mismo
orden:
sm = ±a sin(θm ) + jb cos(θm ),
(16)
donde
π 2m − 1
m = 1, . . . , N.
2 N
Los polos del filtro serán aquellos con parte real negativa. El sistema continuo tiene respuesta:
θm =
Hc (s) =
ΩN
c
2N −1 N
Y
m=1
1
,
s − pm
(17)
donde pm son los polos de (16) con parte real negativa. Para obtener el filtro en tiempo
discreto, utilizamos la transformación (Td = 2):
s=
1 − z −1
.
1 + z −1
2
(18)
Veamos la forma de la respuesta obtenida por medio de esta transformación. Para mayor
generalidad, definimos:
ΩN
K , Nc−1 .
2
De ese modo la respuesta del filtro en tiempo continuo es:
N
Y
Hc (s) =
m=1
K
,
s − pm
(19)
y se ve que el análisis será válido para cualquier filtro con sólo polos. Reemplazando s por z
tenemos:
H(z) =
=
N
Y
K
1−z −1
m=1 1+z −1
N
Y
− pm
,
(20)
K(1 + z −1 )
,
−1 1+pk
(1
−
p
)
1
−
z
m=1
k
1−pk
= QN
K
m=1 (1 − pk )
(z + 1)N
.
1+pk
z
−
m=1
1−pk
QN
(21)
(22)
La expresión (21) es la forma canónica, mientras que la última expresión es más comoda para
ser implementada en Matlab. Se observa que los polos, como era de esperar, se trasladan a:
zk =
1 + pk
,
1 − pk
k = 1, . . . , N,
(23)
y aparece un cero de orden N en z = −1. Con esto concluye el diseño de filtro. Dichos cálculos
pueden verificarse y obtenerse con el siguiente script:
%% Obtener un f i l t r o p a s a b a j o s IIR d i s c r e t o T c h e b y c h e f f t i p o I t a l que :
deltas = 0.01;
d e l t a p = 1 −0.05;
ws = pi ∗ 0 . 4 ; % banda de c o r t e
wp = pi ∗ 0 . 2 ; % banda de paso
w = linspace ( 0 , pi , 3 0 0 ) ;
%% C a l c u l o en forma manual
% tomamos Td = 2 ; transformamos :
Ws = tan ( ws / 2 )
Wp = tan (wp/ 2 )
% parametros
e p s i l o n = sqrt ( 1 / d e l t a p ˆ2 − 1 ) ;
N = c e i l ( acosh ( sqrt ( ( d e l t a s ∗ e p s i l o n )ˆ( −2) −d e l t a s ˆ( −2))) / acosh (Ws/Wp) )
% e j e s de l a e l i p s e donde e s t a n l o s p o l o s
a1 = sinh ( asinh ( 1 / e p s i l o n ) /N) ∗Wp;
b1 = cosh ( asinh ( 1 / e p s i l o n ) /N) ∗Wp;
% polos del sistema :
p o l s = − a1 ∗ sin ( pi ∗ ( 2 ∗ ( 1 :N) −1)/(2∗N ) ) . . .
3
+ 1 i ∗ b1 ∗ cos ( pi ∗ ( 2 ∗ ( 1 :N) −1)/(2∗N ) ) ;
K = WpˆN/ ( e p s i l o n ∗ 2 ˆ (N− 1 ) ) ;
% sistema discreto
p o l z = ( 1 + p o l s ) . / (1− p o l s ) ; % t r a n s f o r m a c i o n de l o s p o l o s
az = poly(−eye (N) ) / r e a l ( prod(1− p o l s ) ) ∗K; % numerador ; o j o e l r e a l ( )
bz = r e a l ( poly ( diag ( p o l z ) ) ) ; % p o l i n o m i o d e l denominador
Hz = f r e q z ( az , bz , w) % r e s p u e s t a en f r e c u e n c i a
plot (w/ pi , abs ( Hz ) , ’ l i n e w i d t h ’ , 2 ) % g r a f i c o d e l modulo
Asimismo, también puede utilizarse el Matlab para obtener ya sea el filtro en tiempo
continuo o el discreto:
% en tiempo c o n t i n u o
[ N, omegac ] = cheb1ord (Wp, Ws, −20∗log10 ( d e l t a p ) , −20∗log10 ( d e l t a s ) , ’ s ’ )
[ b , a ] = cheby1 (N, −20∗ log10 ( d e l t a p ) , omegac , ’ s ’ )
% en tiempo d i s c r e t o
[ N, omegac ] = cheb1ord (wp/ pi , ws/ pi , −20∗log10 ( d e l t a p ) , −20∗log10 ( d e l t a s ) , ’ s ’ )
[ b , a ] = cheby1 (N, −20∗ log10 ( d e l t a p ) , omegac )
El filtro diseñado puede verse en la Figura 1.
1,0
|H(ejω )|
0,8
0,6
0,4
0,2
0,0
0
0,2
0,4
0,6
0,8
1
ω (×π)
Figura 1: Respuesta en módulo del filtro digital diseñado.
2.
Diseño de un pasa altos
Diseñe un filtro pasa altos IIR discreto tal que su respuesta H(z) satisfaga:
|H(ejω )| ≤ δs = 0,01
1 ≥ |H(ejω )| ≥ δp = 0,99
4
si |ω| ≤ ωs = 0,3π,
si |ω| ≥ ωp = 0,5π.
(24)
(25)
2.1.
Diseño por Butterworth
Transformamos el filtro a una especificación en tiempo continuo, aplicando la transformación:
2
Ω=
tan(ω/2)).
Td
Dado que Td no afecta, seleccionamos Td = 2, y esto implica que Ω = tan(ω/2). Entonces las
especificaciones se trasladan al filtro continuo como:
Ω̃s = 0,5774π,
(26)
Ω̃p = π.
(27)
Se aplica la transformación que convierte el filtro pasa altos en un filtro pasa bajos, a saber:
1
.
(28)
HHP (s̃) = HLP
s̃
donde HLP (s) es el filtro pasabajos. Esto implica que el eje imaginario j Ω̃ del pasa altos se
transforma en j/Ω del pasa bajos. Por lo tanto debemos diseñar el pasabajos para que la
banda de rechazo sea:
Ω ≥ Ωs = 1/Ω̃s = 1,7321,
(29)
y la de paso:
Ω ≤ Ωp = 1/Ω̃p = 1.
(30)
Diseñamos el filtro Butterworth. La respuesta en módulo cuadrado es:
1
|HLP (jΩ)|2 =
1+
Ω
Ωc
2N .
(31)
Por la monotonı́a del filtro debemos elegir N, Ωc tal que:
1
1+
1+
Ωp
Ωc
1
Ωs
Ωc
2
2N ≥ δp ,
(32)
2
2N ≤ δs .
(33)
Buscamos la igualdad y despejamos N :
1
2 −1
δs
1
2 −1
δp
!
log
1
N=
2 log Ωs
Ωp
≈ 10,4091.
(34)
Elegimos N = 11 y eso nos da un rango para Ωc :
Ωp
1
δp2
Ωs
1 ≤ Ωc ≤ 1 .
2N
2N
1
−1
−1
δ2
s
5
(35)
3.
Diseño de un pasabanda
En este ejemplo veremos cómo diseñar un pasabanda en tiempo discreto. Los pasos son
los siguientes:
1. Se parte de una especificación de un pasabanda en tiempo discreto.
2. Se convierte dicha especificación a la de un pasabanda en tiempo continuo mediante la
transformación bilineal.
3. Se convierte la especificación del pasabanda en tiempo continuo a la de un filtro pasabajos en tiempo continuo.
4. Se diseña el pasabajos como en el ejemplo anterior
5. Se deshacen las transformaciones para llegar al pasabanda en tiempo discreto.
Antes de proceder con el ejemplo, repasaremos la transformación empleada para convertir entre un pasabanda y un pasabajos en tiempo continuo. Supongamos que HLP (s) es la
transferencia de un pasabajos con banda de paso Ωp = 1 y frecuencia de corte Ωs > 1 tal que:
δp ≤ |HLP (jΩ)| ≤ 1
|HLP (jΩ)| ≤ δs
si |Ω| ≤ 1
(36)
si |Ω| ≥ Ωs .
(37)
La representación de dicho pasabajos puede verse en la Figura 3. La transferencia de un filtro
1
δp
|HLP (jΩ)|
0.8
0.6
0.4
0.2
δs
0
−Ωs
−Ωp
0
Ωp
Ωs
Ω
Figura 2: Especificaciones para un filtro pasabajos. Ωp = 1.
pasabanda puede obtenerse mediante la siguiente transformación:
!
s̃2 + Ω̃20
HBP (s̃) = HLP
,
Bs̃
(38)
es decir, a la variables s̃ del pasabanda la convertimos en s del pasabajos, según:
s=
s̃2 + Ω̃20
.
Bs̃
6
(39)
B es el ancho de banda del pasabanda, y Ω̃0 permite centrar la banda. Tomando s̃ = j Ω̃, se
observa que el eje imaginario en el dominio del pasabanda se transforma en el eje imaginario
del pasabajos según:
Ω̃2 − Ω̃20
Ω=
.
(40)
B Ω̃
Esto implica que la frecuencia Ω̃ = Ω̃0 se transforma a Ω = 0, es decir, a la frecuencia media
del pasabajos. Supongamos que, dada una frecuencia Ω queremos determinar sus preimágenes,
es decir, las frecuencias en el dominio pasabanda que se corresponden con Ω. Utilizando (40)
vemos que:
s
BΩ
BΩ 2
Ω̃ =
±
+ Ω̃20 ,
(41)
2
2
es decir que cada Ω tiene dos preimágenes en Ω̃, una de ellas positiva y la otra negativa. Es
de interés saber qué puntos se transforman en Ωs y en Ωp pues éstos son los puntos que nos
interesan para diseñar el pasabanda. Para ello, vemos lo siguiente:
De (41), los bordes de la banda de paso del pasabanda son (Ω̃ > 0):
s B 2
B
Ω̃p2 =
+
+ Ω̃20 → se traslada a Ω = 1
2
2
s B 2
B
+ Ω̃20 → se traslada a Ω = −1.
Ω̃p1 = − +
2
2
(42)
(43)
(44)
De aqui vemos que en ancho de banda del filtro es:
B = Ω̃p2 − Ω̃p1 .
De (41), los bordes de las bandas de rechazo del pasabanda son (Ω̃ > 0):
s
BΩs
BΩs 2
Ω̃s2 =
+
+ Ω̃20 → se traslada a Ω = Ωs
2
2
s
BΩs
BΩs 2
Ω̃s1 = −
+
+ Ω̃20 → se traslada a Ω = −Ωs .
2
2
(45)
(46)
(47)
(48)
De aqui vemos que en ancho de banda del filtro es:
Ω̃s2 − Ω̃s1 = BΩs ,
(49)
Ω̃s2 − Ω̃s1
.
Ω̃p2 − Ω̃p1
(50)
y entonces:
Ωs =
7
De (40) vemos que si dos frecuencias Ω̃1 , Ω̃2 se transforman al la misma frecuencia con
signo opuesto, es decir, si:
Ω̃2 − Ω̃20
Ω̃21 − Ω̃20
=− 2
,
B Ω̃1
B Ω̃2
entonces deben satisfacer:
q
Ω̃1 Ω̃2 = Ω̃0 .
(51)
Por lo tanto se tiene que:
Ω̃p2 Ω̃p1 = Ω̃s2 Ω̃s1 = Ω̃20 .
(52)
La ecuación (52) implica que Ω̃20 es el punto medio de la banda de paso y de las frecuencias
de corte, pero respecto de la media geométrica en vez del promedio o media aritmética usual.
En la Figura 3 podemos ver una representación de cómo se transforman las frecuencias.
En general ajustando los dos parámetros no se pueden satisfacer todas las condiciones en
forma estricta, sino que alguna será mas estricta de lo necesario. Si el filtro es perfectamente
simétrico en términos de la media geométrica con las siguientes ecuaciones pueden despejarse
y satisfacerse todas las condiciones en forma exacta:
B = Ω̃p2 − Ω̃p1 ,
Ω̃p2 Ω̃p1 = Ω̃s2 Ω̃s1 =
(53)
Ω̃20 ,
(54)
Ω̃s2 − Ω̃s1
.
Ω̃p2 − Ω̃p1
Ωs =
(55)
|HLP (jΩ)|
−Ωs
−Ωp
Ωp
−Ωs
Ω
Ω̃p1Ω̃0 Ω̃p2
Ω̃
Figura 3: Gráfico de cómo se transforman las frecuencias en el dominio del pasabanda para
obtener el pasabanda. La lı́nea punteada es el resultado de la operación HLP (j Ω̃).
Los pasos para el diseño son entonces los siguientes (sacamos la tilde para simplificar la
notación):
1. Supongamos una especificación del pasabanda HPB (s) del tipo:
δp ≤ |HPB (jΩ) | ≤ 1
|HPB (jΩ) | ≤ δs
Se interpreta que la respuesta es par.
8
si Ωp1 ≤ Ω ≤ Ωp2 ,
(56)
si 0 ≤ Ω ≤ Ωs1 o Ω ≥ Ωs2 ,
(57)
2. Se calculan los parámetros del filtro pasabajos a diseñar. Los requisitos de amplitud del
pasabajos son los mismo, dado que la transformación sólo traslada frecuencias.
3. Si se quiere cumplir estrictamente los requisitos en la banda de paso, se elijen los siguientes parámetros para la transformación:
B = Ωp2 − Ωp1 ,
Ωp2 Ωp1 = Ω20 .
De esa forma al diseñar un pasabajos y aplicar la transformación, los bordes de la banda
de paso del pasabajos se transforman a los bordes de la banda de paso del pasabanda.
4. Se selecciona el valor del borde de la banda de rechazo del pasabajos Ωs para cumplir
con las especificaciones en la banda de rechazo del pasabanda.
5. Para finalizar se diseña un pasabajos con banda de paso |Ω| < 1 y restricción δp , y banda
de rechazo |Ω| ≥ Ωs y restricción δs . A este pasabajos se le aplica la transformación con
los B y Ω0 diseñados.
3.1.
Diseño por Butterworth
Diseñe un pasabanda discreto IIR de modo que:
1 ≥ |H ejω | ≥ δp si ωp1 ≤ Ω ≤ ωp2 ,
|H ejω | ≤ δs si 0 ≤ ω ≤ ωs1 o ωs2 ≤ ω ≤ π,
(58)
(59)
donde:
δp = 0,9
δs = 0,01,
(60)
ωp1 = 0,5π
ωp2 = 0,7π,
(61)
ωs1 = 0,4π
ωs1 = 0,8π.
(62)
Comenzamos aplicando la transformación bilineal para obtener la especificación en el
continuo:
2
Ω=
tan(ω/2)),
Td
con Td = 2 dado que su valor no afecta el resultado final. Con esto obtenemos las especificaciones de frecuencias continuas:
Ωp 1 = 1
Ωp2 = 1,9626,
(63)
Ωs1 = 0,7265
Ωs2 = 3,0777.
(64)
Vemos que el filtro no es simétrico (las bandas de transición no son iguales) por la transformación no lineal que introduce la tangente. Buscamos las especificaciones del pasabajos a
diseñar para cumplir en la banda de paso la especificaciones en forma estricta:
B = Ωp2 − Ωp1 = 0,9626.
p
Ω0 = Ωp2 Ωp1 = 1,4009.
9
Una vez hecho esto, sabemos que las frecuencias del filtro pasabanda con la misma amplitud
serán aquellos que cumplan:
Ω20 = Ω1 Ω2 .
Como la transformación es monótona, podemos elegir la frecuencia de la banda que luego de
la transformación sea más pequeña, es decir:
2
Ω − Ω20 = 2,0515.
Ωs =
mı́n
BΩ Ω∈{Ωs1 ,Ωs2 } En este caso corresponde a la frecuencia inferior Ωs1 . De ese modo, como la otra frecuencia
se transforma a un valor mayor, cumplirá más holgadamente la especificación.
Diseñamos el filtro Butterworth en la forma usual. La respuesta en módulo cuadrado es:
1
|HLP (jΩ)|2 =
1+
Ω
Ωc
2N .
(65)
Debemos elegir N, Ωc tal que:
1
1+
1+
1
Ωc
1
Ωs
Ωc
2
2N ≥ δp .
(66)
2
2N ≤ δs .
(67)
Buscamos la igualdad y despejamos N :
log
1
N=
2
1
2 −1
δs
1
2 −1
δp
!
log(Ωs )
≈ 7,4179.
(68)
Elegimos N = 8 y eso nos da un rango para Ωc :
1
1
δp2
Ωs
1 ≤ Ωc ≤ 1 .
2N
2N
1
−1
−1
δ2
(69)
s
En el valor inferior cumplimos exactamente en la banda de paso y en el superior, en la banda
de rechazo. Elegimos el inferior, para cumplir todo el diseño en la banda de paso:
Ωc = 1
1
δp2
−1
1
2N
= 1,0949.
(70)
Ωc
s − pk
(71)
La respuesta en frecuencia del filtro pasabajos es:
HLP (s) =
N
Y
k=1
10
2k+N −1
donde pk = Ωc ejπ 2N , k = 0, . . . , N − 1. Incorporando la transformación obtenemos el
filtro pasabanda en tiempo continuo:
N
Y
HBP (s) =
k=1
s2
Ωc sB
.
− pk Bs + ω02
(72)
La respuesta en módulo del filtro pasabanda diseñado en tiempo continuo puede verse en
la Figura 4. Se ve que satisface exactamente en la banda de paso, y en la banda inferior,
mientras que en la banda de rechazo superior, por limitaciones de la transformación, cumple
holgadamento los requisitos de diseño. Finalmente aplicamos la transformación bilineal para
obtener el filtro en tiempo discreto (Td = 2):
s=
1 − z −1
.
1 + z −1
(73)
Obtenemos:
H(z) =
N
Y
k=1
(1 +
Ω20
Ωc B(z 2 − 1)
− Bpk )z 2 + 2(Ω20 − 1)z + (1 + Ω20 + Bpk )
En la Figura 5 puede verse el filtro en tiempo discreto diseñado.
1,0
|HBP (jΩ)|
0,8
0,6
0,4
0,2
0,0
0
0,5
1
1,5
2
2,5
3
3,5
Ω
Figura 4: Respuesta en módulo del filtro pasabanda diseñado en tiempo continuo.
11
(74)
1,0
|H( ejω )|
0,8
0,6
0,4
0,2
0,0
0
0,2
0,4
0,6
0,8
1
ω (×π)
Figura 5: Respuesta en módulo del filtro pasabanda diseñado en tiempo discreto.
12
Descargar