You are on page 1of 78

5 Curso-Tratamiento Digital de Seal

Diseo de Filtros Digitales


(Parte 1)

Terminologa y Clasificacin
Filtros IIR

17/11/99

Diseo Filtros Analgicos (Butterworth, Chebyshev I


y Chebyshev II).
Mtodos de Transformacin del plano s al plano z.
Diseo de Filtros IIR con MATLAB.
Captulo 8: Diseo de Filtros Digitales (Parte 1)

5 Curso-Tratamiento Digital de Seal

Terminologa y Clasificacin

El trmino filtro digital lo entenderemos como cualquier procesamiento 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

Alta inmunidad al ruido


Alta precisin (limitada por los errores de redondeo en la aritmtica
empleada
Fcil modificacin de las caractersticas del filtro
Muy bajo coste (y bajando)

Por estas razones, los filtros digitales estn reemplazando


rpidamente a los filtros analgicos.

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

5 Curso-Tratamiento Digital de Seal

Terminologa y Clasificacin

Clasificacin de los Filtros Digitales


Filtros FIR (Finite Impulse Response)

17/11/99

Un filtro FIR de orden M se describe por la siguiente ecuacin diferencia


y[n ] = B0 x[n ] + B1 x[n 1]++ BM x[n M ] , lo que da lugar a la funcin de
1
M
transferencia H (z ) = B0 + B1 z ++ BM z .
La secuencia {BK} son los coeficientes del filtro.
No hay recursin, es decir, la salida depende slo de la entrada y no de
valores pasados de la salida.
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)
La funcin de Transferencia tiene un denominador constante y slo tiene
ceros.
La respuesta es de duracin finita ya que si la entrada se mantiene en cero
durante M periodos consecutivos, la salida ser tambin cero.

Captulo 8: Diseo de Filtros Digitales (Parte 1)

5 Curso-Tratamiento Digital de Seal

Terminologa y Clasificacin

Filtros IIR (Infinite Impulse Response)


Veremos dos variaciones de este tipo de filtros: AR y ARMA
Filtros AR (Autoregresivo)

La ecuacin diferencia que describe un filtro AR es


y[n ] + A1 y[n 1] + A2 y[n 2 ]++ AN y[n N ] = x[n] , lo que da lugar a una
funcin de transferencia
H (z ) =

17/11/99

1
1 + A1 z 1 + A2 z 2 ++ AN z N

La funcin de transferencia contiene solo polos.


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).
El trmino autoregresivo tiene un sentido estadstico en que la salida y[n]
tiene una regresin hacia sus valores pasados.
La respuesta al impulso es normalmente de duracin infinita, de ah su
nombre.
Captulo 8: Diseo de Filtros Digitales (Parte 1)

5 Curso-Tratamiento Digital de Seal

Terminologa y Clasificacin
Filtros ARMA (Autoregresivo y Media en Movimiento)

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[n] + A1 y[n 1] + A2 y[n 2]++ AN y[n N ]
= B0 x[n] + B1 x[n 1]++ BM x[n M ]

Y la funcin de transferencia
B0 + B1 z 1 ++ BM z M
H (z ) =
1 + A1 z 1 ++ AN z N

17/11/99

Un filtro de este tipo se denota por ARMA(N,M), es decir es Autoregresivo de orden N y Media en Movimiento de orden M.
Su respuesta a impulso es tambin de duracin infinita y por tanto es un
filtro del tipo IIR.

Captulo 8: Diseo de Filtros Digitales (Parte 1)

5 Curso-Tratamiento Digital de Seal

Terminologa y Clasificacin
Clasificacin de los Filtros Digitales
Ecuacin Diferencia
y[n] = Bm x[n m]
m

Ak y[n k ] = x[n]
k

Ak y[n k ] = Bm x[n m]
k

17/11/99

Tipo de Filtro
FIR(Finite Impulse Response),
No Recursivo,
Moving Average (MA) orden M,
Todo ceros
IIR (Infinite Impulse Response),
Recursivo, Autoregresivo(AR) orden N,
Todo polos
IIR Recursivo, ARMA(N,M),
Polos y Ceros

Captulo 8: Diseo de Filtros Digitales (Parte 1)

5 Curso-Tratamiento Digital de Seal

Terminologa y Clasificacin
|H(s)|

Filtro Pasobajo (LP)

0 dB

0 dB

-3 dB

-3 dB

fc
|H(s)|

Filtro Pasabanda (BP)

|H(s)|
0 dB

-3 dB

-3 dB

f2

Filtro Parabanda (BS)

f1

0 dB

f1

17/11/99

|H(s)|

f2

Filtro Pasoalto (HP)

fc

Captulo 8: Diseo de Filtros Digitales (Parte 1)

5 Curso-Tratamiento Digital de Seal

Proceso de Diseo de Filtros Digitales

El proceso de diseo de un filtro digital requiere tres pasos

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.
Determinar la funcin de transferencia que cumpla las especificaciones.
Realizar la funcin de transferencia en hardware o software.

IIR o FIR?

Los filtros IIR producen en general distorsin de fase, es decir la fase


no es lineal con la frecuencia.
Los filtros FIR son de fase lineal.
El orden de un filtro IIR es mucho menor que el de un filtro FIR para
una misma aplicacin.
Los filtros FIR son siempre estables.

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I

Tcnicas de diseo de filtros IIR

Mediante mtodos de diseo analgico, seguido de una transformacin


del plano s al plano z (Mtodo I).
Disear un prototipo de filtro pasobajo digital y hacer las oportunas
transformaciones (Mtodo II)

Mtodo I

Discutiremos este mtodo para el diseo de filtros pasobajo. Empezaremos discutiendo el proceso de diseo de filtros analgicos para luego
transformarlo al dominio discreto.
El diseo analgico se realiza a partir de unas especificaciones como
las dadas en la figura.

17/11/99

1 es el rizado de pasabanda.
2 es el rizado de parabanda
fp es la frecuencia lmite de pasabanda.
fs es la frecuencia lmite de parabanda.
Captulo 8: Diseo de Filtros Digitales (Parte 1)

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I
|H(f)|

1
1 1
Banda de
Transicin

Pasabanda

Parabanda
2
fp

fs

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
1
de Transferencia es
2
H ( ) =
1 + L2n ( )
donde Ln() es un polinomio de grado n.

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

10

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Butterworth

El objetivo del diseo de un filtro es encontrar Ln() que mejor cumple


