Está en la página 1de 78

1

5 Curso-Tratamiento Digital de Seal


Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros Digitales
Diseo de Filtros Digitales
(Parte 1)
(Parte 1)
Terminologa y Clasificacin Terminologa y Clasificacin
Filtros IIR Filtros IIR
x x Diseo Filtros Analgicos (Butterworth, Chebyshev I Diseo Filtros Analgicos (Butterworth, Chebyshev I
y Chebyshev II). y Chebyshev II).
x x Mtodos de Transformacin del plano Mtodos de Transformacin del plano s s al plano al plano z. z.
x x Diseo de Filtros IIR con MATLAB. Diseo de Filtros IIR con MATLAB.
2
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Terminologa y Clasificacin
Terminologa y Clasificacin
El trmino filtro digital lo entenderemos como cualquier pro-
cesamiento realizado en una seal de entrada digital.
Un filtro digital es la implementacin en hardware o software
de una ecuacin diferencia.
Ventajas de los filtros digitales
x Alta inmunidad al ruido
x Alta precisin (limitada por los errores de redondeo en la aritmtica
empleada
x Fcil modificacin de las caractersticas del filtro
x Muy bajo coste (y bajando)
Por estas razones, los filtros digitales estn reemplazando
rpidamente a los filtros analgicos.
3
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Terminologa y Clasificacin
Terminologa y Clasificacin
Clasificacin de los Filtros Digitales
x Filtros FIR (Finite Impulse Response)
3 Un filtro FIR de orden M se describe por la siguiente ecuacin diferencia
, lo que da lugar a la funcin de
transferencia .
3 La secuencia {B
K
} son los coeficientes del filtro.
3 No hay recursin, es decir, la salida depende slo de la entrada y no de
valores pasados de la salida.
3 La respuesta es por tanto una suma ponderada de valores pasados y
prresentes de la entrada. De ah que se denomine Media en Movimiento
(Moving Average)
3 La funcin de Transferencia tiene un denominador constante y slo tiene
ceros.
3 La respuesta es de duracin finita ya que si la entrada se mantiene en cero
durante M periodos consecutivos, la salida ser tambin cero.
[ ] [ ] [ ] [ ] y n B x n B x n B x n M
M
+ + +
0 1
1
( ) H z B B z B z
M
M
+ + +

0 1
1

4
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Terminologa y Clasificacin
Terminologa y Clasificacin
x Filtros IIR (Infinite Impulse Response)
Veremos dos variaciones de este tipo de filtros: AR y ARMA
Filtros AR (Autoregresivo)
3 La ecuacin diferencia que describe un filtro AR es
, lo que da lugar a una
funcin de transferencia
3 La funcin de transferencia contiene solo polos.
3 El filtro es recursivo ya que la salida depende no solo de la entrada actual
sino adems de valores pasados de la salida (Filtros con realimentacin).
3 El trmino autoregresivo tiene un sentido estadstico en que la salida y[n]
tiene una regresin hacia sus valores pasados.
3 La respuesta al impulso es normalmente de duracin infinita, de ah su
nombre.
[ ] [ ] [ ] [ ] [ ] y n A y n A y n A y n N x n
N
+ + + +
1 2
1 2
( ) H z
A z A z A z
N
N

+ + + +

1
1
1
1
2
2

5
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Terminologa y Clasificacin
Terminologa y Clasificacin
Filtros ARMA (Autoregresivo y Media en Movimiento)
3 Es el filtro ms general y es una combinacin de los filtros MA y AR
descritos anteriormente. La ecuacin diferencia que descibe un filtro
ARMA de orden N es
Y la funcin de transferencia
3 Un filtro de este tipo se denota por ARMA(N,M), es decir es Autoregresi-
vo de orden N y Media en Movimiento de orden M.
3 Su respuesta a impulso es tambin de duracin infinita y por tanto es un
filtro del tipo IIR.
[ ] [ ] [ ] [ ]
[ ] [ ] [ ]
y n A y n A y n A y n N
B x n B x n B x n M
N
M
+ + + +
+ + +
1 2
0 1
1 2
1

( ) H z
B B z B z
A z A z
M
M
N
N

+ + +
+ + +


0 1
1
1
1
1

6
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Terminologa y Clasificacin
Terminologa y Clasificacin
Ecuacin Diferencia Tipo de Filtro
[ ] [ ] y n B x n m
m
m

FIR(Finite Impulse Response),


No Recursivo,
Moving Average (MA) orden M,
Todo ceros
[ ] [ ] A y n k x n
k
k

IIR (Infinite Impulse Response),


Recursivo, Autoregresivo(AR) orden N,
Todo polos
[ ] [ ] A y n k B x n m
k
k
m
m


IIR Recursivo, ARMA(N,M),
Polos y Ceros
Clasificacin de los Filtros Digitales
7
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Terminologa y Clasificacin
Terminologa y Clasificacin
| H(s)|
f
f
c
0 dB
- 3 dB
| H(s)|
f
f
2
0 dB
- 3 dB
f
1
| H(s)|
f
f
2
0 dB
- 3 dB
f
1
| H(s)|
f
f
c
0 dB
- 3 dB
Filtro Pasobajo (LP) Filtro Parabanda (BS)
Filtro Pasabanda (BP) Filtro Pasoalto (HP)
8
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Proceso de Diseo de Filtros Digitales
Proceso de Diseo de Filtros Digitales
El proceso de diseo de un filtro digital requiere tres pasos
x Establecer las especificaciones del filtro para unas determinadas
prestaciones. Estas especificaciones son las mismas que las requeridas
por un filtro analgico : frecuencias de parabanda y pasabanda,
atenuaciones, ganancia dc, etc.
x Determinar la funcin de transferencia que cumpla las especificaciones.
x Realizar la funcin de transferencia en hardware o software.
IIR o FIR?
x Los filtros IIR producen en general distorsin de fase, es decir la fase
no es lineal con la frecuencia.
x Los filtros FIR son de fase lineal.
x El orden de un filtro IIR es mucho menor que el de un filtro FIR para
una misma aplicacin.
x Los filtros FIR son siempre estables.
9
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I
Filtros IIR-Mtodo I
Tcnicas de diseo de filtros IIR
x Mediante mtodos de diseo analgico, seguido de una transformacin
del plano s al plano z (Mtodo I).
x Disear un prototipo de filtro pasobajo digital y hacer las oportunas
transformaciones (Mtodo II)
Mtodo I
x Discutiremos este mtodo para el diseo de filtros pasobajo. Empeza-
remos discutiendo el proceso de diseo de filtros analgicos para luego
transformarlo al dominio discreto.
x El diseo analgico se realiza a partir de unas especificaciones como
las dadas en la figura.
3
1
es el rizado de pasabanda.
3
2
es el rizado de parabanda
3 f
p
es la frecuencia lmite de pasabanda.
3 f
s
es la frecuencia lmite de parabanda.
10
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I
Filtros IIR-Mtodo I
x Partimos de un prototipo de filtro pasobajo normalizado en el que usamos una
frecuencia normalizada. Para otro tipo de filtro se requerir la consiguiente
transformacin de frecuencia. Para ese filtro pasobajo normalizado la funcin
de Transferencia es
donde L
n
() es un polinomio de grado n.
( )
( )
H
L
n

2
2
1
1

+
f
f
s
f
p

2
1
1
1
| H(f )|
Pas abanda
Par abanda
Banda de
Transi ci n
11
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Butterworth
Filtros IIR-Mtodo I-Aprox. Butterworth
x El objetivo del diseo de un filtro es encontrar L
n
() que mejor cumple
las especificaciones. Para ello se utilizan algunas aproximaciones
(Butterworth, Chebyshev, etc).
x Etapas del diseo
xNormalizar la frecuencia de acuerdo a las especificaciones.
yDeterminar el orden del prototipo de filtro pasobajo.
zDeterminar la funcin de Transferencia normalizada.
{Desnormalizar a travs de las transformacines de frecuencia en y .
x Aproximacin de Butterworth
3 Consiste en hacer L
n
()=
n
. Esta aproximacin es tal que
3 Por tanto,
xNormalizamos las frecuencias por la frecuencia lmite de pasabanda f
p
, de
forma que
p
=1 y
s
=f
s
/f
p
.
( ) ( ) ( ) L L L
n n n
n
0 0 0 0 0 0
1

, , ,
( ) H
n


2
2 2
1
1

+
12
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Butterworth
Filtros IIR-Mtodo I-Aprox. Butterworth
yA partir de
1
(en =1) y
2
(en =
s
), podemos calcular los valores de
y n.
f
f
s
f
p

2
1
1
1
| H(f )|
Pas abanda
Par abanda
Banda de
Transi ci n
( )
( )
( )
( )

1
1
2
2
2 2 0 1
2
2
2 2
2 2
0 1
0 1
10 10
1
1
10 1 10 1
10 10
1
1
10 1
10 1
10 1
1
2
1
1
2

+
+

+
+

1
]
1
1

log log log


log log log
log
log
.
.
.
H
H
n
s
s
n
s
n
s
13
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Butterworth
Filtros IIR-Mtodo I-Aprox. Butterworth
x Ejemplo: Disear un filtro de Butterworth de pasobajo con las
siguientes especificaciones: una atenuacin de pasabanda que sea
menor que 1dB a f=0.6366 Hz, una atenuacin de parabanda que sea
mayor que 20dB para f=1.2732 Hz.
3 Frecuencia normalizada =f/f
p
=f/0.6366.
3 En =1
3 En =1.2732/0.6366=2
Tomamos como orden del filtro el entero ms cercano por arriba n=5.
y Filtro de Butterworth Normalizado : se normaliza con respecto a la
frecuencia
3
(|H(
3
)|
2
= ).

+
1 10
1
1
10 1 12589 1 0 2589
2
2 0 1
dB log . .
.

1
]
1
20 10
1
1 0 2589 2
10 1
0 2589
2
4 289
2
2
1
2
dB n
n
log
.
log
.
log
.
( )
( )
( )
H H
N n
N
n