las especificaciones. Para ello se utilizan algunas aproximaciones
(Butterworth, Chebyshev, etc).
Etapas del diseo
Normalizar la frecuencia de acuerdo a las especificaciones.
Determinar el orden del prototipo de filtro pasobajo.
Determinar la funcin de Transferencia normalizada.
Desnormalizar a travs de las transformacines de frecuencia en y .

Aproximacin de Butterworth

Consiste en hacer Ln()=n. Esta aproximacin es tal que


Ln (0 ) = 0 , Ln (0 ) = 0 , , Lnn1 (0 ) = 0
Por tanto,

1
1 + 2 2 n
Normalizamos las frecuencias por la frecuencia lmite de pasabanda fp, de
forma que p=1 y s=fs/fp.

17/11/99

H ( ) =
2

Captulo 8: Diseo de Filtros Digitales (Parte 1)

11

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Butterworth


A partir de 1 (en =1) y 2 (en =s), podemos calcular los valores de
y n.
1 = 10 log H ( ) =1 = 10 log
2

2 = 10 log H ( ) = s = 10 log
2

10
1

log 0.1
1
10
1
n=
log s
0 .1 2

1
2

1
= 10 log 1 + 2 2 = 10 0.1 1 1
2
1+

1
2 2n
log
10
1
=

s
1 + 2 2s n

|H(f)|

1
1 1
Banda de
Transicin

Pasabanda

Parabanda
2
fp

17/11/99

fs

Captulo 8: Diseo de Filtros Digitales (Parte 1)

12

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Butterworth

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.

Frecuencia normalizada =f/fp=f/0.6366.


1
2 = 10 0 .1 1 = 1.2589 1 = 0.2589
En =1 1dB = 10 log
2
1
1+
2
10 1 2
En =1.2732/0.6366=2
20 dB = 10 log

1
1 + 0.2589 2 2 n

log

0
2589
.

n=
= 4.289
log 2

Tomamos como orden del filtro el entero ms cercano por arriba n=5.

Filtro de Butterworth Normalizado : se normaliza con respecto a la


frecuencia 3 (|H(3)|2= ).
H N ( ) = H ( 3 ) =
2

17/11/99

1 + ( 3 )

2n

1
1 + 2Nn

Captulo 8: Diseo de Filtros Digitales (Parte 1)

13

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Butterworth

Funcin de Transferencia Normalizada. Se trata de determinar HN(s) a


partir de |HN()|2.

H N ( N ) = H ( N ) H * ( N ) = H ( N ) H ( N ) H (s ) H ( s ) s = j = H ( N ) H ( N ) = H N ( N )
2

H (s )H ( s ) = H N ( N ) 2 =s 2 =
2

1 + ( s 2 )

Reemplazamos N2 por -s2.


Los polos los calculamos de

( )

1 + s 2

( )

= 0 s 2

= 1 (1)n pk2 n = 1

exp( jn) pk2 n = exp[ j (2 k 1) ] k = 1,2,,2 n

pk = exp j ( k + 2 )

donde k =

(2 k 1)
2n

k = 1,2,,2 N

pk = k + j k = cos( k + 2 ) + j sin( k + 2 ) = sin( k ) + j cos( k )

k = sin( k )

k = cos( k )

pk = ( 2k + 2k ) 2 = 1
1

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

14

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Butterworth

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.
Polos de Butterworth : n=4
j

0.5

0.5

-0.5

-1

-1
-0.5

0.5

-0.5

-1

17/11/99

Polos de Butterworth : n=5


j

-1

-0.5

0.5

Captulo 8: Diseo de Filtros Digitales (Parte 1)

15

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Butterworth

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

(s + p )(s + p ) = [s sin( ) + j cos( )][s sin( ) j cos( )]


= s 2 sin( )s + 1
k

H N (s ) =

17/11/99

1
Q N (s )

( n 1)/ 2

2
n impar
(s + 1) s + s(2 sin k ) + 1
k =1
Q N (s ) =
n/2

s 2 + s(2 sin k ) + 1
n par

k =1

El polinomio QN(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
HN(s) y desnormalizar para determinar la H(s) de nuestro filtro.
Captulo 8: Diseo de Filtros Digitales (Parte 1)

16

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Butterworth


Desnormalizacin : Si |H()|2=|HN(/3)|2, entonces H(s)=HN(s/3). Si
desnormalizamos H(s) a HA(s)=H(s/p), HA(s) cumple las especificaciones dadas. Estos es equivalente a desnormalizar directamente HN(s)
a HA(s)=HN(s/p3).
Ejemplo: Calcular la funcin de Transferencia del filtro del ejemplo
anterior.

En el ejemplo tenamos n=5, fp=0.6366, fs=1.2732 y 2=0.2589.


2
1
1
.
=
3 = 1145
Calculamos 3. H ( 3 ) =
1 + 0.2589 10
2
3
De las tablas se obtiene
1
H N (s ) =
2
3

1 + 3.236 s + 5.236 s + 5.236 s + 3.236 s 4 + s 5

HA(s)=HN(s/p3)= HN(s/4.578)

H A (s) = H N (s 4.578) =

17/11/99

1
2
3
4
5
1 + 3.236(s 4.578) + 5.236(s 4.578) + 5.236(s 4.578) + 3.236(s 4.578) + (s 4.578)

1
1 + 0.7068s + 0.2498s 2 + 0.0546 s 3 + 0.0074 s 4 + 4.973 10 4 s 5
Captulo 8: Diseo de Filtros Digitales (Parte 1)

17

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Butterworth


H A (s ) =

2010.84
2010.84 + 1421.26 s + 502.31s 2 + 109.79s 3 + 14.88s 4 + s 5

magnitude vs frequency in Hertz

phase in degrees vs frequency in Hertz

1.2

200
100

1
0
-100

0.8

-200
0.6

0.5

1.5

unwrapped phase in degrees vs frequency in Hertz


0

0.4

-100
-200

0.2

-300
0

0.5

1.5

-400

0.5

1.5

Filtro Pasoalto de Butterworth

17/11/99

Se hace la transformacin 1/, lo que da lugar a |HHP()|2=|HLP(1/)|2.


Tambin equivale a hacer 1-|HLP()|2
2n
2
2
1
1
H

1 H LP ( ) = 1
1
=
=
=
(
)
LP
1 + 2 n 1 + 2 n 1 + (1 )2 n
Captulo 8: Diseo de Filtros Digitales (Parte 1)

18

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev I

Aproximacin de Chebyshev I H ( ) 2 =

1
1
=
1 + L2n ( ) 1 + 2 Tn2 ( )

donde Tn() es el polinomio de Chebyshev de orden n.


Polinomios de Chebyshev
Tn(x)=cosh(ncosh-1x)
Orden n
Tn(x)
0
1
1
x
2
2x2-1
3
4x3-3x
4
8x4-8x2+1
5
16x5-20x3+5x
6
32x6-48x4+18x2-1
7
64x7-112x5+56x3-7x
8
128x8-256x6+160x4-32x2+1

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

19

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev I

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.
En los filtros de Chebyshev I se especifica tambin para un
determinado rizado en la banda pasabanda (Figura).
Con esas especificaciones calculamos n y .
Determinamos la Funcin de Transferencia Normalizada en 3.
Desnormalizamos y obtenemos HA(s).
Ejemplo: Disear el filtro de Chebyshev para las siguientes especificaciones : Ap1dB para 4, As20dB para 8.

17/11/99

Normalizamos en p , p=1, s=s/p=2.

Captulo 8: Diseo de Filtros Digitales (Parte 1)

20

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev I


Ap = 10 log

1
0 .1 Ap
2
10

=
1 = 0.2589

2
1+

As = 10 log

1
1
log
10
=
1 + 2 cosh 2 n cosh 1 s
1 + 2 cosh 2 n cosh 1 s

cosh
n=

[(10

0 .1 As

) ]

1 /

cosh 1 s

1
2

3.6657
= 2.7834 n = 3
1.3169

1
1
=
3 = cosh 1n cosh 1 ( 1 ) = 1.0949
2
2
1
2 1 + cosh n cosh 3
1

= 0.1087
La magnitud del rizado en la pasabanda es 1
2
1+
La normalizacin de la funcin de transferencia se realiza en p=1.
Procedemos de la misma forma que en el filtro de Butterworth

H N (s )H N ( s ) = H ( ) = s =
2

17/11/99

1
1 + 2 Tn2 (s j )

Captulo 8: Diseo de Filtros Digitales (Parte 1)

21

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev I


Los polos de H N (s) se obtienen de

1 + 2 cos 2 n cos 1 (s j ) = 0 cos n cos 1 (s j ) = j


Llamamos z = + j = cos 1 (s j )
cos(nz ) = cos(n + jn ) = cos(n ) cosh(n ) j sin(n ) sinh (n ) = j
cos(n ) cosh(n ) = 0

(1)

sin(n ) sinh(n ) = 1

(2)

|H( )|

Ya que cosh(n)1 para todo n, la ecua1cin (1) nos dice que


cos(n ) = 0 k =

(2 k 1)
2n

Chebyshev
Tipo I

1
1
1+2

k = 1,2,,2 n

Para estos valores de k, sin(n)=1, por lo


que la ecuacin (2) queda
sinh(n ) = 1 = 1n sinh 1 ( 1 )
p

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

22

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev I


s j = cos z
s = j cos z = j cos( k + j ) = sin( k )sinh( ) + j cos( k ) cosh( )

Los polos estarn a la izquierda del plano s para garantizar la estabilidad del filtro
pk = sin( k )sinh( ) + j cos( k ) cosh( )

k = 1,2,, n

En el ejemplo anterior teniamos 2=0.2589, n=3


= n1 sinh 1 ( 1 ) = 13 sinh 1 (

k = ( 2 k2n1) = ( 2 k 61)

1
0 .2589

) = 0.476

k = 1,2,3

s1 = sinh(0.476) sin( 6 ) + j cosh(0.476) cos( 6 ) = 0.2471 + j 0.966


s2 = sinh(0.476) sin( 2 ) + j cosh(0.476) cos( 2 ) = 0.4942
s3 = sinh(0.476) sin( 56 ) + j cosh(0.476) cos( 56 ) = 0.2471 j 0.966

QN (s) = (s s1 )(s s2 )(s s3 ) = (s + 0.4942) s 2 + 0.4942 s + 0.9492)


17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

23

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev I


H N (s ) =

QN (0 )
0.4913
=
(s + 0.4942) s 2 + 0.4942 s + 0.9492 s 3 + 0.9883s 2 + 1.2384 s + 0.4913

H A ( s ) = H N (s 4 ) =

31.4436
31.4436 + 19.8145s + 3.9534 s 2 + s 3

magnitude vs frequency in Hertz

phase in degrees vs frequency in Hertz

200

0.9

100

0.8

0.7

-100

0.6

-200

0.5

0.5

1.5

unwrapped phase in degrees vs frequency in Hertz


0

0.4
0.3

-100

0.2
-200

0.1
0

17/11/99

0.5

1.5

-300

0.5

1.5

Captulo 8: Diseo de Filtros Digitales (Parte 1)

24

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev I

Ejemplo: Disear un filtro pasabanda de Chebyshev con las siguientes


caractersticas:
Bordes de las bandas : [1 2 3 4]=[0.89 1.019 2.221 6.155]
Mxima atenuacin en la pasabanda Ap=2dB.
Mnima atenuacin en la parabanda As=20dB.
x=(23)1/2= (1.019 2.221)1/2=1.5045
4=x2/1=2.54. Bw=3-2=1.202
Ap=1, As=(4-1)/Bw=1.3727

Con estas especificaciones para el prototipo de filtro pasobajo calculamos y n. 2 = 10 0.1 A 1 = 10 0.12 1 = 0.5849
p

10
1
cosh

0 .1 As

n=

cosh
p
1

17/11/99

1
2
1

99 2
1
cosh
0.5849
=
= 3.871 n = 4
cosh 1 (1.3754
1 )

Captulo 8: Diseo de Filtros Digitales (Parte 1)

25

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev I


De aqu obtenemos los polos del filtro aplicando las frmulas de los
polos vistas anteriormente.

= n1 sinh 1 ( 1 ) = 14 sinh 1 (
k =

( 2 k 1)
2n

( 2 k 1)
8

1
0 . 5849

) = 0.2707

k = 1,2,3,4

s1 = sinh(0.2707) sin ( 8 ) + j cosh(0.2707) cos( 8 ) = 0.1049 + j 0.958