2
3
2
3
2 2
1
1
1
1

+

+
14
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Butterworth
Filtros IIR-Mtodo I-Aprox. Butterworth
x Funcin de Transferencia Normalizada. Se trata de determinar H
N
(s) a
partir de |H
N
()|
2
.
3 Reemplazamos
N
2
por -s
2
.
3 Los polos los calculamos de
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
( )
n
s
N N
N N N N
j s
N N N N N N
s
H s H s H
H H H s H s H H H H H H
N
N
2
2
2
*
2
1
1
2 2
+



( ) ( )
( )
( ) ( )
[ ]
( )
[ ]
( )
( ) ( ) ( ) ( )
( ) ( )
( )
1 0 1 1 1
2 1 1 2 2
2 1
2
1 2 2
1
2 2 2
2
2
2 2
2 2
1
2
+

+

+ + + + +

+
s s p
j n p j k k n
p j
k
n
k N
p j j j
p
n n
n
k
n
k
n
k k k
k k k k k k k
k k k k
k k k
exp exp , , ,
exp , , ,
cos sin sin cos
sin cos







donde

15
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Butterworth
Filtros IIR-Mtodo I-Aprox. Butterworth
3 Estos resultados muestran que:
Los polos normalizados estn sobre un crculo de radio 1 en el plano s.
Los polos estn equiespaciados /n radianes con
k
=(2k-1)/2n, donde

k
se mide con respecto al eje positivo del eje j.
Los polos nunca estarn sobre el eje j (2k-1 nunca puede ser par).
Si n es impar, siempre hay un par de polos reales en s=1.

j
1 0. 5 - 1 - 0. 5 0
1
0. 5
0
- 0. 5
- 1
Pol os de But t erwort h : n=4

j
1 0. 5 - 1 - 0. 5 0
1
0. 5
0
- 0. 5
- 1
Pol os de But t erwort h : n=5
16
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Butterworth
Filtros IIR-Mtodo I-Aprox. Butterworth
x De los 2n polos de que consta H(s)H(-s) slo estamos interesados en
los polos de la parte izquierda del plano s, que son los que dan
estabilidad al filtro. De las figuras se puede observar que cada polo
tiene su conjugado, excepto en el caso de que n sea impar donde
tenemos un polo adicional en s=-1. Por tanto
x El polinomio Q
N
(s) viene en tablas para cada valor de n, por lo que
solo tenemos que determinar el valor de n, ir a las tablas para obtener
H
N
(s) y desnormalizar para determinar la H(s) de nuestro filtro.
( )( ) ( ) ( )
[ ]
( ) ( )
[ ]
( )
( )
( )
( )
( )
( )
[ ]
( )
[ ]
s p s p s j s j
s s
H s
Q s
Q s
s s s n impar
s s n par
k k k k k k
k
N
N
N
k
k
n
k
k
n
+ + +
+

+ + +
+ +

'

sin cos sin cos


sin
,
sin
sin
( )/
/

2
2
1
1 2
2
1
2
2 1
1
1 2 1
2 1



17
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Butterworth
Filtros IIR-Mtodo I-Aprox. Butterworth
{ Desnormalizacin : Si |H()|
2
=|H
N
(/
3
)|
2
, entonces H(s)=H
N
(s/
3
). Si
desnormalizamos H(s) a H
A
(s)=H(s/
p
), H
A
(s) cumple las especifica-
ciones dadas. Estos es equivalente a desnormalizar directamente H
N
(s)
a H
A
(s)=H
N
(s/
p

3
).
x Ejemplo: Calcular la funcin de Transferencia del filtro del ejemplo
anterior.
3 En el ejemplo tenamos n=5, f
p
=0.6366, f
s
=1.2732 y
2
=0.2589.
3 Calculamos
3
.
3 De las tablas se obtiene
3 H
A
(s)=H
N
(s/
p

3
)= H
N
(s/4.578)
( ) H s
s s s s s
N

+ + + + +
1
1 3 236 5 236 5 236 3 236
2 3 4 5
. . . .
( )
H


3
2
3
10
3
1
1 0 2589
1
2
1145
+

.
.
( ) ( )
( ) ( ) ( ) ( ) ( )
H s H s
s s s s s
s s s s s
A N

+ + + + +

+ + + + +

4 578
1
1 3 236 4 578 5 236 4 578 5 236 4 578 3 236 4 578 4 578
1
1 0 7068 0 2498 0 0546 0 0074 4 973 10
2 3 4 5
2 3 4 4 5
.
. . . . . . . . .
. . . . .
18
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Butterworth
Filtros IIR-Mtodo I-Aprox. Butterworth
x Filtro Pasoalto de Butterworth
3 Se hace la transformacin 1/, lo que da lugar a |H
HP
()|
2
=|H
LP
(1/)|
2
.
Tambin equivale a hacer 1-|H
LP
()|
2
( ) H s
s s s s s
A

+ + + + +
2010 84
2010 84 142126 502 31 109 79 14 88
2 3 4 5
.
. . . . .
0 0.5 1 1.5 2
0
0.2
0.4
0.6
0.8
1
1.2
magnitude vs frequency in Hertz
0 0.5 1 1.5 2
-200
-100
0
100
200
phase in degrees vs frequency in Hertz
0 0.5 1 1.5 2
-400
-300
-200
-100
0
unwrapped phase in degrees vs frequency in Hertz
( )
( )
( ) 1 1
1
1 1
1
1 1
1
2
2
2
2 2
2

+

+

+
H H
LP
n
n
n n LP



19
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Filtros IIR-Mtodo I-Aprox. Chebyshev I
x Aproximacin de Chebyshev I
donde T
n
() es el polinomio de Chebyshev de orden n.
( )
( ) ( )
H
L T
n n


2
2 2 2
1
1
1
1

+

+
Polinomios de Chebyshev
T
n
(x)=cosh(ncosh
-1
x)
Orden n T
n
(x)
0 1
1 x
2 2x
2
-1
3 4x
3
-3x
4 8x
4
-8x
2
+1
5 16x
5
-20x
3
+5x
6 32x
6
-48x
4
+18x
2
-1
7 64x
7
-112x
5
+56x
3
-7x
8 128x
8
-256x
6
+160x
4
-32x
2
+1
20
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Filtros IIR-Mtodo I-Aprox. Chebyshev I
x Proceso de diseo de los filtros de Chebyshev I: Partiremos del filtro
prototipo de pasobajo mediante la apropiada transformacin de
frecuencia. Tendremos las especificaciones para el filtro en forma de
las frecuencias lmites de pasabanda y parabanda as como sus
respectivas atenuaciones.
x En los filtros de Chebyshev I se especifica tambin para un
determinado rizado en la banda pasabanda (Figura).
x Con esas especificaciones calculamos n y .
x Determinamos la Funcin de Transferencia Normalizada en
3
.
x Desnormalizamos y obtenemos H
A
(s).
x Ejemplo: Disear el filtro de Chebyshev para las siguientes especifica-
ciones : A
p
1dB para 4, A
s
20dB para 8.
3 Normalizamos en
p
,
p
=1,
s
=
s
/
p
=2.
21
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Filtros IIR-Mtodo I-Aprox. Chebyshev I
x La magnitud del rizado en la pasabanda es
x La normalizacin de la funcin de transferencia se realiza en
p
=1.
x Procedemos de la misma forma que en el filtro de Butterworth
( ) ( )
( )
[ ]
( )
[ ]

+


+

+

A
A
n n
n n
n
p
A
s
s s
A
s
n
p
s
10
1
1
10 1 0 2589
10
1
1
10
1
1
10 1
3 6657
13169
2 7834 3
1
2
1
1
1 0949
2
2
0 1
2 2 1 2 2 1
1 0 1 2
1
2 2 1
3
3
1
1
1
1
2
log .
log
cosh cosh
log
cosh cosh
cosh /
cosh
.
.
.
cosh cosh
cosh cosh .
.
.




1
1
1
01087
2

.
( ) ( ) ( )
( )
H s H s H
T s j
N N
n
s
j

+

2
2 2
1
1
22
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Filtros IIR-Mtodo I-Aprox. Chebyshev I
| H( )|

Chebyshev
Ti po I

p

s
1
1-
1
1+
2
( )
( )
[ ]
( )
[ ]
( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )
( ) ( )
Los polos de H s se obtienen de
n s j n s j j
Llamamos z j s j
nz n jn n n j n n j
n n
n n
N




1 0
0 1
1 2
2 2 1 1
1
+ t
+
+ t






cos cos cos cos
cos
cos cos cos cosh sin sinh
cos cosh ( )
sin sinh ( )
Ya que cosh(n)1 para todo n, la ecua-
cin (1) nos dice que
( )
( )
cos , , , n
k
n
k n
k




0
2 1
2
1 2 2
Para estos valores de
k
, sin(n)=1, por lo
que la ecuacin (2) queda
( ) ( ) sinh sinh n
n




1
1
1
1
23
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Filtros IIR-Mtodo I-Aprox. Chebyshev I
( ) ( )
( )
( )
( )
s j z
s j z j j j
k k k

+ +
cos
cos cos sin sinh cos cosh
Los polos estarn a la izquierda del plano s para garantizar la estabi-
lidad del filtro
( )
( )
( )
( ) p j k n
k k k
+ sin sinh cos cosh , , , 1 2
En el ejemplo anterior teniamos
2
=0.2589, n=3
( )
( )
( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( )
( )( )( )
( )
( )







+ +
+
+
+ + +


1
1
1 1
3
1
1
0 2589
2 1
2
2 1
6
1 6 6
2 2 2
3
5
6
5
6
1 2 3
2
0 476
1 2 3
0 476 0 476 0 2471 0 966
0 476 0 476 0 4942
0 476 0 476 0 2471 0 966
0 4942 0 4942 0 9492
n
k
k
n
k
N
k
s j j
s j
s j j
Q s s s s s s s s s s
sinh sinh .
, ,
sinh . sin cosh . cos . .
sinh . sin cosh . cos .
sinh . sin cosh . cos . .
. . .
.

24
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Filtros IIR-Mtodo I-Aprox. Chebyshev I
( )
( )
( )
( )
( ) ( )
H s
Q
s s s
s s s
H s H s
s s s
N
N
A N

+ + +

+ + +

+ + +
0
0 4942 0 4942 0 9492
0 4913
0 9883 12384 0 4913
4
31 4436
31 4436 19 8145 3 9534
2
3 2
2 3
. . .
.
. . .
.
. . .
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
magnitude vs frequency in Hertz
0 0.5 1 1.5 2
-200
-100
0
100
200
phase in degrees vs frequency in Hertz
0 0.5 1 1.5 2
-300
-200
-100
0
unwrapped phase in degrees vs frequency in Hertz
25
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Filtros IIR-Mtodo I-Aprox. Chebyshev I
x Ejemplo: Disear un filtro pasabanda de Chebyshev con las siguientes
caractersticas:
3 Bordes de las bandas : [
1

2

4
]=[0.89 1.019 2.221 6.155]
3 Mxima atenuacin en la pasabanda A
p
=2dB.
3 Mnima atenuacin en la parabanda A
s
=20dB.

x
=(
2

3
)
1/2
= (1.019 2.221)
1/2
=1.5045

4
=
x
2
/
1
=2.54. B
w
=
3
-
2
=1.202

Ap
=1,
As
=(
4
-
1
)/B
w
=1.3727
Con estas especificaciones para el prototipo de filtro pasobajo calcula-
mos y n.
( )

2
0 1
0 1 2
1
0 1
2
1
1
1
1 3754
1
10 1 10 1 0 5849
10 1
99
0 5849
3 871 4
1
2
1
2

1
]
1
1

_
,

1
]
1