s2 = sinh(0.2707) sin ( 38 ) + j cosh(0.2707) cos( 38 ) = 0.2532 + j 0.3968
s3 = sinh(0.2707) sin ( 58 ) + j cosh(0.2707) cos( 58 ) = 0.2532 j 0.3968
s 4 = sinh(0.2707) sin ( 78 ) + j cosh(0.2707) cos( 78 ) = 0.1049 j 0.958

)(

QN (s ) = (s s1 )(s s2 )(s s3 )(s s 4 ) = s 2 + 0.2098 s + 0.9287 s 2 + 0.5064 s + 0.2216

= s 4 + 0.7162 s 3 + 1.2565s 2 + 0.5167s + 0.2058


Como n es par
K=

17/11/99

QN (0 )
1+ 2

= 0.1634 H N (s ) =

0.1634
s 4 + 0.7162 s 3 + 1.2565s 2 + 0.5167s + 0.2058

Captulo 8: Diseo de Filtros Digitales (Parte 1)

26

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev I


Ahora hay que hacer la transformacin para el filtro pasabanda
s 2 + 2x

s
H A (s ) =

sBw

s 2 + 2.2635
1.202 s
0.1148
4

s + 2.2635
s + 2.2635
s + 2.2635
s + 2.2635

+ 0.7162
+ 1.2565
+ 0.5167
+ 0.2058
s
s
s
s
1
.
202
1
.
202
1
.
202
1
.
202

0.34 s 4
s 8 + 0.8604 s 7 + 10.87s 6 + 6.75s 5 + 39.39 s 4 + 15.27 s 3 + 55.69 s 2 + 9.99 s + 26.25
magnitude vs frequency in Hertz

phase in degrees vs frequency in Hertz

200

0.9

100

0.8

0.7

-100

0.6

-200

0.5

17/11/99

0.2

0.4

0.6

0.8

1.2

unwrapped phase in degrees vs frequency in Hertz

0.4

0.3

-200

0.2

-400

0.1

-600

0.2

0.4

0.6

0.8

1.2

-800

0.2

0.4

0.6

0.8

1.2

Captulo 8: Diseo de Filtros Digitales (Parte 1)

27

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II


Aproximacin de Chebyshev II

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.
Hacemos la Transformacin 1/, partiendo del filtro de Chebyshev II.

17/11/99

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

|( )|2

|( )|2

1/

|( )|2

Captulo 8: Diseo de Filtros Digitales (Parte 1)

28

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II


1

Chebyshev I H ( ) =
Mediante la Transformacin 1/
1 + 2 Tn2 ( )
obtenemos
2

H (1 ) =
2

1
1 + 2 Tn2 (1 )

H ( ) = 1 H (1 ) =
2

2 Tn2 (1 )

1 + 2 Tn2 (1 )

1
1
=
2
1 + 1 2 Tn2 (1 ) 1 + Ln ( )

La funcin Ln2() es ahora una funcin racional y no polinomial.


4
1
1
1
1
2
L2 ( ) = 2 2
=
= 4 4 2 + 4 = 2
2 =
2
4
2 2
2
2
2
2

T2 (1 ) 2( 1 ) 1
2
4
4

+
(
)

17/11/99

[ ]
2

Captulo 8: Diseo de Filtros Digitales (Parte 1)

29

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II

Proceso de diseo para los filtros Chebyshev II

Partimos de las especificaciones que aplicaremos de acuerdo al prototipo de


filtro pasobajo.
Normalizacin de frecuencias a la frecuencia de parabanda s=1, p=p/s.
La atenuacin en parabanda As la utilizamos para calcular 2.
1
As = 10 log(1 + 1 2 ) 2 = 0.1 A
10

1 )|
|H(

Empleamos la atenuacin en la pasabanda Ap, para calcular el orden n del1


filtro.

Ap = 10 log 1 + 2 2 1 1 1

cosh n cosh p

cosh 1
0.1 Ap
2
10
1

n=
cosh 1 s p )

17/11/99

Chebyshev
Tipo II

1
2

1+2

Captulo 8: Diseo de Filtros Digitales (Parte 1)

30

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II

El valor de 2 est relacionado con el rizado en la parabanda. En esa zona


2
1
(s=1), el valor |H()|2 es
2
H(1) =
=
1+1 2 1+ 2
Al contrario que en el filtro Chebyshev I, |H(0)|2 es siempre igual a 1.
Funcin de Transferencia normalizada HN(s) :
2 Tn2 (1 )
2
H (s)H ( s) = H ( ) = s j =
1 + 2 Tn2 (1 ) s j
=
Esta vez no solo tendremos polos en HN(s) sino tambin ceros.
Los polos se calculan de forma parecida al filtro Chebyshev I,
= n1 sinh 1 ( 1 )
cos(n ) = 0 k =

(2 k 1)
2n

k = 1,2,,2 n

1 pk = sin( k ) sinh( ) + j cos( k ) cosh( )

17/11/99

k = 1,2,, n

Captulo 8: Diseo de Filtros Digitales (Parte 1)

31

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II

Los ceros se calculan a partir de los ceros del polinomio de Chebyshev


Tn(1/)=cos[ncos-1(1/)]. Haciendo el cambio de variable 1/=cos.
(2 k 1)
k = 1,2,, n
Tn ( ) = cos[n ] = 0 k =
2n

Los ceros estarn por tanto en 1 k = cos k k = sec k


Sustituyendo k por s/j, obtengo los ceros de la funcin de Transferencia.

zk = j seck k = 1,2,, n . Estos ceros tienen simetra conjugada,


por lo que zk = j sec k = jk k = 1,2,int(12 n)

La forma final de la funcin de Transferencia Normalizada HN(s) es


s 2 + 12 )(s 2 + 22 )(s 2 + 2m )
(
PN (s)
H N (s ) = K
m = int( 12 n)
=K
Q N (s )
( s p1 )(s p2 )(s pn )
K=

17/11/99

PN (0)
QN (0)

Captulo 8: Diseo de Filtros Digitales (Parte 1)

32

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II

Ejemplo: El mismo filtro pasabaja realizado anteriormente p=4,


Ap=1dB, s=8, Ap=20dB.
Normalizamos en s=8 de forma que s=1, p=0.5.

1
cosh 0.1 Ap

2
10
1

=
2

1
10 0.1 As 1

= 0.0101

n=

cosh 1

)
( )
s

1
2

= 2.78 n = 3

= ( 1n ) sinh 1 ( 1 ) = 0.9977
1 s1 = sinh(0.9977) sin( 6 ) + j cosh(0.9977) cos(6 ) = 0.5859 + j1.3341
.
1 s2 = sinh(0.9977) sin( 2 ) + j cosh(0.9977) cos(2 ) = 11717
1 s3 = sinh(0.9977) sin( 56 ) + j cosh(0.9977) cos( 56 ) = 0.5859 j1.3341
s1 = 0.276 j 0.6284

2
s2 = 0.8535
QN (s ) = (s + 0.8535) s + 0.552 s + 0.4711
s3 = 0.276 + j 0.6284

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

33

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II


z k = j sec k

k =1

z1 = j sec( 6 ) = j11547
.
PN (s) = s 2 + 1.3333