.
.
.
.
.
cosh
cosh
cosh
.
cosh
.
A
A
s
p
p
s
n n
26
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Filtros IIR-Mtodo I-Aprox. Chebyshev I
De aqu obtenemos los polos del filtro aplicando las frmulas de los
polos vistas anteriormente.
( )
( )
( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )








+ +
+ +
+
+


1
1
1 1
4
1
1
0 5849
2 1
2
2 1
8
1 8 8
2
3
8
3
8
3
5
8
5
8
4
7
8
7
8
0 2707
1 2 3 4
0 2707 0 2707 0 1049 0 958
0 2707 0 2707 0 2532 0 3968
0 2707 0 2707 0 2532 0 3968
0 2707 0 2707 0 1049
n
k
k
n
k
k
s j j
s j j
s j j
s j
sinh sinh .
, , ,
sinh . sin cosh . cos . .
sinh . sin cosh . cos . .
sinh . sin cosh . cos . .
sinh . sin cosh . cos .
.

( )
( )( )( )( ) ( )( )
( )
( )
j
Q s s s s s s s s s s s s s
s s s s
Como n es par
K
Q
H s
s s s s
N
N
N
0 958
0 2098 0 9287 0 5064 0 2216
0 7162 1 2565 0 5167 0 2058
0
1
0 1634
0 1634
0 7162 1 2565 0 5167 0 2058
1 2 3 4
2 2
4 3 2
2
4 3 2
.
. . . .
. . . .
.
.
. . . .
+ + + +
+ + + +

+ + + +

=
+
27
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Filtros IIR-Mtodo I-Aprox. Chebyshev I
Ahora hay que hacer la transformacin para el filtro pasabanda
( )
s
s
sB
s
s
H s
s
s
s
s
s
s
s
s
s
s s s s s s s s
x
w
A

1
]
1
+
+

1
]
1
+
+

1
]
1
+
+

1
]
1
+

+ + + + + + + +
2 2 2
2
4
2
3
2
2
2
4
8 7 6 5 4 3 2
2 2635
1 202
0 1148
2 2635
1 202
0 7162
2 2635
1 202
1 2565
2 2635
1 202
0 5167
2 2635
1 202
0 2058
0 34
0 8604 10 87 6 75 39 39 15 27 55 69 9 99 26 25
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
0 0.2 0.4 0.6 0.8 1 1.2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
magnitude vs frequency in Hertz
0 0.2 0.4 0.6 0.8 1 1.2
-200
-100
0
100
200
phase in degrees vs frequency in Hertz
0 0.2 0.4 0.6 0.8 1 1.2
-800
-600
-400
-200
0
unwrapped phase in degrees vs frequency in Hertz
28
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
x Aproximacin de Chebyshev II
3 Se desea disponer de un filtro con una fuerte transicin como es el caso de
filtro de Chebyshev tipo I, pero que a la vez tenga una respuesta lo ms
plana posible en la pasabanda. Esto se logra transfiriendo el rizado del
pasabanda en el filtro de Chebyshev I al parabanda y viceversa. De esta
forma, mediante una transformacin de frecuencia, logramos un filtro con
unas caractersticas inversas a las del filtro Chebyshev I.
3 Hacemos la Transformacin 1/, partiendo del filtro de Chebyshev II.
1/

| H()|
2
1-| H()|
2

29
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
3 Chebyshev I Mediante la Transformacin 1/
obtenemos
3 La funcin L
n
2
() es ahora una funcin racional y no polinomial.
( )
( )
H
T
n


2
2 2
1
1

+
( )
( )
H
T
n
1
1
1 1
2
2 2

+
( ) ( )
( )
( )
( )
[ ]
( )
H H
T
T
T
L
n
n
n
n





2 2
2 2
2 2
2 2
2
1 1
1
1 1
1
1 1 1
1
1

+

+

+
( )
( )
( )
[ ]
[ ]
( )
L
T
2
2
2
2
2
2
1
2
2
2
2
2
2
4 4
4
2 2 4
1
1
1
2 1
1 1
4 4
2
2
2 4
4

+
30
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
x Proceso de diseo para los filtros Chebyshev II
3 Partimos de las especificaciones que aplicaremos de acuerdo al prototipo de
filtro pasobajo.
3 Normalizacin de frecuencias a la frecuencia de parabanda
s
=1,
p
=
p
/
s
.
La atenuacin en parabanda A
s
la utilizamos para calcular
2
.
( )
A
s
A
s
+

10 1 1
1
10 1
2 2
0 1
log
.

( )
( )
A
n
p
n
A
s p
p
p
+

1
]
1

1
]
1
1
1

_
,

_
,

10 1
1
10 1
1
1
0 1
2
1
2 2 1 1
1
2
log
cosh
cosh
cosh cosh
.


3 Empleamos la atenuacin en la pasa-
banda A
p
, para calcular el orden n del
filtro.
| H()|

Chebys hev
Ti po I I

p

s
1

1+
2
31
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
3 El valor de
2
est relacionado con el rizado en la parabanda. En esa zona
(
s
=1), el valor |H()|
2
es
3 Al contrario que en el filtro Chebyshev I, |H(0)|
2
es siempre igual a 1.
3 Funcin de Transferencia normalizada H
N
(s) :
Esta vez no solo tendremos polos en H
N
(s) sino tambin ceros.
3 Los polos se calculan de forma parecida al filtro Chebyshev I,
H( ) 1
1
1 1 1
2
2
2
2

+

+

( ) ( ) ( )
( )
( )
H s H s H
T
T
s j
n
n
s j

+

2
2 2
2 2
1
1 1
( )
( )
cos , , , n
k
n
k n
k




0
2 1
2
1 2 2
( )


1
1
1
n
sinh
( )
( )
( )
( ) 1 1 2 p j k n
k k k
+ sin sinh cos cosh , , ,
32
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
3 Los ceros se calculan a partir de los ceros del polinomio de Chebyshev
T
n
(1/)=cos[ncos
-1
(1/)]. Haciendo el cambio de variable 1/=cos.
Los ceros estarn por tanto en
Sustituyendo
k
por s/j, obtengo los ceros de la funcin de Transferencia.
. Estos ceros tienen simetra conjugada,
por lo que
3 La forma final de la funcin de Transferencia Normalizada H
N
(s) es
( ) [ ]
( )
T n
k
n
k n
n k




cos , , , 0
2 1
2
1 2
1
k k k k
cos sec
n k j z
k k
, , 2 , 1 sec
( ) n k j j z
k k k 2
1
int , 2 , 1 = sec t t
( )
( )
( )
( )( ) ( )
( )( ) ( )
( )
( )
( )
H s K
P s
Q s
K
s s s
s p s p s p
m n
K
P
Q
N
N
N
m
n
N
N

+ + +

2
1
2 2
2
2 2 2
1 2
1
2
0
0

int
33
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
x Ejemplo: El mismo filtro pasabaja realizado anteriormente
p
=4,
A
p
=1dB,
s
=8, A
p
=20dB.
Normalizamos en
s
=8 de forma que
s
=1,
p
=0.5.
( )
( )
( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( )
( ) ( )





2
0 1
1
0 1 2
1
1
1
1
1 6 6
2 2 2
3
5
6
5
6
1
2
1
10 1
0 0101
1
10 1
2 78 3
0 9977
1 0 9977 0 9977 0 5859 13341
1 0 9977 0 9977 11717
1 0 9977 0 9977 0 5859 13341
0 276 0 6284
1
2

1
]
1
1


+ +
+
+

.
.
.
cosh
cosh
.
sinh .
sinh . sin cosh . cos . .
sinh . sin cosh . cos .
sinh . sin cosh . cos . .
. .
As
Ap
s p
n
n n
s j j
s j
s j j
s j
s

( ) ( )
( )

+

+ + + 0 8535
0 276 0 6284
0 8535 0 552 0 4711
3
2
.
. .
. . .
s j
Q s s s s
N
34
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
( )
( )
( )
( )
( )
( )
( )
( )
z j k
z j j
P s s K
Q
P
H s
s
s s s
k k
N
N
N
N
t
t t
+

+
+ + +
sec
sec .
.
. .
.
.
.
.
. . .



1
11547
13333
0
0
0 8535 0 4711
13333
0 3016
0 3016
13333
0 8535 0 552 0 4711
1 6
2
2
2
Para desnormalizar esta funcin y obtener H
A
(s) hacemos la transforma-
cin ss/
s
=s/8.
( )
( )
( )
( )
( )
( )
H s
s
s s s
s
s s s
A

+
+ + +

+
+ + +
2 4128
85 3312
6 828 4 416 301504
2 412 205 867
11244 60 3 205 867
2
2
2
3 2
.
.
. . .
. .
. . .
35
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
0 0.5 1 1.5 2
0
0.2
0.4
0.6
0.8
1
1.2
magnitude vs frequency in Hertz
0 0.5 1 1.5 2
-200
-100
0
100
200
phase in degrees vs frequency in Hertz
0 0.5 1 1.5 2
-200
-150
-100
-50
0
unwrapped phase in degrees vs frequency in Hertz
x Ejemplo: Haremos Haremos el ejemplo anterior del pasabanda con un filtro de
Chevishev II. [
1

2

4
]=[0.89 1.019 2.221 6.155], A
p
=2dB, A
s
=20dB.
Con estos datos y a partir de las tablas de transformacin de parabanda a
pasobajo :
3
x
=(
2

3
)
1/2
= (1.019 2.221)
1/2
=1.5045
3
4
=
x
2
/
1
=2.54. B
w
=
3
-
2
=1.202
3
Ap
=1,
As
=(
4
-
1
)/B
w
=1.3754
Como normalizamos en la frecuencia de parabanda :
s
=1,
p
=
Ap
/
As
=0.727
36
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Con estos datos calculamos
2
y n :
( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )







+ +
+ +
+
+


1
1
1
1 8 8
2
3
8
3
8
3
5
8
5
8
4
7
8
7
8
1
2
3
0 7483
1 0 7483 0 7483 0 3138 11948
1 0 7483 0 7483 0 7577 0 4949
1 0 7483 0 7483 0 7577 0 4949
1 0 7483 0 7483 0 3138 11948
0 2056 0 7829
0 9251 0 6042
0
n
s j j
s j j
s j j
s j j
s j
s j
s
sinh .
sinh . sin cosh . cos . .
sinh . sin cosh . cos . .
sinh . sin cosh . cos . .
sinh . sin cosh . cos . .
. .
. .
( )
( )( )
. .
. .
. . . .
9251 0 6042
0 2056 0 7829
0 4112 0 6552 18502 12209
4
2 2
+
+

+ + + +
j
s j
Q s s s s s
N
( )
( )


2
0 1
1
0 1 2
1
1
10 1
0 0101
1
10 1
3 87 4
1
2

1
]
1
1

.
.
.
cosh
cosh
.
As
Ap
s p
n n
Y a partir de aqu el resto
37
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
( )
( )
( )
( )
( )
( )
( )( )
z j k
z j j
z j j
P s s s
K
Q
P
H s
s s
s s s s
s s
s s s s
k k
N
N
N
N
t
t t
t t

+ +

+ +
+ + + +

+ +
+ + + +
sec ,
sec .
sec .
( . )( . )
.
.
( . )( . )
. . . .
.
. . . .

1 2
10824
2 6131
11716 6 8284
0
0
01
01
11716 6 8284
0 4112 0 6552 18502 12209
01
8 8
2 2614 2 6369 1 7143 0 8
1 8
2
3
8
2 2
2 2
2 2
4 2
4 3 2
Haciendo la transformacin a pasabanda
s
s
sB
s
s
x
w


2 2 2
21635
1202
.
.
( ) H s
s s s s
s s s s s s s s
A

+ + + +
+ + + + + + + +
0 1 2 0613 9 9766 10 5609 2 625
2 718 12 864 21 435 49 658 48 519 65 908 31524 26 250
8 6 4 2
8 7 6 5 4 3 2
. . . . .
. . . . . . . .
38
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-Aprox. Chebyshev II
Filtros IIR-Mtodo I-Aprox. Chebyshev II
0 0.2 0.4 0.6 0.8 1 1.2
0
0.2
0.4
0.6
0.8
1
1.2
magnitude vs frequency in Hertz
-200
-100
-400
-200
0 0.2 0.4 0.6 0.8 1 1.2
0
100
200
phase in degrees vs frequency in Hertz
0 0.2 0.4 0.6 0.8 1 1.2
0
200
400
unwrapped phase in degrees vs frequency in Hertz
39
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I
Filtros IIR-Mtodo I
x Una vez estudiadas las tcnicas de diseo de filtros analgicos retoma-
mos el objetivo inicial de este tema, que era transformar las funciones de
Transferencia de los filtros del plano s al plano z. En esto consista el
Mtodo I de diseo de filtros digitales.
x Hay varios mtodos para transformar una funcin de s en otra funcin de
z. Estamos interesados en transformaciones que hagan que la funcin en z
sea tambin racional. Esto hace que las transformaciones que vamos a ver
son slo aproximaciones.
x Una transformacin s z debe cumplir dos condiciones fundamentales,
3 Estabilidad: la mitad izquierda del plano s debe transformarse dentro del
crculo unidad en el plano z.
3 A cada frecuencia analgica dentro del intervalo (-, ) le debe corresponder
una nica frecuencia digital en el intervalo (- f
s
/2, f
s
/2). Esto evita el problema
del aliasing.
40
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I
Filtros IIR-Mtodo I
x Los mtodos que vamos a ver son :
3 Igualar las respuestas temporales como un impuso, un escaln, una rampa,
etc. (Transformacin Invariante a la Respuesta).
3 Igualar trminos en una H(s) factorizada (Transformada Z Pareada).
3 Conversin de ecuaciones diferenciales a ecuaciones diferencia utilizando
operadores diferencia.
3 Integracin numrica de ecuaciones diferenciales usando algoritmos de
integracin.
3 Aproximaciones racionales a z exp(st
s
) o s (1/t
s
)ln(z).
41
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TIR
Filtros IIR-Mtodo I-TIR
Transformacin Invariante a la Respuesta (TIR)
x Se elige una entrada x(t) (impulso, escaln o rampa).
x Determinar la respuesta y(t) como la L
-1
{H(s)X(s)}.
x Muestrear y(t) a intervalos t
s
y obtener y[n] y su Transformada Z Y(z).
x Muestrear x(t) para obtener x[n] y X(z).
x Evaluar H(z) como Y(z)/X(z).
Este tipo de transformacin est limitada por la frecuencia de muestreo f
s
que
restringe su aplicacin a aquellos sistemas cuya respuesta est limitada por f
s
por problemas de aliasing ya que la funcin de transferencia transformada es una
funcin peridica de periodo 1/t
s
. Esto hace que este tipo de transformacin es ms
apropiada para filtros pasobajos de Butterworth y Chebyshev I que para filtros de
Chebyshev II.
Una caso particular de este tipo es la Transformacin Invariante a Impulso.
Supongamos que tenemos H(s) en forma de fracciones parciales. Para cada
trmino podemos determinar su equivalente en z a travs de su respuesta a
impulso. Los trminos y sus equivalencias en z estn tabulados en la tabla adjunta.
42
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TIR
Filtros IIR-Mtodo I-TIR
Transformaciones Invariantes al Impulso
Trmino H(s)
H(z)
a=exp(-pt
s
)
Unico
( )
A
s p + ( )
Az
z a
Complejo
Conjugado
( )
( )
( )
( )
A j
s p jq
A j
s p jq
exp exp
+ +
+