K=

QN (0) 0.8535 0.4711


=
= 0.3016
PN (0)
1.3333

s + 1.3333)
(
(s) = 0.3016
(s + 0.8535)(s + 0.552 s + 0.4711)
2

HN

Para desnormalizar esta funcin y obtener HA(s) hacemos la transformacin ss/s=s/8.


s + 85.3312)
(
(s) = 2.4128
(s + 6.828)(s + 4.416 s + 30.1504)
2.412 s + 205.867)
(
=
(s + 11.244s + 60.3s + 205.867)
2

HA

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

34

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II


magnitude vs frequency in Hertz

phase in degrees vs frequency in Hertz

1.2

200
100

1
0
-100

0.8

-200
0.6

0.5

1.5

unwrapped phase in degrees vs frequency in Hertz


0

0.4

-50
-100

0.2

-150
0

0.5

1.5

-200

0.5

1.5

Ejemplo: Haremos el ejemplo anterior del pasabanda con un filtro de


Chevishev II. [1 2 3 4]=[0.89 1.019 2.221 6.155], Ap=2dB, As=20dB.
Con estos datos y a partir de las tablas de transformacin de parabanda a
pasobajo :

x=(23)1/2= (1.019 2.221)1/2=1.5045


4=x2/1=2.54. Bw=3-2=1.202
Ap=1, As=(4-1)/Bw=1.3754

Como normalizamos en la frecuencia de parabanda :s=1, p=Ap/As=0.727


17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

35

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II


Con estos datos calculamos
=
2

1
10 0.1 As 1

1
2

1
cosh 0.1 Ap

2
1
10
n=
= 3.87 n = 4
cosh 1 ( s p )

yn:

= 0.0101

Y a partir de aqu el resto


= ( 1n ) sinh 1 ( 1 ) = 0.7483
1 s1 = sinh(0.7483) sin(8 ) + j cosh(0.7483) cos( 8 ) = 0.3138 + j11948
.
1 s2 = sinh(0.7483) sin( 38 ) + j cosh(0.7483) cos( 38 ) = 0.7577 + j 0.4949
1 s3 = sinh(0.7483) sin( 58 ) + j cosh(0.7483) cos( 58 ) = 0.7577 j 0.4949
1 s 4 = sinh(0.7483) sin( 78 ) + j cosh(0.7483) cos( 78 ) = 0.3138 j11948
.
s1 = 0.2056 j 0.7829

s2 = 0.9251 j 0.6042
2
2
QN (s ) = s + 0.4112 s + 0.6552 s + 1.8502 s + 1.2209
s3 = 0.9251 + j 0.6042
s4 = 0.2056 + j 0.7829

17/11/99

)(

Captulo 8: Diseo de Filtros Digitales (Parte 1)

36

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II


z k = j sec k

k = 1,2

z1 = j sec( 8 ) = j1.0824
2
.
)( s 2 + 6.8284)
PN (s) = ( s + 11716
3
z 2 = j sec( 8 ) = j 2.6131
K=

QN (0)
= 0.1
PN (0)

H N (s) = 0.1
= 0.1

(s

( s 2 + 11716
.
)( s 2 + 6.8284)
2

)(

+ 0.4112 s + 0.6552 s 2 + 1.8502 s + 1.2209


s 4 + 8s 2 + 8

s 4 + 2.2614s 3 + 2.6369s 2 + 1.7143s + 0.8

Haciendo la transformacin a pasabanda s


H A (s ) =

17/11/99

s 2 2x
sBw

s 2 2.1635
1.202 s

0.1s 8 + 2.0613s 6 + 9.9766 s 4 + 10.5609s 2 + 2.625


s 8 + 2.718s 7 + 12.864 s 6 + 21.435s 5 + 49.658s 4 + 48.519s 3 + 65.908s 2 + 31.524 s + 26.250

Captulo 8: Diseo de Filtros Digitales (Parte 1)

37

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-Aprox. Chebyshev II


magnitude vs frequency in Hertz

phase in degrees vs frequency in Hertz

1.2

200
100

1
0
-100

0.8

-200
0.6

0.2

0.4

0.6

0.8

1.2

unwrapped phase in degrees vs frequency in Hertz


400

0.4

200
0

0.2

-200
0

17/11/99

0.2

0.4

0.6

0.8

1.2

-400

0.2

0.4

0.6

0.8

1.2

Captulo 8: Diseo de Filtros Digitales (Parte 1)

38

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I

Una vez estudiadas las tcnicas de diseo de filtros analgicos retomamos 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.
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.
Una transformacin s z debe cumplir dos condiciones fundamentales,

17/11/99

Estabilidad: la mitad izquierda del plano s debe transformarse dentro del


crculo unidad en el plano z.
A cada frecuencia analgica dentro del intervalo (-, ) le debe corresponder
una nica frecuencia digital en el intervalo (- fs/2, fs/2). Esto evita el problema
del aliasing.

Captulo 8: Diseo de Filtros Digitales (Parte 1)

39

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I

Los mtodos que vamos a ver son :

17/11/99

Igualar las respuestas temporales como un impuso, un escaln, una rampa,


etc. (Transformacin Invariante a la Respuesta).
Igualar trminos en una H(s) factorizada (Transformada Z Pareada).
Conversin de ecuaciones diferenciales a ecuaciones diferencia utilizando
operadores diferencia.
Integracin numrica de ecuaciones diferenciales usando algoritmos de
integracin.
Aproximaciones racionales a z exp(sts) o s (1/ts)ln(z).

Captulo 8: Diseo de Filtros Digitales (Parte 1)

40

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TIR

Transformacin Invariante a la Respuesta (TIR)


Se elige una entrada x(t) (impulso, escaln o rampa).
Determinar la respuesta y(t) como la L-1{H(s)X(s)}.

Muestrear y(t) a intervalos ts y obtener y[n] y su Transformada Z Y(z).

Muestrear x(t) para obtener x[n] y X(z).

Evaluar H(z) como Y(z)/X(z).

Este tipo de transformacin est limitada por la frecuencia de muestreo fs que


restringe su aplicacin a aquellos sistemas cuya respuesta est limitada por fs
por problemas de aliasing ya que la funcin de transferencia transformada es una
funcin peridica de periodo 1/ts. 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.

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

41

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TIR


Transformaciones Invariantes al Impulso
Trmino

H(s)

H(z)
a=exp(-pts)

Unico
Complejo
Conjugado

Repetido

Repetido

Repetido

Modificado

Modificado

A
(s + p )

Az
(z a )

A exp( j) A exp( j)
+
(s + p + jq ) (s + p jq )

2 z 2 A cos() 2 Aaz cos( + qts )

A
(s + p ) M

A
d
z
d d
ts( M 1) z z  z

dz dz
dz z a
( M 1)!

z 2 2 az cos(qts ) + a 2

A
(s + p)2
A
(s + p)3
A
(s + p )
A exp( j) A exp( j)
+
(s + p + jq ) (s + p jq )

1
2

Ats2

az
(z a)2

Ats3

za(z + a)
(z a)3

Az
z+a
12 A = 12
(z a )
za

2 z 2 A cos() 2 Aaz cos( + qts )


z 2 2 az cos(qts ) + a 2

A cos()

Mo di

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

42

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TIR


Ejemplo: Determinar H(z) a partir de H(s) utilizando la Transformacin
Invariante al Impulso.
H (s ) =

4
2
1+ j
1 j
=
+
+
(s + 1) s 2 + 4s + 5 (s + 1) (s + 2 + j ) (s + 2 j )

2 exp( j 34 )
2 exp( j 34 )
2
=
+
+
(s + 1)
(s + 2 + j )
(s + 2 j )
H (z ) =

2z

(z e )
ts

2 z 2 2 cos( 34 ) 2 ze 2 ts 2 cos(t s 34 )
z 2 2e 2 ts z cos(t s ) + e 4 ts

0.0174 z 2 + 0.0137 z
2 z 2 + 1.4658z
2z
Si t s = 0.1 H (z ) =
+
=
z 0.9048 z 2 1.629 z + 0.67 (z 0.9048) z 2 1.629 z + 0.67

17/11/99

0.0174 z 2 + 0.0137 z
z 3 2.5338z 2 + 2.1439 z 0.6062

Captulo 8: Diseo de Filtros Digitales (Parte 1)

43

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TIR


H(z)-H(s)
magnitude vs digital frequency F

magnitude vs frequency in Hertz

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0.1

0.2

0.3

0.4

0.5

phase in degrees vs digital frequency F


200

100

100

-100

-100
0

0.1

0.2

0.3

0.4

0.5

unwrapped phase in degrees vs digital frequency F

17/11/99

-200

-100

-100

-200

-200

0.1

0.2

0.3

0.4

0.5

unwrapped phase in degrees vs frequency in Hertz

-300

phase in degrees vs frequency in Hertz

200

-200

-300

Captulo 8: Diseo de Filtros Digitales (Parte 1)

44

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TZP

Transformada Z Pareada (TZR)


Surge a partir de la Transformacin Invariante al Impulso de 1/(s+a).
z exp( at s )
z
1

(s + a )
s+a
z
z exp( at s )

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) :
M

H (s ) = K 0

(s zi )
i =1
N

(s pk )

z exp(zi t s )]
[

( NM)
M

H (z ) = K z

i =1
N

[z exp( pk t s )]

k =1

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 :
(s + p jq)(s + p + jq)

17/11/99

k =1

z 2 2 ze pts cos(qt s ) + e 2 pts

z2
Captulo 8: Diseo de Filtros Digitales (Parte 1)

45

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TZP

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 ) =