+
( )
( )
( )
2 2
2
2
2 2
z A Aaz qt
z az qt a
s
s
cos cos
cos
+
+
Repetido
( )
A
s p
M
+
( )
( )
A
M
t z
d
dz
z
d
dz
z
d
dz
z
z a
s
M

1
]
1

_
,

_
,

1
1
!

Repetido
( )
A
s p +
2
( )
At
az
z a
s
2
2

Repetido
( )
A
s p +
3
( )
( )
1
2
3
3
At
za z a
z a
s
+

Modificado
( )
A
s p + ( )
Az
z a
A
z a
z a

+

1
2
1
2
Modificado
( )
( )
( )
( )
A j
s p jq
A j
s p jq
exp exp
+ +
+

+
( )
( )
( )
( )
2 2
2
2
2 2
z A Aaz qt
z az qt a
A
s
s
cos cos
cos
cos

+
+

Mo di
43
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TIR
Filtros IIR-Mtodo I-TIR
Ejemplo: Determinar H(z) a partir de H(s) utilizando la Transformacin
Invariante al Impulso.
( )
( )
( )
( ) ( ) ( )
( )
( )
( )
( )
( )
( )
( )
( ) ( )
( )
( )
( )
H s
s s s
s
j
s j
j
s j
s
j
s j
j
s j
H z
z
z e
z ze t
z e z t e
Si t H z
z
z
z z
z z
z z
z z
t
t
s
t
s
t
s
s
s
s s

+ + +

+
+

+ +
+
+
+

+
+

+ +
+
+

+

+

+
+
+

+


4
1 4 5
2
1
1
2
1
2
2
1
2
2
2
2
2
2 2 2 2
2
01
2
0 9048
2 1 4658
1629 0 67
0 0174 0 0137
0 9048
2
3
4
3
4
2
3
4
2
3
4
2 2 4
2
2
2
exp exp
cos cos
cos
.
.
.
. .
. .
.



( )
2
2
3 2
1629 0 67
0 0174 0 0137
2 5338 21439 0 6062
+

+
+
. .
. .
. . .
z
z z
z z z
44
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TIR
Filtros IIR-Mtodo I-TIR
0 1 2 3 4 5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
magnitude vs frequency in Hertz
0 0.1 0.2 0.3 0.4 0.5
0
1
2
3
4
5
6
7
8
magnitude vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-200
-100
0
100
200
phase in degrees vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-300
-200
-100
0
unwrapped phase in degrees vs digital frequency F
0 1 2 3 4 5
-200
-100
0
100
200
phase in degrees vs frequency in Hertz
0 1 2 3 4 5
-300
-200
-100
0
unwrapped phase in degrees vs frequency in Hertz
H(z)-H(s)
45
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TZP
Filtros IIR-Mtodo I-TZP
Transformada Z Pareada (TZR)
x Surge a partir de la Transformacin Invariante al Impulso de 1/(s+a).
x Esta transformacin usa esta forma para sustituir cada trmino del
numerador y del denominador en una H(s) factorizada y generar el
consiguiente H(z) :
x La constante K se escoge para que las ganancias sean iguales a una
frecuencia determinada. En el caso de haber races complejas,
podemos hacer la siguiente transformacin :
( )
( )
( ) 1
s a
z
z at
s a
z at
z
s
s
+


+

exp
exp
( )
( )
( )
( )
( )
( )
[ ]
( )
[ ]
H s K
s z
s p
H z K z
z z t
z p t
i
i
M
k
k
N
N M
i s
i
M
k s
k
N

0
1
1
1
1
exp
exp
( )( )
( )
[ ]
s p jq s p jq
z ze qt e
z
pt
s
pt
s s
+ + +
+
2 2
2
2 cos
46
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TZP
Filtros IIR-Mtodo I-TZP
x Modificaciones al TZR: Hay que transformar tambin los ceros de
H(s) en s=, que equivale a z=-1. La razn de esta eleccin es que
f= en el dominio analgico equivale a f=fs en el dominio discreto o
z=-1. Haremos dos tipos de modificaciones:
1 Reemplazar todos los ceros en z=0 por z=-1 (o z
(N-M)
por (z+1)
(N-M)
).
2 Reemplazar todos los ceros excepto uno en z=0 por z=-1.
Ejemplo: Utilizar el mtodo TZR para transformar H(s) en H(z).
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
H s
s s s
H z Kz
z e z ze t e
Modificaciones ts s
H z
K z
z z z
z
z z z
H z
Kz z
z z z
z z
z z z
t t
s
t
s s s

+ + +

+

+
+

+
+

+
+

+
+

4
1 4 5
1
2
01
1
0 9048 16293 0 67
390 10 1
2 5341 21442 0 6062
1
0 9048 16293 0 67
780 10 1
2 5341 21442 0 6062
2
3
2 2 4
1
3
2
6 3
3 2
2
2
2
6 2
3 2
cos
.
. . .
. . .
. . .
. . .

47
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TZP
Filtros IIR-Mtodo I-TZP
0 0.1 0.2 0.3 0.4 0.5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
magnitude vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-200
-100
0
100
200
phase in degrees vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-300
-200
-100
0
unwrapped phase in degrees vs digital frequency F
0 1 2 3 4 5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
magnitude vs frequency in Hertz
0 1 2 3 4 5
-200
-100
0
100
200
phase in degrees vs frequency in Hertz
0 1 2 3 4 5
-300
-200
-100
0
unwrapped phase in degrees vs frequency in Hertz
H(s)-H
1
(z)
48
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TAD
Filtros IIR-Mtodo I-TAD
Transformacin a travs de algoritmos diferencia (TAD)
x Se trata de convertir una operacin de derivada en su correspondiente
ecuacin diferencia.
x Existen varias formas de calcular la derivada a partir de datos discretos
(Tabla).
x El algoritmo que mejor se comporta en cuanto a la estabilidad es el
algoritmo hacia atrs. Por tanto, esta transformacin consistir en
sustituir el valor de s en H(s) por (z-1)/zt
s
siendo el resultado H(z).
Algoritmos para la Diferenciacin Discreta
Diferencia Algoritmo Transformacin
Hacia Atrs [ ]
[ ] [ ]
y n
x n x n
t
s

1
s
z
zt
s

1
Central [ ]
[ ] [ ]
y n
x n x n
t
s

+ 1 1
2
s
z
zt
s


2
1
2
Hacia Adelante [ ]
[ ] [ ]
y n
x n x n
t
s

+ 1
s
z
t
s

1
49
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TAD
Filtros IIR-Mtodo I-TAD
x Veamos lo que ocurre en esta transformacin en cuanto a la estabilidad.
( )
( )
s
s
s
s
t s
t s
t s
z
z
z
t
s

+
+

1
1
2
1
2
1
1
1
1 1
Slo estamos interesados en lo que ocurre
en el rgimen estacionario por lo que
sustituiremos s por j.
( )
( )
4
1
2
1
Si
2
1
2
1
1
1
2
1
2
1
2
2
+

,
_

+


+

v u
jv u z
z
t j
t j
z
s
s

Esta ecuacin representa una circunferencia de


radio 1/2 centrada en (1/2,0)
Esto significa que el plano izquierdo del plano s se transforma en un crcu-
lo de radio 1/2 que est dentro del circulo unidad. Ya que los polos de un
filtro pasobajo se encuentran aprox. en esa zona, esta transformacin es
ms adecuada para esos filtros.
50
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TAI
Filtros IIR-Mtodo I-TAI
Transformacin a travs de algoritmos de integracin numrica (TAI)
x Aqu tenemos bastantes ms algoritmos para hacer una integracin
numrica. La Tabla muestra algunos algoritmos tpicos.
Algortimos de Integracin numrica
Entre parntesis se indica el orden del algoritmo
Algoritmo Frmula para y[n]
Rectangular(1)
[ ] [ ] [ ] y n y n x n t
s
+ 1
Trapezoidal(1) [ ] [ ]
[ ] [ ] { }
y n y n
x n x n t
s
+

1
1
2
Adams(2) [ ] [ ]
[ ] [ ] [ ] { }
y n y n
x n x n x n t
s
+
+
1
5 8 1 2
12
Adams(3) [ ] [ ]
[ ] [ ] [ ] [ ] { }
y n y n
x n x n x n x n t
s
+
+ +
1
9 19 1 5 2 3
24
Simpsom(2) [ ] [ ]
[ ] [ ] [ ] { }
y n y n
x n x n x n t
s
+
+ +
2
4 1 2
3
Tick(2)
[ ] [ ] [ ] [ ] [ ] { } y n y n x n x n x n t
s
+ + + 2 0 3584 12832 1 0 3584 2 . . .
51
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TAI
Filtros IIR-Mtodo I-TAI
x Las transformaciones para cada algoritmo son
Transformacin sz
Algoritmo Transformacin
Rectangular (1)
s
t
z
z
s

1 1
Trapezoidal (1)
s
t
z
z
s


+
2 1
1
Adams (2) s
t
z z
z z
s


+
12
5 8 1
2
2
Adams (3) s
t
z z
z z z
s


+ +
24
9 19 5 1
3 2
3 2
Simpson (2) s
t
z
z z
s


+ +
3
1
4 1
2
2
Tick (2) s
t
z
z z
s


+ +
1
1
0 3584 12832 0 3584
2
2
. . .
52
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TBL
Filtros IIR-Mtodo I-TBL
x Excepto los algoritmos de Simpson y Tick, el resto producen H(z)
estables a partir de un H(s) estable para cualquier valor de t
s
.
Transformacin Bilineal
x Es la Transformacin dada por el algoritmo trapezoidal
x Tomamos t
s
=2, para simplificar las expresiones. Sustituimos s por j
en la expresin anterior :
Esta expresin nos dice que un punto del eje imaginario de s, se
transforma en un punto en el crculo unidad en el plano z.
Generalizando, para s=+j,
lo que implica que un punto de la mitad del plano s donde < 0, se
transforma en un punto dentro del crculo unidad en el plano z. Por lo
tanto, un diseo estable en s, ser tambin estable en z bajo la
transformacin bilineal. Adems, no hay aliasing, ya que a cada
frecuencia analgica le corresponde una nica frecuencia digital.
( )
z
st
st
s
t
z
z
s
s s



+
2
2
2 1
1
1
z
j
j

1
1

( )
( )
( )
( )
( )
( )
z
j
j
j
j
z
+ +
+

+ +


+ +
+
1
1
1
1
1
1
2
2
2
2
2






53
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TBL
Filtros IIR-Mtodo I-TBL
x Nos interesa la relacin entre los puntos del eje imaginario de s con los
punto del crculo unidad en el plano z, de la ecuacin (1) :
x Estas expresiones nos indican que existe una distorsin en las frecuen-
cias cuando se hace la Transformacin Bilineal. El rango entero de
frecuencias analgicas se mapea con frecuencias digitales entre -f
s
/2 y
f
s
/2. Hay una compresin de frecuencias o una distorsin frecuencial
(la relacin es no-lineal). Para compensarlo, lo que se hace es predis-
torsionar (prewarping) las especificaciones del filtro analgico original
mediante la ecuacin ( es la frecuencia digital, 2f/f
s
):
j
t
e
e t
e
e
j
t
t
t
t
t
t
A
s
j t
j t
s
j t
j t
s
D s
A
s
D s
D
s
A s
D s
D s
D s
D s


+


+

_
,

_
,

_
,

2 1
1
2 1
1
2
2
2
2
2
2
1
tan
tan tan


A
s
D s
s
D
s s
t
t
t f t

_
,

_
,

_
,

2
2
2
2
2
2
tan tan tan

54
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TBL
Filtros IIR-Mtodo I-TBL
Ejemplo 1: Dado el filtro H(s)=3/(s
2
+3s+3), disear un filtro digital cuya
magnitud a f
0
=3KHz sea igual a la magnitud de H(s) en
A
=4rad/s, siendo
la frecuencia de muestreo f
s
=12 KHz.
x
X
= 2 f
s
tan(
D
/ 2f
s
) = 24000 tan(23/24) = 24000 rad/s
x Escalamos H(s) con
X
H
X
(s)=H(s
A
/
X
)=H(s/6000)
x H(z)=H
X
(s)|
s=24000 (z-1)/(z+1)
= H(s/6000)|
s=24000 (z-1)/(z+1)
=
3 (z+1)
2
/(31z
2
-26z+7)
Ejemplo 2 : El filtro H(s)=(s
2
+1)/(s
2
+4s+1) tiene una frecuencia de corte
de 1rad/s. Disear un filtro digital cuya respuesta a f
D
=60Hz sea igual a la
de H(s) en
A
=1 rad/s, siendo f
s
=240Hz.
x
X
= 2 f
s
tan(
D
/ 2f
s
) = 480 tan(260/480) = 480 rad/s
x H
X
(s)=H(s
A
/
X
)=H(s/480)
x H(z)=H
X
(s)|
s=480 (z-1)/(z+1)
= (z
2
+1)/(3z
2
-1)
55
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TBL
Filtros IIR-Mtodo I-TBL
En los ejemplos anteriores se observa que las operaciones a realizar son
transparentes al valor tomado para f
s
, de forma que podramos haber
utilizado la siguiente ecuacin para predistorsionar :

X
= 2 tan(/2)
56
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TBL
Filtros IIR-Mtodo I-TBL
Ejemplo 3 : El filtro de pasobajo de Chebyshev I obtenido en anteriores
ejemplos era del tipo H(s)=31.4436/(s
3
+3.9534s
2
+19.8145s+31.4436).
Utilizando la transformacin bilineal disear un filtro digital cuya
respuesta a f
D
=0.7Hz sea igual a la respuesta de H(s) en f=0.7Hz. La
frecuencia de muestreo es f
s
=20Hz.
x
X
= 2 tan(/2)= 2 tan(2 0.7/(2 20))= 0.2208
x H
X
(s)=H(s
A
/
X
)=H(19.919s)
x H(z)=H
X
(s)|
s=2 (z-1)/(z+1)
= H(19.919s)|
s=2 (z-1)/(z+1)
( ) H z
z z z
z z z

+ + +
+
3 2
3 2
3 3 1
2236 73 6204 64 581152 1835 6 . . . .
57
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TBL
Filtros IIR-Mtodo I-TBL
0 0.1 0.2 0.3 0.4 0.5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
magnitude vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-200
-100
0
100
200
phase in degrees vs digital frequency F
0 0.1 0.2 0.3 0.4 0.5
-400
-300
-200
-100
0
unwrapped phase in degrees vs digital frequency F
0 2 4 6 8 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
magnitude vs frequency in Hertz
0 2 4 6 8 10
-200
-100
0
100
200
phase in degrees vs frequency in Hertz
0 2 4 6 8 10
-300
-200
-100
0
unwrapped phase in degrees vs frequency in Hertz
58
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I-TBL
Filtros IIR-Mtodo I-TBL
Ejemplo : Disear un filtro digital de Chebyshev de Pasabanda con las
siguientes especificaciones : Frecuencias de pasabanda 1.8KHz y 3.2 KHz.
Frecuencias de Parabanda 1.6KHz y 4.8KHz. Atenuaciones A
p
=2dB y
A
s
=20dB. La frecuencia de muestreo es f
s
=12KHz.
x Predistorsionamos las especificaciones:
x Diseamos el filtro,
x Se hace la transformacin s 2 (z-1)/(z+1)
( )
( )
( )
( )




1
2
3
4
2 2 16 24 089
2 2 18 24 1019
2 2 32 24 2 221
2 2 4 8 24 6155




tan . .
tan . .
tan . .
tan . .
( ) H s
s
s s s s s s s s

+ + + + + + + +
0 3411
0 8608 10 89 6 74 39 38 15 26 55 67 9 98 26 24
4
8 7 6 5 4 3 2
.
. . . . . . . .
( )
H z
z z z z
z z z z z z z z