4
1
3
H
z
Kz

=
(
)
(s + 1) s 2 + 4 s + 5
z e ts z 2 2 ze 2 ts cos(t s ) + e 4 ts

)(

Modificaciones ts = 0.1s
H1 (z ) =
H 2 (z ) =

17/11/99

K (z + 1)3

(z 0.9048)(z 2 1.6293z + 0.67)


Kz(z + 1)2

(z 0.9048) z 2 1.6293z + 0.67

=
=

390 10 6 (z + 1)3
z 3 2.5341z 2 + 2.1442 z 0.6062
780 10 6 z(z + 1)2
z 3 2.5341z 2 + 2.1442 z 0.6062

Captulo 8: Diseo de Filtros Digitales (Parte 1)

46

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TZP


magnitude vs frequency in Hertz

H(s)-H1(z)

magnitude vs digital frequency F

0.8

0.8

0.7

0.7

0.6

0.6

0.5

0.5

0.4

0.4

0.3

0.3

0.2

0.2

0.1

0.1

phase in degrees vs frequency in Hertz


200

100

100

-100

-100
0

unwrapped phase in degrees vs frequency in Hertz

17/11/99

-200

-100

-100

-200

-200

0.3

0.4

0.5

0.1

0.2

0.3

0.4

0.5

unwrapped phase in degrees vs digital frequency F

-300

0.2

phase in degrees vs digital frequency F

200

-200

0.1

-300

0.1

0.2

0.3

0.4

0.5

Captulo 8: Diseo de Filtros Digitales (Parte 1)

47

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TAD

Transformacin a travs de algoritmos diferencia (TAD)


Se trata de convertir una operacin de derivada en su correspondiente
ecuacin diferencia.
Existen varias formas de calcular la derivada a partir de datos discretos
(Tabla).
Algoritmos para la Diferenciacin Discreta
Diferencia
Hacia Atrs
Central
Hacia Adelante

17/11/99

Algoritmo

x[n] x[n 1]
ts
x[n + 1] x[n 1]
y[n] =
2ts
y[n] =

y[n] =

x[n + 1] x[n]
ts

Transformacin

s
s

z 1
zts
z2 1

2 zts
z 1
s
ts

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)/zts siendo el resultado H(z).
Captulo 8: Diseo de Filtros Digitales (Parte 1)

48

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TAD

Veamos lo que ocurre en esta transformacin en cuanto a la estabilidad.


s
z=
z=
Si

1 z 1
ts z

1
1 1 (1 + s t s )
= +
1 s t s 2 2 (1 s t s )

Slo estamos interesados en lo que ocurre


en el rgimen estacionario por lo que
sustituiremos s por j.

1 1 (1 + j t s )
1 1

z =
2 2 (1 j t s )
2 2
z = u + jv
2

1
1

2
u
v

+
=

2
4

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 crculo 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.
17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

49

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TAI

Transformacin a travs de algoritmos de integracin numrica (TAI)


Aqu tenemos bastantes ms algoritmos para hacer una integracin
numrica. La Tabla muestra algunos algoritmos tpicos.

Algoritmo
Rectangular(1)
Trapezoidal(1)
Adams(2)
Adams(3)
Simpsom(2)
Tick(2)
17/11/99

Algortimos de Integracin numrica


Entre parntesis se indica el orden del algoritmo
Frmula para y[n]
y[n] = y[n 1] + x[n]ts
y[n] = y[n 1] +

{x[n] x[n 1]}ts