+ +
+ + + +
0 0024 0 0096 0 0144 0 0096 0 0024
1938 4 435 5073 6 239 4 464 3438 1304 05928
8 6 4 2
8 7 6 5 4 3 2
. . . . .
. . . . . . . .
59
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Filtros IIR-Mtodo I
Filtros IIR-Mtodo I
0 1000 2000 3000 4000 5000 6000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Analog(:) Predistorsin(-) and Sin Predistorsin(--) Spectrum vs f in Hz
60
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
MATLAB dispone de funciones que facilitan el diseo de filtros, tanto
analgicos como digitales.
Funciones para determinar el orden necesario para implementar un
determinado filtro :
>> [N, Wn] = buttord(Wp, Ws, Rp, Rs)
Calcula el orden de un filtro pasobajo digital de Butterworth, con
Ws la frecuencia de pasabanda, Wp la parabanda, y Rp y Rs las ate-
nuaciones respectivas de pasabanda y parabanda en decibelios. Wp y
Ws deben ser entre (0,1), siendo 1 la frecuencia de Nyquist (f
s
/2).
N es el orden del filtro y Wn la frecuencia de 3db.
>> [N, Wn] = buttord(Wp, Ws, Rp, Rs,'s')
Lo mismo que antes, pero para un filtro pasobajo analgico. Aqu
los valores de Wp y Ws pueden tomar cualquier valor en radianes.
Para calcular el orden de otros tipos de filtro (pasoalto, paraban-
da o pasabanda) deberemos aplicar primero las transformaciones al
prototipo de filtro pasobajo (Tabla 2).
61
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
>> [N, Wn] = cheb1ord(Wp, Ws, Rp, Rs)
Clculo del orden necesario para un filtro digital pasobajo de
Chebyshev I, con las especificaciones dadas. Las mismas
consideraciones que en el caso del filtro de Butterworth.
>> [N, Wn] = cheb1ord(Wp, Ws, Rp, Rs, 's')
Lo mismo pero para el filtro analgico
>> [N, Wn] = cheb2ord(Wp, Ws, Rp, Rs)
Filtro digital de Chebyshev II
>> [N, Wn] = cheb2ord(Wp, Ws, Rp, Rs, 's')
Filtro analgico de Chebyshev II
>> [N, Wn] = ellipord(Wp, Ws, Rp, Rs)
Filtro digital elptico
>> [N, Wn] = ellipord(Wp, Ws, Rp, Rs, 's')
Filtro analgico elptico
62
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
Ejemplo 1: Determinar el orden necesario para un filtro analgico pasabanda con
las siguientes especificaciones y para todos los tipos de filtros estudiados :
Pasabanda 30-50 Hz , Parabanda < 5Hz y >200 Hz, A
p
<2dB, A
s
>40dB
x Hacemos primero la transformacin de Pasabanda a Pasobajo, de acuerdo con la Tabla
2: Recalculo f
1
, f
1
= f
2
f
3
/ f
4
= 7.5 Hz. La frecuencia de pasobajo es f
3
- f
2
= 20 Hz, y la
frecuencia de pasoalto es f
4
- f
1
= 192.5 Hz.
>> [N,Wn]=buttord(2*pi*20,2*pi*192.5,2,40,s)
N = 3 Wn = 2*pi*41.4736
>> [N,Wn]=cheb1ord(2*pi*20, 192.5,2,40,s)
N = 2 Wn = 2*pi*20
>> [N,Wn]=cheb2ord(2*pi*20, 2*pi*192.5,2,40,s)
N = 2 Wn = 2*pi*162.3265
>> [N,Wn]=ellipord(2*pi*20, 2*pi*192.5,2,40,s)
N = 2 Wn = 2*pi*20
63
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
Ejemplo 2: Lo mismo de antes, pero con filtros digitales. Elegir la frecuencia de
muestreo.
x La frecuencia de muestreo deber ser > 2 f
mx
= 400 Hz. Tomo f
s
= 1000 Hz.
Normalizando las frecuencias con respecto a la frecuencia de Nyquist (f
s
/2) :
f
1
= 0.01, f
2
= 0.06, f
3
= 0.1, f
4
= 0.4.
Recalculamos f
1
de acuerdo con Tabla 2, f
1
= 0.015 y hacemos la Transformacin a
pasobajo,
>> [N,Wn]=buttord(0.04,0.385,2,40)
N = 3 Wn = 0.0941
>> [N,Wn]=cheb1ord(0.04,0.385,2,40)
N = 2 Wn = 0.04
>> [N,Wn]=cheb2ord(0.04,0.385,2,40)
N = 2 Wn = 0.3006
>> [N,Wn]=ellipord(0.04,0.385,2,40)
N = 2 Wn = 0.04
x Se puede obtener un filtro de menor orden si utilizamos una frecuencia de muestreo
menor (por ejemplo, 500). El aliasing no ser tan significativo ya que el la respuesta de
filtro a esas frecuancias es muy pequea ( > 40 dB).
64
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
Funciones para determinar los coeficientes del filtro:
>> [B,A] = butter(N,Wn)
B y A son los coeficientes del numerador y del denominador respec-
tivamente, en orden decreciente de un filtro de Butterworth digi-
tal. N es el orden del filtro (calculado previamente) y Wn es la
frecuencia de corte. El valor de Wn debe estar normalizado con la
frecuencia de Nyquist. Para disear un filtro pasobajo Wn es un
escalar entre (0,1). La pasabanda es (0,Wn) y la parabanda es
(Wn,1). Para disear un filtro de pasoalto, el comando a escribir
es:
>> [B,A] = butter(N,Wn,high)
donde Wn es un escalar.
Un filtro Parabanda se determina de la siguiente forma:
>> [B,A] = butter(N,[W1 W2])
Es decir, Wn es en este caso un vector que especifica las
frecuencias de pasabanda.
Finalmente, para un filtro Parabanda:
>> [B,A] = butter(N,[W1 W2],stop)
[W1 W2] son las frecuencias de Parabanda.
65
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
>> [B,A] = cheby1(N,R,Wn)
Diseo de filtros digitales de Chebyshev I. Se deben especificar el
orden del filtro N, el rizado de pasabanda permitido R y la fre-
cuencia de corte normalizada con respecto a la frecuencia de Ny-
quist. Para disear filtros de pasoalto, pasabanda y parabanda se
siguen las mismas reglas que en el diseo de filtros de Butter-
worth.
>> [B,A] = cheby2(N,R,Wn)
Lo mismo que antes, pero R es el rizado de parabanda.
>> [B,A] = ellip(N,Rp,Rs,Wn)
Rp y Rs son los rizados de pasabanda y parabanda.
Aadiendo a los comandos anterior la optin s, los vectores B y A son
los coeficientes del filtro analgico correspondiente. Sigue siendo
vlido lo que se mencion anteriormente acerca del diseo de filtros
pasoalto, pasabanda y parabanda, pero Wn puede tomar cualquier valor en
radianes (no est limitado entre (0,1)):
>> [B,A] = butter(N,Wn,s)
>> [B,A] = cheby1(N,R,Wn,s)
>> [B,A] = cheby2(N,R,Wn,s)
>> [B,A] = ellip(N,Rp,Rs,Wn,s)
66
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
Ejemplo 1: Disear el filtro analgico con las especificaciones anteriores para
todos los tipos de filtros estudiados (Butterworth, Chebyshev I, Chevyshev II y
Elptico).
x Utilizaremos los resultados del anterior ejercicio.
>> [B,A]=butter(3,2*pi*[30 50],s)
B = 1.0e+006 * [0 0.0000 0.0000 1.9844 0.0000 0.0000 0.0000]
A = 1.0e+014 * [0.0000 0.0000 0.0000 0.0000 0.0001 0.0088 2.0766]
>> [B,A]=cheby1(2,2,2*pi*[30 50],s)
B = 1.0e+004 * [0 0.0000 1.0324 0.0000 0.0000]
A = 1.0e+009 * [0.0000 0.0000 0.0001 0.0060 3.5067]
>> [B,A]=cheby2(2,40,2*pi*[30 50],s)
B = 1.0e+007 * [0.0000 0.0000 0.0002 0.0000 3.5067]
A = 1.0e+009 * [0.0000 0.0000 0.0001 0.0015 3.5067]
>> [B,A]=ellip(2,2,40,2*pi*[30 50],s)
B = 1.0e+007 * [0.0000 0.0000 0.0012 0.0000 3.5120]
A = 1.0e+009 * [0.0000 0.0000 0.0001 0.0059 3.5067]
67
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
Ejemplo 2: Disear el filtro digital con las especificaciones anteriores para todos
los tipos de filtros estudiados (Butterworth, Chebyshev I, Chevyshev II y Elptico).
x La frecuencia de muestreo elegida es f
s
=1000 Hz.
>> [B,A]=butter(3,[0.06 0.1])
B = 1.0e-003 * [0.2196 0.0000 -0.6588 0.0000 0.6588 0.0000 -0.2196]
A = [1.0000 -5.5792 13.1338 -16.6913 12.0771 -4.7177 0.7776]
>> [B,A]=cheby1(2,2,[0.06 0.1])
B = [0.0025 0 -0.0049 0.0000 0.0025]
A = [1.0000 -3.7768 5.4667 -3.5906 0.9040]
>> [B,A]=cheby2(2,40,[0.06 0.1])
B = [0.0100 -0.0383 0.0568 -0.0383 0.0100]
A = [1.0000 -3.8577 5.6956 -3.8097 0.9753]
>> [B,A]=ellip(2,2,40,[0.06 0.1])
B = [0.0120 -0.0369 0.0499 -0.0369 0.0120]
A = [1.0000 -3.7773 5.4682 -3.5922 0.9046]
68
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
Funciones para hacer transformaciones de s a z :
>> [NUMd,DENd] = bilinear(NUM,DEN,Fs)
Hace la Transformacin bilineal entre la funcin de Transferencia
en s dada por los coeficientes NUM y DEN, a la funcin de
Transferencia en z dada por NUMd y DENd. Se debe especificar
tambin la frecuencia de muestreo Fs en Hz.
>> [Bz,Az] = impinvar(B,A,Fs)
Hace la transformacin invariante al impulso de la funcin de
Transferencia en s definida por los vectores de coeficientes B y A,
a una frecuencia de muestreo de Fs Hz.
Ejemplo: Transformar el filtro analgico de Butterworth diseado
anteriormente en un filtro digital (Fs=1000 KHz).
Predistorsionamos las frecuencias que nos piden
[5 30 50 200]Hz [0.03149 0.18904 0.31676 1.45308] rad
Diseamos el filtro analgico para estas frecuencias.
>> [N,Wn] = buttord(0.12772,1.41187,2,40,s)
N = 3 Wn = 0.3042
>> [B,A] = butter(N,[0.18904 0.31676],s)
B = [0 0.0000 0.0000 0.0021 0.0000 0.0000 0.0000]
A = [1.0000 0.2554 0.2123 0.0327 0.0127 0.0009 0.0002]
69
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
>> [Bd,Ad] = bilinear(B,A,1)
Bd = 1e-3 *[0.2196 0.0000 -0.6589 0.0000 0.6589 0.0000 -0.2196]
Ad = [1.0000 -5.5792 13.1338 -16.6913 12.0770 -4.7177 0.7776]
Por la respuesta invariante al impulso, diseo el filtro analgico
(no hay predistorsin). Los coeficientes de este filtro fueron
calculados anteriormente y eran,
>> B = 1.0e+6 *[0 0.0000 0.0000 1.9844 0.0000 0.0000 0.0000];
>> A = 1.0e+14 *[0.0000 0.0000 0.0000 0.0000 0.0001 0.0088 2.0766];
>> [Bdi,Adi] = impinvar(B,A,1000);
Bdi = [-2.5839 2.8862 0.0333 -0.0160]
Adi = [1.0000 -1.8959 0.9158]
70
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
Como obtener la respuesta frecuencial del filtro diseado
x Para los filtros analgicos
>> H = freqs(B,A,W)
Devuelve el vector H de nmeros complejos, que es la respuesta
frecuencial al filtro cuya funcin de transferencia en s viene
dada por B y A. La respuesta frecuencial se evala en los puntos
especificados por el vector W en radianes. Ms opciones en el
Help de MATLAB.
>> plot(W,abs(H))
Dibuja la magnitud de la respuesta frecuencial del filtro.
>> plot(W,unwrap(angle(H)))
Dibuja la fase de la respuesta frecuencial del filtro. La
funcin unwrap hace que no haya discontinuidad en la fase por el
paso de + a -.
71
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
x Para los filtros digitales
>> H = freqz(B,A,F,Fs)
Devuelve el vector H de nmeros complejos, que es la respuesta
frecuencial al filtro cuya funcin de transferencia en z viene
dada por B y A. La respuesta frecuencial se evala en los puntos
especificados por el vector F en Hz, siendo la frecuencia de
mustreo Fs Hz. Ms opciones en el Help de MATLAB.
>> gd = grpdelay(B,A,F,Fs)
Calcula retraso de grupo (-d/dt) de la funcin de Transferen-
cia formada por los polinomios B y A. Se evala en los puntos
especificados por W en radianes. Para ms opciones de esta
funcin ver el Help de MATLAB.
>> plot(F,abs(H))
Dibuja la magnitud de la respuesta frecuencial del filtro.
>> plot(F,unwrap(angle(H)))
Dibuja la fase de la respuesta frecuencial del filtro.
>> plot(F,gd)
Dibuja el retraso de grupo de la funcin de Transferencia
Discreta.
72
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
Tambin podemos disear filtros digitales mediante mtodos recursivos.
Uno de estos mtodos es el de Yule-Walker, que calcula los coeficientes del
filtro de orden N utilizando mnimos cuadrados. Para ello debemos
especificar la respuesta deseada para cada frecuencia. En MATLAB la
funcin se denonima yulewalk:
>> [B,A]=yulewalk(N,F,M)
N es el orden del filtro y F y M son dos vectores de igual longitud.
F es la frecuencia normalizada con respecto a la frecuencia de
Nyquist (0-1). Debe estar en orden creciente y el primer y ltimo
elemento del vector deben ser 0 y 1 respectivamente. M es el vector
que especifica la maginitud de la respuesta para cada elemento de F.
Ejemplo: Disear un filtro digital pasobajo de orden 5 con frecuencia de corte f
c
=1.3
KHz, por el mtodo de Yule-Walker. Calcular las atenuaciones a 1 KHz y 2 KHz.
x Primero hay que elegir una frecuencia de muestreo. Tomamos f
s
=5 KHz.
>> [B,A]=yulewalk(5,[0 1 1.3 2 2.5]/2.5,[1 1 0.708 0 0])
B = [0.3155 0.8087 0.7811 0.4675 0.3284 0.1492]
A = [1.0000 0.6490 0.5046 0.5031 0.1355 0.0577]
>> H = 20*log10(abs(freqz(B,A,[1000 2000],5000)))
ans = -0.2422 -20.9538 % En decibelios
73
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
>> F=0:10:2500;Fs=5000;
>> Hz = freqz(B,A,F,Fs);
>> semilogy(F,abs(Hz));
0 500 1000 1500 2000 2500
-20 dB
-1
0 dB
-40 dB
-60 dB
Frecuencia (Hz)
M
a
g
n
i
t
u
d

(
d
B
)
74
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Diseo de Filtros IIR con MATLAB
Diseo de Filtros IIR con MATLAB
Finalmente, cuando diseemos un filtro digital nos interesar poder aplicar ese
filtro a una seal temporal. Eso se consigue con la funcin de MATLAB filter.
>> y = filter(B,A,x)
El vector x es la entrada y el vector y es la salida filtrada. B y
A son los coeficientes del filtro digital.
Existe otra funcin llamada filtfilt, que funciona de la misma manera que
filter, pero hace dos filtrados. Primero filtra el vector x, y su respuesta la rota y
le vuelve a aplicar el mismo filtro. La respuesta final evita la distorsin de fase
propia de los filtros IIR. Ms detalles en el Help de MATLAB.
>> y = filtfilt(B,A,x)
75
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Apndice
Apndice
Tablas de Transformacin desde un Prototipo de Tablas de Transformacin desde un Prototipo de
Filtro Pasobajo Filtro Pasobajo
76
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Transformaciones desde un
Transformaciones desde un
Prototipo Pasobajo
Prototipo Pasobajo
Transformacin Regla Comentarios
LP2LP
ss/
x

x
=
new
/
old
LP2HP
s
x
/s
x
=
new
/
old
LP2BP
s
s
sB
x
w

+
2 2

x
=frecuencia central
B
w
=
2
-
1
, 12=
x
2
LP2SP s
sB
s
w
x

+
2 2

x
=frecuencia central
B
w
=
2
-
1
, 12=
x
2
Tabla 1
77
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Transformaciones a un
Transformaciones a un
Prototipo Pasobajo
Prototipo Pasobajo
Transformacin de un Prototipo de Filtro Pasobajo a Filtros Pasabanda y Parabanda:
[
1

2

3

4
]=frecuencias en los bordes de las bandas. En los filtros Pasabanda, los bordes
pasabanda son
2
y
3
. En los filtros Parabanda, los bordes pasabanda son
1
y
4
.
Requerimientos Frecuencia Central Eleccin de frecuenaias en los
bordes de la banda
Fijadas
2
,
3

x
2
=
2

3
Si
1

4
<
x
2
,
1
=
x
2
/
4
Si
1

4
>
x
2
,
4
=
x
2
/
1
Fijadas
1
,
4

x
2
=
1

4
Si
2

3
<
x
2
,
3
=
x
2
/
2
Si
2

3
>
x
2
,
2
=
x
2
/
3
Fijada
x

x
Si
1

4
<
x
2
,
1
=
x
2
/
4
Si
1

4
>
x
2
,
4
=
x
2
/
1
Compromiso

x
2
= (
1

4
)
1/2
Si
1

4
>
2

3
,
3
=
x
2
/
2

4
=
x
2
/
1
Si
1

4
<
2

3
,
2
=
x
2
/
3

1
=
x
2
/
4
Tabla 2
78
5 Curso-Tratamiento Digital de Seal
Captulo 8: Diseo de Filtros Digitales (Parte 1) 17/11/99
Utilizacin de la funcin para calcular el orden de los filtros IIR analgicos
(buttord, cheb1ord y cheb2ord)
Parmetros de entrada Wp,Ws,Ap,As
Especificaciones: wp,ws (filtros PasoBajo y PasoAlto),
[wp1 wp2], [ws1 ws2] (filtros PasaBanda y Parabanda), ap y as
Salidas : [N Wn]
PasoBajo Wp=wp, Ws=ws, Ap=ap, As=as

[B1,A1]=lp2lp(B,A,Wn)
PasoAlto Wp=wp, Ws=ws, Ap=ap, As=as

[B1,A1]=lp2hp(B,A,Wn)
PasaBanda
Wp=[wp1 wp2], Ws=[ws1 ws2], Ap=ap, As=as

[B1,A1]=lp2bp(B,A,wx,Bw),
wx
2
=wp1

wp2, Bw=wp2-wp1
ParaBanda
Wp=[wp1 wp2], Ws=[ws1 ws2], Ap=ap, As=as

[B1,A1]=lp2bs(B,A,wx,Bw),
wx
2
=wp1

wp2, Bw=wp2-wp1

También podría gustarte