2
{5 x[n] + 8 x[n 1] x[n 2]}ts
y[n] = y[n 1] +
12
{9 x[n] + 19 x[n 1] 5 x[n 2] + x[n 3]}ts
y[n] = y[n 1] +
24
{x[n] + 4 x[n 1] + x[n 2]}ts
y[n] = y[n 2] +
3

y[n] = y[n 2] + {0.3584 x[n] + 1.2832 x[n 1] + 0.3584 x[n 2]}ts


Captulo 8: Diseo de Filtros Digitales (Parte 1)

50

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TAI

Las transformaciones para cada algoritmo son


Algoritmo
Rectangular (1)
Trapezoidal (1)
Adams (2)

17/11/99

Transformacin sz
Transformacin
1 z 1
s
ts z
2 z 1
s
ts z + 1
2
12 z z
s
ts 5z 2 + 8 z 1

Adams (3)

z3 z2
24
s
ts 9 z 3 + 19 z 2 5z + 1

Simpson (2)

2
3 z 1
s
ts z 2 + 4 z + 1

Tick (2)

z2 1
1
s
ts 0.3584 z 2 + 1.2832 z + 0.3584

Captulo 8: Diseo de Filtros Digitales (Parte 1)

51

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TBL


Excepto los algoritmos de Simpson y Tick, el resto producen H(z)
estables a partir de un H(s) estable para cualquier valor de ts.
Transformacin Bilineal
Es la Transformacin dada por el algoritmo trapezoidal

17/11/99

2 + st s
2 z 1
s
ts z + 1
2 st s

(1)

Tomamos ts=2, para simplificar las expresiones. Sustituimos s por j


1 + j
z=
en la expresin anterior :
1 j
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.
(1 + ) 2 + 2
1 + ( + j ) (1 + ) + j
2
z =
=
Generalizando, para s=+j, z =
(1 ) 2 + 2
1 ( + j ) (1 ) 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.
Captulo 8: Diseo de Filtros Digitales (Parte 1)

52

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TBL

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) :
2 e j D t s 1 2 e j D t s 1
2
Dts
j A =
= j tan
=

2
t s e j D t s + 1 t s e j D t s + 1
ts

A =

Estas expresiones nos indican que existe una distorsin en las frecuencias cuando se hace la Transformacin Bilineal. El rango entero de
frecuencias analgicas se mapea con frecuencias digitales entre -fs/2 y
fs/2. Hay una compresin de frecuencias o una distorsin frecuencial
(la relacin es no-lineal). Para compensarlo, lo que se hace es predistorsionar (prewarping) las especificaciones del filtro analgico original
mediante la ecuacin ( es la frecuencia digital, 2f/fs):
A =

17/11/99

2
2
t
t
tan D s D = tan 1 A s
2
2
ts
ts

2
2
t 2

tan D s = tan D = tan
2 ts
2
ts
2 f s ts

Captulo 8: Diseo de Filtros Digitales (Parte 1)

53

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TBL

Ejemplo 1: Dado el filtro H(s)=3/(s2+3s+3), disear un filtro digital cuya


magnitud a f0=3KHz sea igual a la magnitud de H(s) en A=4rad/s, siendo
la frecuencia de muestreo fs=12 KHz.
X = 2 fs tan(D / 2fs) = 24000 tan(23/24) = 24000 rad/s
Escalamos H(s) con X HX(s)=H(sA/X)=H(s/6000)
H(z)=HX(s)|s=24000 (z-1)/(z+1)= H(s/6000)|s=24000 (z-1)/(z+1) =
3(z+1)2/(31z2-26z+7)
Ejemplo 2 : El filtro H(s)=(s2+1)/(s2+4s+1) tiene una frecuencia de corte
de 1rad/s. Disear un filtro digital cuya respuesta a fD=60Hz sea igual a la
de H(s) en A=1 rad/s, siendo fs=240Hz.
X = 2 fs tan(D / 2fs) = 480 tan(260/480) = 480 rad/s

HX(s)=H(sA/X)=H(s/480)

H(z)=HX(s)|s=480(z-1)/(z+1)= (z2+1)/(3z2-1)

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

54

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TBL

En los ejemplos anteriores se observa que las operaciones a realizar son


transparentes al valor tomado para fs, de forma que podramos haber
utilizado la siguiente ecuacin para predistorsionar :
X = 2 tan(/2)

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

55

5 Curso-Tratamiento Digital de Seal

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/(s3+3.9534s2+19.8145s+31.4436).
Utilizando la transformacin bilineal disear un filtro digital cuya
respuesta a fD=0.7Hz sea igual a la respuesta de H(s) en f=0.7Hz. La
frecuencia de muestreo es fs=20Hz.
X = 2 tan(/2)= 2 tan(2 0.7/(2 20))= 0.2208

HX(s)=H(sA/X)=H(19.919s)
H(z)=HX(s)|s=2(z-1)/(z+1)= H(19.919s)|s=2 (z-1)/(z+1)

H (z ) =

17/11/99

z 3 + 3z 2 + 3z + 1
2236.73z 3 6204.64 z 2 + 5811.52 z 1835.6

Captulo 8: Diseo de Filtros Digitales (Parte 1)

56

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I-TBL


magnitude vs digital frequency F

phase in degrees vs digital frequency F

200

0.9

100

0.8

0.7

-100

0.6

-200

0.1

0.2

0.3

0.4

0.5

0.5

unwrapped phase in degrees vs digital frequency F

0.4

0.3

-100

0.2

-200

0.1

-300

0.1

0.2

0.3

0.4

0.5

-400

magnitude vs frequency in Hertz

0.1

0.2

0.3

0.4

0.5

phase in degrees vs frequency in Hertz

200

0.9

100

0.8

0.7

-100

0.6

-200

0.5

10

unwrapped phase in degrees vs frequency in Hertz


0

0.4
0.3

-100

0.2
-200

0.1
0

17/11/99

10

-300

10

Captulo 8: Diseo de Filtros Digitales (Parte 1)

57

5 Curso-Tratamiento Digital de Seal

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 Ap=2dB y
As=20dB. La frecuencia de muestreo es fs=12KHz.
Predistorsionamos las especificaciones:
. 24) = 0.89
1 = 2 tan(2 16

. 24) = 1019
.
2 = 2 tan(2 18

3 = 2 tan(2 3.2 24) = 2.221


.
4 = 2 tan(2 4.8 24) = 6155

Diseamos el filtro,

0.3411s 4
H ( s) = 8
s + 0.8608 s 7 + 10.89 s 6 + 6.74 s 5 + 39.38 s 4 + 15.26 s 3 + 55.67 s 2 + 9.98 s + 26.24

Se hace la transformacin s 2 (z-1)/(z+1)

H ( z) =

17/11/99

0.0024 z 8 0.0096z 6 + 0.0144 z 4 0.0096z 2 + 0.0024


z 8 1.938z 7 + 4.435z 6 5.073z 5 + 6.239 z 4 4.464 z 3 + 3.438z 2 1.304 z + 0.5928
Captulo 8: Diseo de Filtros Digitales (Parte 1)

58

5 Curso-Tratamiento Digital de Seal

Filtros IIR-Mtodo I
Analog(:) Predistorsin(-) and Sin Predistorsin(--) Spectrum vs f in Hz
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0

17/11/99

1000

2000

3000

4000

5000

6000

Captulo 8: Diseo de Filtros Digitales (Parte 1)

59

5 Curso-Tratamiento Digital de Seal

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 atenuaciones respectivas de pasabanda y parabanda en decibelios. Wp y
Ws deben ser entre (0,1), siendo 1 la frecuencia de Nyquist (fs/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, parabanda o pasabanda) deberemos aplicar primero las transformaciones al
prototipo de filtro pasobajo (Tabla 2).

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

60

5 Curso-Tratamiento Digital de Seal

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

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

61

5 Curso-Tratamiento Digital de Seal

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, Ap<2dB, As>40dB

Hacemos primero la transformacin de Pasabanda a Pasobajo, de acuerdo con la Tabla


2: Recalculo f1, f1 = f2 f3 / f4 = 7.5 Hz. La frecuencia de pasobajo es f3 - f2 = 20 Hz, y la
frecuencia de pasoalto es f4 - f1 = 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

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

62

5 Curso-Tratamiento Digital de Seal

Diseo de Filtros IIR con MATLAB

Ejemplo 2: Lo mismo de antes, pero con filtros digitales. Elegir la frecuencia de


muestreo.

La frecuencia de muestreo deber ser > 2 fmx = 400 Hz. Tomo fs = 1000 Hz.
Normalizando las frecuencias con respecto a la frecuencia de Nyquist (fs/2) :
f1 = 0.01, f2 = 0.06, f3 = 0.1, f4 = 0.4.
Recalculamos f1 de acuerdo con Tabla 2, f1 = 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

17/11/99

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).

Captulo 8: Diseo de Filtros Digitales (Parte 1)

63

5 Curso-Tratamiento Digital de Seal

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 respectivamente, en orden decreciente de un filtro de Butterworth digital. 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.

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

64

5 Curso-Tratamiento Digital de Seal

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 frecuencia de corte normalizada con respecto a la frecuencia de Nyquist. Para disear filtros de pasoalto, pasabanda y parabanda se
siguen las mismas reglas que en el diseo de filtros de Butterworth.
>> [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)
17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

65

5 Curso-Tratamiento Digital de Seal

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).

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]

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

66

5 Curso-Tratamiento Digital de Seal

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).

La frecuencia de muestreo elegida es fs=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]

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

67

5 Curso-Tratamiento Digital de Seal

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]

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

68

5 Curso-Tratamiento Digital de Seal

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]

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

69

5 Curso-Tratamiento Digital de Seal

Diseo de Filtros IIR con MATLAB

Como obtener la respuesta frecuencial del filtro diseado

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

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

70

5 Curso-Tratamiento Digital de Seal

Diseo de Filtros IIR con MATLAB

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 Transferencia 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.

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

71

5 Curso-Tratamiento Digital de Seal

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 fc=1.3
KHz, por el mtodo de Yule-Walker. Calcular las atenuaciones a 1 KHz y 2 KHz.
Primero hay que elegir una frecuencia de muestreo. Tomamos fs=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

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

72

5 Curso-Tratamiento Digital de Seal

Diseo de Filtros IIR con MATLAB


>> F=0:10:2500;Fs=5000;
>> Hz = freqz(B,A,F,Fs);
>> semilogy(F,abs(Hz));
0 dB

Magnitud (dB)

-20 dB-1

-40 dB

-60 dB 0

500

1000

1500

2000

2500

Frecuencia (Hz)

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

73

5 Curso-Tratamiento Digital de Seal

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)

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

74

5 Curso-Tratamiento Digital de Seal

Apndice
Tablas de Transformacin desde un Prototipo de
Filtro Pasobajo

17/11/99

Captulo 8: Diseo de Filtros Digitales (Parte 1)

75

5 Curso-Tratamiento Digital de Seal

Transformaciones desde un
Prototipo Pasobajo
Tabla 1
Transformacin
LP2LP
LP2HP
LP2BP
LP2SP

17/11/99

Regla
ss/x
s x/s
s 2 + 2x
s
sBw
sB
s 2 w 2
s +x

Comentarios
x= new/ old
x= new/ old
x=frecuencia central
Bw=2-1, 12=x2

x=frecuencia central
Bw=2-1, 12= x2

Captulo 8: Diseo de Filtros Digitales (Parte 1)

76

5 Curso-Tratamiento Digital de Seal

Transformaciones a un
Prototipo Pasobajo
Tabla 2
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

17/11/99

Fijadas 2,3

x 2= 2 3

Fijadas 1,4

x 2= 1 4

Fijada x

Compromiso

x2= (1234)1/2

Eleccin de frecuenaias en los


bordes de la banda
Si 14< x2 , 1= x2/4
Si 14>x2 , 4= x2/1
Si 23<x2 , 3= x2/2
Si 23>x2 , 2= x2/3
Si 14< x2 , 1= x2/4
Si 14>x2 , 4= x2/1
Si 14>23 , 3=x2/2 4=x2/1
Si 14<23 , 2=x2/3 1=x2/4

Captulo 8: Diseo de Filtros Digitales (Parte 1)

77

5 Curso-Tratamiento Digital de Seal

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
PasoAlto
PasaBanda
ParaBanda

17/11/99

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


Wp=wp, Ws=ws, Ap=ap, As=as [B1,A1]=lp2hp(B,A,Wn)
Wp=[wp1 wp2], Ws=[ws1 ws2], Ap=ap, As=as [B1,A1]=lp2bp(B,A,wx,Bw),
wx2 =wp1wp2, Bw=wp2-wp1
Wp=[wp1 wp2], Ws=[ws1 ws2], Ap=ap, As=as [B1,A1]=lp2bs(B,A,wx,Bw),
wx2 =wp1wp2, Bw=wp2-wp1

Captulo 8: Diseo de Filtros Digitales (Parte 1)

78

You might also like