Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apunte Filtros Digitales
Apunte Filtros Digitales
INTRODUCCION AL PROCESAMIENTO
DIGITAL DE SEALES
Octubre 2002
Indice
Introduccin ......................................................................................................... 1
1. Filtros Digitales ............................................................................................... 1
1.1 Caractersticas de los filtros digitales .................................................. 1
1.2 Caracterizacin de filtros digitales ...................................................... 3
1.2.1 Filtros No Recursivos ........................................................... 3
1.2.2 Filtros Recursivos ................................................................. 4
1.2.3 Redes de Filtrado Digital....................................................... 4
2. Introduccin al anlisis en el dominio del tiempo ........................................ 5
2.1 Sumatoria de Convolucin .................................................................. 8
2.2 Estabilidad ........................................................................................... 9
3. La transformada Z .......................................................................................... 11
3.1 Propiedades de la transformada Z ....................................................... 11
3.2 Transformada Z unilateral ................................................................... 12
3.3 La transformada Z inversa ................................................................... 13
3.4 Otras maneras de hallar la antitransformada Z .................................... 14
3.5 Aplicacin de la transformada Z ..........................................................17
3.5.1 Obtencin de H(z) ................................................................. 17
3.5.2 Criterio de Estabilidad de Jury ..............................................19
3.5.3 Anlisis en el dominio del tiempo ........................................ 20
3.5.4 Anlisis en el dominio de la frecuencia ................................ 21
4. Aproximaciones de filtros analgicos ............................................................ 23
4.1 Conceptos bsicos ............................................................................... 23
4.2 Aproximacin de Butterworth ............................................................ 23
4.2.1 Funcin Transferencia Normalizada .................................... 24
4.3 Otras aproximaciones de filtros analgicos ......................................... 25
4.4 Transformaciones ................................................................................ 26
5. Aproximacin por filtros recursivos ............................................................. 27
5.1 Realizabilidad ...................................................................................... 27
5.2 Mtodo de la Transformacin Bilineal ................................................ 27
5.3 Realizacin de un filtro digital ............................................................ 30
5.4 Propiedades de mapeo de la transformacin bilineal .......................... 33
Bibliografa recomendada
Antoniu A., "Digital Filters. Analysis, Design and Applications", 2 edicin., McGraw-Hill.
Oppenheim, Schafer & Buck, "Tratamiento de Seales en Tiempo Discreto",
2 edicin, Prentice-Hall.
Filtro Digital
x(nT)
y(nT)
x(nT) es la secuencia de entrada -la excitacin del filtro- e y(nT) es la respuesta del filtro ante la
excitacin x(nT).
El anlisis de un filtro digital es el proceso de determinar la respuesta de un filtro ante una dada
excitacin. El diseo de un filtro digital es el proceso de sintetizar e implementar un filtro digital
de tal manera que cumpla con las especificaciones prescriptas.
1.1 Caractersticas de los filtros digitales
Los filtros digitales deben cumplir con las siguientes propiedades:
Invariancia en el tiempo
Causalidad
Linealidad
Invariancia en el tiempo
Partiendo del reposo, y teniendo en cuenta que:
-1-
x(nT) = y(nT) = 0
n < 0,
un filtro digital es invariante en el tiempo si, para cualquier posible excitacin, se cumple
que:
R x(nT kT) = y(nT kT)
Ejemplos:
(a)
y(nT) = 2 nT x(nT)
(b)
Causalidad
Para que un filtro digital sea causal, su salida en un instante dado no puede depender de
valores posteriores de la excitacin.
Es decir: para un par de excitaciones tales que:
x1(nT) = x2(nT) n k
x1(nT) x2(nT) n > k
R x1(nT) = R x2(nT)
nk
Ejemplos:
(a) y(nT) = R x(nT) = 3 x(nT 2T) + 3 x(nT + 2T)
Para n=k tenemos:
son distintos
NO Causal
y: (n2) < k
x1(nT T) = x2(nT T)
y:
nk
R x1(nT) = R x2(nT)
nk
El filtro es Causal
Linealidad
Un filtro digital es lineal si se cumple que:
R x(nT) = R x(nT)
R [ x1(nT) + x2(nT) ]
= R x1(nT) + R x2(nT)
, x1(nT) y x2(nT)
O bien:
R [ x1(nT) + x2(nT) ]
= R x1(nT) + R x2(nT)
, , x1(nT) y x2(nT)
Ejemplos:
(a) y(nT) = R x(nT) = 7 x2(nT T)
R x(nT) = 7 2 x2(nT T)
R x(nT) = 7 x2(nT T)
No Lineal
R [ x1(nT) + x2(nT) ]
Es Lineal
-3-
n<0
i>N
Esta expresin indica que el valor de salida actual de un filtro FIR es funcin de la entrada actual
y de las N entradas anteriores.
1.2.2 Filtros Recursivos
Los filtros digitales recursivos tambin se denominan "de Respuesta Infinita al Impulso", y
tambin se los identifica con la sigla IIR (Infinite Impulse Response). La respuesta de un filtro
IIR es funcin de la excitacin y tambin de las respuestas anteriores.
La siguiente es la expresin de un filtro digital recursivo, lineal, invariante en el tiempo y causal:
N
x(nT)
y(nT)
Sumador:
x1(nT)
y(nT) = xi (nT)
i=1
xk(nT)
-4-
y(nT) = x(nT T)
Multiplicador:
m
x(nT)
Ejemplo:
y(nT)
y(nT) = m x(nT)
y(nT)
(nT) =
0 n0
1 n0
Escaln unitario:
u(nT) =
Rampa unitaria:
n<0
nT
n0
n<0
r(nT) =
Exponencial: e nT
Sinusoide:
sen( nT )
-5-
y(0) = 1 + e y( T) = 1
y(T) = 0 + e y(0) = e
2
y(2T) = 0 + e y(T) = e
.......
y(nT) = e
=0
y(nT)
>0
y(nT)
y(nT)
1
1
nT
nT
nT
Ejemplo (b):
Hallar la respuesta temporal del filtro dado por la siguiente expresin:
<0
e j nT 1 R e j nT =
2j
y1(0) = 1 + e y( T) = 1
j T
j T
+ e y1(0) = e + e
y1(T) = e
j 2T
+ j T
2
y1(2T) = e
+ e y1(T) = e + e
+ e j 2T
.......
y1(nT) = e
+ e(n1) + j T + .......+ e j nT
n
y1(nT) = e
j nT
k ( j T)
k=0
Como esta expresin corresponde a una serie geomtrica, puede demostrarse que :
-6-
j nT
e ((n+1) j T)
y1(nT) =
1 e
( j T)
j T
)=
e
donde:
y:
j T
j T
=
1 e
( j T)
= M() e j()
M() = H(e j T) =
1 + e2 2 e cos(T)
sen(T)
cos(T) e
j( () T)
j( () + T)
() = () se puede llegar a:
transitorio
(tiende a 0 para n )
H(e j T) :
M() :
() :
respuesta en frecuencia
respuesta en amplitud
respuesta en fase
x(nT)
1-
y(nT)
M() -
nT
nT
1 -
-7-
x(nT) =
x(kT) si n=k
k=
xk (nT)
donde:
xk(nT) =
si nk
Por lo tanto:
x(nT) =
k=
Partiendo de esta ltima expresin, vamos a considerar un filtro digital lineal, invariante en el
tiempo, tal que su respuesta impulsiva sea:
h(nT) = R (nT)
y(nT) = R x(nT)
y(nT) = R
(nT kT) =
k=
x(kT)
k=
y(nT) =
k=
k=
k=0
y(nT) =
k=0
k=0
Ejemplo:
Dado el filtro digital caracterizado por la siguiente expresin: y(nT) = x(nT) + e y(nT T) ,
calcular, usando la sumatoria de convolucin, la respuesta del filtro a la siguiente excitacin:
Mag. Guillermo Friedrich
-8-
1 para 0 n 4
x(nT) =
0
para otro n
Tal como se ha visto ms arriba, la respuesta impulsiva de este filtro es: h(nT) = R (nT) = en
La entrada puede expresarse de esta otra forma, en trminos de alguna de las funciones bsicas
que se mencionaron anteriormente:
x(nT) = u(nT) u(nT 5T)
Para n 4
y(nT) = R u(nT),
y(nT) =
ek u(nT kT) =
k=0
Para n > 4
1 e(n+1)
ek =
1 e
para n 0
para n < 0
k=0
1 e(n4)
1 e
n5
ek u( (n5)T kT ) =
k=0
n5
ek =
k=0
n<5
e(n4) e(n+1)
1 e
0n4
n5
2.2 Estabilidad
Un filtro digital es estable si para cualquier excitacin acotada se obtiene una salida acotada, es
decir:
y(nT) <
n
para x(nT) < n
Vamos a tratar de encontrar la forma de determinar si un filtro es estable:
-9-
y(nT)
k=
Si x(nT) M <
y(nT) M h(kT)
k=
h(kT) <
y(nT) <
k=
Condicin de estabilidad
Ejemplo: analizar si el filtro dado por y(nT) = x(nT) + e y(nT T) es estable.
Para este filtro:
h(nT) = R (nT) = en
Por lo tanto:
h(kT) = 1 + e + e2 + ..... + e n
k=
e (k+1)
Esta serie converge si:
e k
<1
Es decir, si:
<0
- 10 -
e < 1
3. La transformada Z
La transformada Z se utiliza para el anlisis de filtros digitales lineales e invariantes en el
tiempo. Transforma ecuaciones de diferencias en expresiones algebraicas, lo que simplifica los
clculos.
Definicin:
F(z) =
f(nT) z n
n=-
Notacin:
F(z) = Z f(nT)
3.1 Propiedades de la transformada Z
a) Regin de convergencia
-
El tipo de funciones que se usa en filtros digitales son funciones meromrficas (sus nicas
singularidades son polos).
Hay ms de una serie que converge.
x
x
x
x
Se asume que la serie que interesa es una que converge en la regin III, es decir: R1 z R2
donde: z= R1 es el crculo que pasa por los polos ms alejados del origen
R2
b) Linealidad
Si a y b son constantes, y Z f(nT) = F(z) y
Z [n f(nT) ] = F(z)
e) Diferenciacin compleja:
Z [ nT f(nT) ] = T z d F(z)
dz
f) Convolucin Real:
o bien:
f(nT) z n = ZI f(nT)
n=0
slo si f(nT) 0 para n<0.
Como se trabaja con funciones que son cero para n<0, no es necesario hacer la distincin.
Ejemplos:
a)
b)
c)
1 z1
z
=
z1
Z u(nT T) K = K z Z u(nT) =
- 12 -
Kz
z
e) Z [ u(nT) e
nT
z
]=
z eT
z
]=
z sen(nT)_____
2j z ejT z ejT
z2 2z cos(nT) + 1
3.3 La transformada Z inversa
Si F(z) converge en algn anillo abierto, tal como se vi anteriormente al definir la transformada
Z, entonces es posible obtener f(nT) de la siguiente manera:
f(nt) =
1
2j
F(z) z
n1
dz = Z1 F(z)
N(z)
k
mi
( zpi )
i=1
f(nt) =
Z1 F(z)
F(z) =
(2z 1) z
2 (z1) (z + 0.5)
- 13 -
f(nt) = 1 + 2 ( 1 )n
3
3
2
(b) F(z) =
1
2 (z1) (z + 0.5)
zn1
_
2 (z1) (z + 0.5)
Esta F(z) tiene un polo en el origen para n=0 f(0) debe obtenerse por separado.
Para n=0 :
f(0) = ______1_______ + ______1_____ + ____1____
= 1 + _1 + 2 _ = 0
2 (z1) (z + 0.5)
2 (z + 0.5) z
2 (z 1) z
3
3
z=0
z=1
z=0.5
Para n>0 :
f(0) = _____zn-1_____ + ___zn-1___
= _1 1 ( 1 )n1
2 (z + 0.5)
2 (z 1)
3
3 2
z=1
z=0.5
Finalmente: f(nT) = a(nT T) [ 1 1 ( 1 )n1 ]
3
3 2
K = K ( 1 w z1 )1 = K ( 1 w z1 + w 2 z2 + .... ) =
zw
z
z
F(z) = K ( z + w z2 + w 2 z3 + .... ) =
[ u(nT T) K w n1 ] z n
n=0
Z1 [
K ] = u(nT T) K w n1
zw
- 14 -
Fracciones Parciales
k
F(z) = Fi (z)
i=1
Z1 Fi (z)
F(z) =
i=1
Ejemplo: Sea
F(z) =
z
=
2
1___
(z ) (z ) (z )
(z )
Por lo tanto: f(nT) = 2 u(nT T) ()n1 u(nT T) ()n1 = 4 u(nT T) [()n ()n ]
Uso del Teorema de Convolucin
Si una transformada Z se puede convertir en el producto de dos transformadas Z cuyas
antitransformadas sean conocidas, mediante convolucin se puede hallar la
antitransformada Z.
1
[ F(z) G(z) ] =
k=
Ejemplo:
Y(z) =
z
(z 1)2
De la tabla se obtiene:
F(z) =
z
z1
f(nT) = u(nT)
G(z) =
1__
z1
g(nT) = u(nT T)
Por lo tanto:
y(nT) =
k=
y(nT) = u(0) u(nT T) + u(T) u(nT 2T) + ....... = 1 + 1 + 1 +..... = n
y(nT) = n u(n)
- 15 -
Convolucin Compleja
La convolucin compleja permite encontrar la transformada Z del producto de dos
funciones en el dominio del tiempo.
[f(nT) g(nT)] zn
n=
Donde: g(nT) =
1
G(v) vn1 dv
2j 1
Z g(nT) = G(z) =
g(nT) zn
n=
f(nT)
n=
Y(z) =
Y(z) =
1
2j 1
G(v) v
n1
zn =
dv
2j 1
f(nT) vn1
zn
G(v) v1 dv =
n=
F(z/v) G(v) v1 dv = 1
F(z) G(z/v) v1 dv =
1
2j 1
2j 2
F(z) =
z
z eT
F(z/v) =
Y(z) =
z sen T_____
(z ejT) (z ejT)
z/v
=
z
z/v eT
v z eT
G(v) =
1
z eT sen T_______ dv = z eT sen T_________
2j 2 (v z eT) (v ejT) (v ejT)
z2 2z eTcos T + e2T
1
plano v
v sen T________
(v ejT) (v ejT)
- 16 -
y(nT) =
k=
3.5.1 Obtencin de H(z)
Para un filtro digital causal y recursivo tenemos:
N
Z y(nT) = ai
Z x(nT)
i=0
bi
N
Y(z) = X(z) ai z
i=0
Y(z)
bi zi
i=1
Y(z) 1 +
Z y(nT)
i=1
N
zi
bi zi
i=0
= X(z)
ai zi
i=1
ai z
Ho
i=0
H(z) = Y(z) =
( z zi )
i=0
N
bi z
( z pi )
i=1
i=1
Donde: zi son los ceros y pi son los polos
- 17 -
Y(z)
y(nT) = xi(nT)
xi(nT)
multiplicador:
y(nT) = m x(nT)
y(nT)
Y(z) = Xi(z)
y(nT)
Y(z) = m Xi(z)
y(nT)
Y(z) = z1 Xi(z)
m
xi(nT)
x(nT)
U(z) = X(z) + z1 U(z) z2 U(z)
U(z) =
X(z)_______
1 z1 + z2
(1 + z1) X(z)___
1 z1 + z2
Y(z) =
H(z) =
z (z + 1)_____
z z+
2
H(z) = Y(z) =
(1 + z1)_____
X(z)
1 z1 + z2
p1 = + j 3_
4
p2 = j 3_
4
Como p1< 1
p2< 1
El filtro es estable
- 18 -
x
x
H(z) =
N(z)
D(z)
Donde: D(z) = bi z N i
i=0
( se asume b0 > 0 )
Coeficientes
b0 b1 b2
bN bN1 bN2
c0 c1 c2
cN cN1 cN2
d0 d1 d2
dN dN1 dN2
r0
r1
Donde:
b3 b4 ........
........
c3 c4 ........
........
d3 d4 ........
........
b0
ci =
bN
b0
cN
c0
dN
d0
bN1
i [0, N1]
bN bi
c0
di =
cN1
i [0, N2]
cN ci
ei y subsiguientes se calculan de
manera anloga.
r2
Para que el sistema sea estable se deben cumplir las siguientes condiciones:
a) D(1) > 0
b) (1)N D(1) > 0
c) c0 > cN1
d0 > dN2
.........
r0 > r2
Ejemplo:
H(z) =
z4__________
4
3
4z + 3z + 2z2 + z + 1
1
2
4
1
3
1
2
2
1
3
3
4
15
1
11
6
6
11
1
15
224
159
79
> r2=79
- 19 -
El filtro es estable.
1
4
Y(z)
T
H(z) = 1 z1 + z2
=
1
2
1z +z
X(z) =
z__
z1
Donde: A=2
z2 z + 1 = z2 z + 1
z2 z +
(z p1) (z p2)
B = ej5/4
2
p1 = ej/4
2
p2 = ej/4
2
z (z2 z + 1) = A z + B z + C z__
(z1)(zp1)(zp2)
(z1)
(zp1) (zp2)
C = B* = ej5/4
2
y(nT) = 2 u(nT) +
Donde:
1
u(nT) [ ej(n5)/4 + ej(n5)/4 ]
( 2 )n1
1
u(nT) cos[ (n5) /4 ]
n1
( 2 )
y(nT)
2
1
nT
- 20 -
H(z) X(z) z
n1
z sen(nT)___
(zejT)(zejT)
y(nT) =
Por lo tanto:
Como:
H(ejT) = H*(ejT)
H(e
jT
) = M() e
j()
H0
=
jT
(e zi)
i=1________
jT
zi = Mzi e
Donde:
jpiT
(ejT pi)
ejT pi = Mpi e
i=1
- 21 -
As obtenemos:
H0
M() =
Mzi
() =
i=1________
zi
i=1
pi
i=1
Mpi
i=1
Por lo tanto, M() y () pueden obtenerse dibujando los fasores en el plano, y midiendo sus
magnitudes y sus ngulos.
Para un filtro recursivo de segundo orden tenemos:
z1
p1
p1 Mp1
Mz1
Mp2
MZ2
El punto A =
C = /T (frecuencia
de Nyquist)
o
z1
A
p2
x
z2
p2
o
z2
Como:
+ ks)T
H(ejT) = H(ej(
) = H(ejT)
donde: N =
- 22 -
= 10 log L( 2)
1_______
H(j) H(j)
Funcin de atenuacin
Un par de diagramas tpicos de polos y ceros de H(s) y L(s2) son como los siguientes:
j
j
H(s)
x2
x
x
x 2
4.2 Aproximacin de Butterworth
La aproximacin mas simple para un pasabajos es la de Butterworth.
Se asume que:
L(2) = B1 2 + B2 4 + ....... + Bn 2n
- 23 -
L(s2)
tal que:
lm L(2) = 1
2
Bo = 1
L(0) = 1
L(2) = 1 + Bn 2n
= 1 [rad/seg]
L(2) = 1 + 2n
n=9
n=6
n=3
sk = e j(2k1)
sk = e j(k1)
/ 2n
/n
para n par
para n impar
(s pi)
i=1
- 24 -
Ejemplo:
(a) n=2
(b) n=3
(semiplano derecho)
j 3 / 4
s2 = 1 + j 1
2
2
s3 = e j 3 / 4
s2 = 1 j 1
2
2
s2 = e
s4 = e j 7 / 4
HN(s) =
s2
s3 X
(semiplano derecho)
1
(s + 1 j 1 ) (s + 1 + j 1 )
2
2
2
2
1_______
(s +2 s+1)
2
s3 = 0.5 + j 3_
2
s4 = 1
s3
s5 = 0.5 + j 3_
2
HN(s) =
s4
1
(s + 1) (s2 + s + 1)
s5
- 25 -
Aproximacin Elptica
La atenuacin en la banda de paso oscila entre 0 y Ap.
La atenuacin en la banda de rechazo oscila entre y Aa.
Aproximacin de Bessel
Tiene una respuesta lineal en fase ( a diferencia de las tres anteriores ).
4.4 Transformaciones
Partiendo de un filtro pasabajos normalizado, se pueden obtener filtros pasabajos, pasaaltos,
pasabandas y rechazabandas desnormalizados. Para tal fin se utilizan transformaciones de la
forma:
s = f( s ).
PasaBajos PasaBajos :
s=s
PasaBajos PasaAltos :
s = _
s
PasaBajos PasaBanda:
s = 1 ( s + o2 )
B
s
PasaBajos RechazaBanda:
s=
B s___
s 2 + o2
Ejemplo:
Hallar la funcin transferencia de un filtro pasabajos de Buterworth de orden 3. La frecuencia de
corte (3 dB) debe ser de 2000 Hz.
HN(s) =
1_______
(s + 1) (s2 + s + 1)
= oN
oD
1
2 2000
HPB() =
1
=
3
=
( + 1) ( ()2 + + 1 )
( + 1) ( 2 + 1 + 2 )
HPB() =
1.9844 . 1012__________________
( + 12566.37) ( 2 + 12566.37 + 157.9137 . 106 )
1
4000
Como se ver posteriormente, una de las aplicaciones de los filtros digitales es el procesamiento
de seales analgicas, con un esquema como el siguiente:
- 26 -
x(t)
x~(t)
FPB
A/D
x(nT) FILTRO
y(nT)
DIGITAL
D/A
y~(t)
FPB
y(t)
c(t)
Una posibilidad para el diseo y sntesis del filtro digital es partir de la funcin transferencia del
filtro analgico, y aplicarle una transformacin para hallar H(z), y posteriormente implementar el
filtro digital.
Las transformaciones para pasar de un filtro analgico a un filtro digital recursivo son:
ai sNi
HA(s) = i=0
N
s + bi sNi
N
- 27 -
HD(z) = HA(s)
s = 2 (z 1)
T (z + 1)
donde T : perodo de
muestreo
s = 2 (z1)
T (z+1)
Demostracin:
Un integrador analgico con funcin transferencia HI(s) = 1 , tiene una respuesta
temporal al impulso:
s
1 para t 0+
1
HI(s) = hI(t) =
0 para t 0
t
x() h (t) d
I
0
x()
t1
t2
y(t2) y(t1) =
x() h (t) d
I
t2
x() h (t) d
I
t2
y(t2) y(t1) =
x() h (t) d
I
t1
Si t1 t2
haciendo t1 = nT T , t2 = nT
- 28 -
Y(z) [ 1 z1 ] = T X(z) [ z1 + 1 ]
HI(z) = Y(z) = T z1 + 1 = T z + 1
X(z) 2 1 z1
2 z1
Es decir:
HI (z) = HI (s)
Y en general:
s = 2 (z1)
T (z+1)
HD(z) = HA(s)
Transformacin Bilineal
s = 2 (z1)
T (z+1)
Ejemplo:
Hallar la funcin transferencia discreta en el tiempo, partiendo de un
pasabajos analgico con frecuencia de corte igual a 2000 Hz, usando aproximacin de
Butterworth con n=3. Considerar T=125 seg (8000 muestras/seg). Aplicar
transformacin Bilineal.
HN (s) =
Si =
1
2
(s+1) (s + s + 1)
HPB() =
1
2 2000
3_________
(+1)(2 + 1 + 2)
0.120198
0.3118993
0.346114
- 29 -
y(nT)
Donde: N(z) =
ai zi
i=0
N
D'(z) =
bi zi
i=1
Y(z) [ 1 + D'(z) ] = X(z) N(z)
Y(z) = X(z) N(z) Y(z) D'(z)
X(z)
N(z)
Y(z)
D'(z)
Ejemplo: N(z) = a0 + a1 z1 + a2 z2
D'(z) = b1 z1 + b2 z2
N(z)
X(z)
X(z) N(z)
a1
a2
D'(z)
X(z) N(z)
Y(z)
T
b1
b2
- 30 -
Y(z)
T
a0
a1
b1
a2
b2
X(z)
1 + D'(z)
Y'(z)
D'(z)
X(z)
N(z)
D'(z)
- 31 -
Y'(z)
X(z)
b1
a0
Y(z)
a1
b2
a2
(*) y (**) Como lo que est almacenada en cada par de retardos son los mosmos valores,
el filtro puede quedar finalmente as:
X(z)
b1
Y(z)
a0
a1
b2
a2
Solucin Cannica
- 32 -
Con s = + j
z = 2/T + s_
2/T s
Considerando que
z = r e j
(2/T + )2 + 2
(2/T )2 + 2
r=
= arc tg
si > 0
si = 0
si < 0
r>1
r=1
r<1
z = 2/T + + j
2/T j
arc tg ___
2/T +
2/T +
s=j
s=0
s=j
r=1
= 2 arc tg (T / 2)
si = 0
si +
si
= 2 arc tg (T / 2)
- 33 -
=0
+
Como = T
= 2 tg( T )
T
2
Si < 0.3
T
Es decir que para que el filtro digital tenga una cierta atenuacin a una frecuencia , debe
disearse el filtro analgico de origen con la correccin dada por = 2 tg(T)
T
2
Por ejemplo: para el pasabajos de Butterworth de orden 3, una frecuencia de corte (3 dB) de
2000 Hz y perodo de muestreo T=125 seg, el filtro analgico debera calcularse
para una frecuencia de corte de:
=
2
tg 2 2000 125 x 106
6
125 x 10
2
f = = 16000 = 2546,48 Hz
2
2
= 16000 rad/seg
f = 2546,48 Hz
1
2
(s+1) (s + s + 1)
Si =
1
2 2546,48
HPB() =
3__________
(+1)(2 + 1 + 2)
y(nT)
0.333333
Observacin: calculando este mismo filtro con algn programa (por ej.: QED Lite), puede
darse alguna diferencia en los valores de los coeficientes, debido a los errores de redondeo que cometen dichos programas. (por ej.: en lugar de anularse los trminos en z1 del denominador, toman valores muy pequeos).
Mag. Guillermo Friedrich
- 34 -
xp(nT) =
x(nT + rNT)
r =
xp(nT)
x(nT)
nT
nT
NT
La transformada discreta de Fourier de xp(nT) se define de la siguiente forma:
W = e j2/N
N1
donde:
= s / N
s = 2 / T
1 Xp(jk) W
N k=0
N1
kn
= 1
N k=0
N1
N1
xp(mT) W
m=0
- 35 -
km
kn
N1
= 1 xp(mT) W k(nm)
N m=0
k=0
N si m=n
N1
Como:
W k(nm)
k=0
N1
1 Xp(jk) W
N k=0
N1
kn
N1
si 2 n 6
otro n
xp(nT) =
N=10
6
Xp(jk) = Wkn =
n=2
como W = e j2/N = e j /5
W 2k W 7k
1 W k
A(k)
5
nT
10T
10
20
0
5
1
2
3.236 0
3
4
1,236 0
- 36 -
5
1
6
0
7
8
1.236 0
9
3.236
N1
kn
N1
r = n=0
rN+N1
Xp(jk) =
x(mT) Wk (mrN) =
r = m=rn
1
N1
= .... +
x(mT) W
km
m=N
2N1
x(mT) W
km
m=0
m=N
Xp(jk) =
n =
Xp(jk) = XD (ejk T )
XD (z) = x(nT)
Ejemplo:
N=12
2
plano Z
1
kT
0
7
11
8
10
9
- 37 -
donde = s / N.
Asimismo: XD(z) puede obtenerse de la DFT de xp(nT) de acuerdo a lo visto en el punto anterior.
Por lo tanto: Si x(nT)=0 para nT<0 o nT NT, entonces:
xp(nT) puede obtenerse de x(nT), y
Xp(jk) puede obtenerse de XD(z)
Y, por otra parte, x(nT) y XD(z) pueden obtenerse a partir xp(nT) y Xp(jk) respectivamente.
x(nT) = [ u(nT) u(nT NT) ] xp(nT)
N1
XD(z) = 1 Xp(jk) 1 zN___ x(nT) puede ser representada por la DFT de xp(nT)
N k=0
1 W k z1
Cualquier seal discreta en el tiempo de duracin finita, puede ser procesada
empleando algoritmos de Transformada Rpida de Fourier (FFT), si se adopta
un valor de N lo suficientemente grande.
6.4 Aliasing en el dominio del tiempo
Si x(nT) 0 para n N o n<0,
Sin embargo, en este caso x(nT) no podr ser recuperada a partir de xp(nT) haciendo:
x(nT) = [ u(nT) u(nTNT) ] xp(nT)
Esta situacin se puede ver en las siguientes figuras:
- 38 -
x(nT)
xp(nT)
nT
nT
NT
Asimismo: la expresin de XD(z) en funcin de Xp(jk) presentada en el punto anterior ya no es
exacta, y en el mejor de los casos la DFT de xp(nT) es una representacin
distorsionada de x(nT).
6.5 Interrelacin entre la transformada discreta de Fourier (DFT), y la transformada
contnua de Fourier (CFT).
Si : x(t) es contnua en el tiempo, podemos obtener X(j) : CFT de x(t)
x^(t) es la versin muestreada de x(t), podemos obtener X ^(j) : CFT de x^(t)
Xp(jk) = XD(ejkT) = x^(jk)
Si
x(t) = 0
(*)
y X(j) = 0 para || s / 2
xp(nT) = x(nT)
para 0 nT (N1)T
Xp(jk) = 1 X(jk)
T
Por lo tanto: xp(nT)
x(t)
Xp(jk)
Si, por el contrario, x(t) 0
X(j)
- 39 -
|| < s / 2,
- 40 -
X(k) =
donde: WN = e j2 / N
x(n) WN kn
n=0
Si se considera un valor de N que sea una potencia entera de 2 (N=2r -r entero-),
entonces la sumatoria puede dividirse en dos partes, segn que n sea par o impar:
N1
X(k) =
N1
x(n) WN
kn
n=0
(n par)
x(n) WN kn
n=0
(n impar)
X(k) =
N/21
x10(n) WN
n=0
2kn
+ x11(n) WN 2kn
n=0
X(k) =
x10(n) WN/2
N/21
kn
+ WN
n=0
- 41 -
X10(k)
X(k)
1
1
Wk 1
X11(k)
X(k+N/2)
X(k)
k
X11(k)
X(k+N/2)
N/21
A su vez: X10(k) =
x(n) WN/2kn
n=0
N/41
X10(k) =
N/41
x20(n) WN/4
kn
+ WN
2k
n=0
x21(n) WN/4 kn
n=0
donde: x20(n) = x10(2n) y x21(n)=x10(2n+1)
0 n N/41
0 n N/41
Como X20(k) y X21(k) son peridicas con perodo N/4, se puede repetir el
razonamiento aplicado anteriormente, por lo tanto:
X10(k+N/4) = X20(k) WN2k X21(k)
X11(k+N/4) = X22(k) WN2k X21(k)
De igual modo a lo realizado hasta aqu, se puede continuar dividiendo las
sumatorias, y en el ciclo m-simo tendremos:
- 42 -
X(m1)0(k) = Xm0(k) + WN 2
m1
k
Xm1(k)
X(m1)0(k+N/2m) = Xm0(k) WN 2
X(m1)1(k) = Xm2(k) + WN 2
m1
k
m1
k
Xm1(k)
Xm3(k)
X(m1)1(k+N/2m) = Xm2(k) WN 2
m1
k
Xm3(k)
.....................
donde:
xm0(n) = x(m1)0(2n)
xm1(n) = x(m1)0(2n+1)
xm2(n) = x(m1)1(2n)
xm3(n) = x(m1)1(2n+1)
........................
Y todo esto es vlido para 0 m N / 2m1 . Sin embargo, para el ltimo ciclo, o sea: el
ciclo r-simo (N=2r), xr0(n), xr1(n), etc. quedan reducidas a secuencias de un solo
elemento, en cuyo caso tendremos:
Xri(0) = xri(0)
para i = 0, 1,....., N1
Los valores de la penltima DFT pueden obtenerse de las siguientes ecuaciones:
X(r1)0(0) = xr0(k) + WN 0 xr1(0)
X(r1)0(1) = xr0(k) WN 0 xr1(0)
X(r1)1(0) = xr2(k) + WN 0 Xr3(0)
X(r1)1(1) = xr2(k) WN 2 xr3(0)
................
Lo ltimo que resta es identificar los elementos xr0(0), xr1(0), .... Esto es sencillo dado
que:
xrp(0) = x(q)
donde: q es la representacin binaria con r bits, de p revertido.
Por ejemplo: si r=3 (N=8) , x31(0) ser x(4), ya que 1 = 0012 ; efectuando la reversin
de bits queda 1002 = 4.
En definitiva, {xr0(0), xr1(0), ....} es una versin reordenada de la secuencia de muestras
de entrada {x(0), x(1), ....}.
Ejemplo: Construir el algoritmo de FFT por decimacin en tiempo para N=8.
Como: x10(n) = x(2n) y x11(n) = x(2n+1)
x10 = { x(0), x(2), x(4), x(6) }
x11 = { x(1), x(3), x(5), x(7) }
- 43 -
para 0 n N/21
X2i(k)
X1i(k)
X(k)
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
Como puede verse, la cantidad de operaciones ("mariposas") que hay que realizar
es igual a N/2 log2N , en lugar de las N2 correspondientes a la DFT. Por ejemplo:
si N=512, la DFT requiere 5122 = 262144 clculos, mientras que la FFT requiere
de slo 2304 clculos ( 1%).
Por otra parte, tambien puede verse del grfico anterior que se la cantidad
memoria necesaria para poder calcular la FFT es igual a 2 N, ya que luego
utilizar un conjunto de valores Xmi(k) como entradas para calcular los valores
X(m1)i(k) , ya no se necesitan ms los valores de Xmi(k), por lo que los lugares
memoria que ocupan podrn ser destinados a los valores de X(m2)i(k).
- 44 -
de
de
de
de
H(z) =
h(nT) zne j 2 / N
n=0
y su respuesta en frecuencia estar dada por:
N1
jt
H(e ) = M() e
j()
h(nT) e jnT
n=0
donde:
M() = |H(ejt)|
() = arg H(ejt)
g = d()
d
Si se requiere que tanto p como g sean constantes, la respuesta en fase deber ser lineal, es
decir:
() =
De las ecuaciones precendentes y se puede expresar la respuesta en fase como:
- 45 -
N1
h(nT)
n=0
() = = arc tg
sen nT
_____________
N1
h(nT)
n=0
Por lo tanto:
cos nT
N1
h(nT)
n=0
tan = sen =
cos
sen nT
_____________
N1
h(nT)
n=0
cos nT
h(nT) ( cos nT
n=0
h(nT)
n=0
sen( nT ) = 0
h(nT) = h[(N1n)T ]
para 0 n N1
Por lo tanto, un filtro no recursivo puede tener fase y retardo de grupo constantes a lo largo
de toda la banda base. Solamente es necesario que la respuesta impulsiva sea simtrica
alrededor del punto medio entre las muestras (N2)/2 y N/2, para N par, o bien con resepcto a
la muestra (N1)/2 para N impar. La figura siguiente muestra la simetra requerida para
N=10 y N=11.
1.0
N=10
1.0
h(nT)
h(nT)
nT
nT
n=10
n=10
1.0
N=11
1.0
- 46 -
h(nT) = h[(N1n)T ]
para 0 n N1
Respuesta en Frecuencia
Las precedentes ecuaciones y permiten arribar a algunas expresiones sencillas para la
respuesta en frecuencia. Para el caso de respuesta impulsiva simtrica y N impar, la ecuacin
puede ser expresada as:
(N3)/2
H(e
jT
)=
n=0
N1
h(nT) e
jnT
+ h[ (N1)T ] e
2
j(N1)T/2
h(nT) ejnT
n=(N+1)/2
N1
h(nT) e
jnT
n=(N+1)/2
(N3)/2
h[(N1n)T] e
jnT
n=(N+1)/2
n=0
H(e
jT
)= e
j(N1)T/2
h { [ (N1)T ] +
2
n=0
H(e
jT
)= e
j(N1)T/2
k=0
ak cos( k T )
donde: a0 = h[(N1)T]
2
ak = 2 h[(N1 k) T ]
2
De igual manera se pueden considerar el caso de respuesta impulsiva simtrica con N par y
para los dos casos de respuesta antisimtrica. La siguiente tabla resume las expresiones de la
respuesta en frecuencia para los cuatro casos posibles.
- 47 -
h(nT)
H(ejT)
(N1)/2
Simtrica
Impar
j(N1)T/2
j(N1)T/2
j[(N1)T/2 /2]
j[(N1)T/2 /2]
k=0
ak cos( k T )
N/2
Par
k=1
bk cos[(k) T ]
(N1)/2
Antisimtrica
Impar
k=0
ak sen( k T )
N/2
Par
donde: a0 = h[(N1)T]
2
k=1
ak = 2h[(N1 k) T]
2
bk sen[(k) T ]
bk = 2h[( N k) T]
2
H(z) =
(N1)/2
n=0
H(z) = N(z) =
1
(N1)/2
D(z)
z
n=0
ak ( zk zk )
N(z) =
k=0
ak ( zk zk )
- 48 -
(N1)/2
1
N(z ) =
k=0
(N1)/2
ak ( z
z )=
k=0
ak ( zk zk ) = N(z)
La misma relacin se puede obtener para N par, y por lo tanto, si zi=ri eji es un cero de
H(z), entonces zi1= eji tambin ser un cero de H(z).
ri
Esto tiene las siguientes consecuencias sobre la ubicacin de los ceros:
Puede haber un nmero arbitrario de ceros ubicados en zi = 1, ya que zi1 = 1.
Puede haber un nmero arbitrario de pares complejos conjugados de ceros ubicados en
el crculo unidad, debido a que:
(zzi)(zzi*) = (z eji)(z eji) = (z 1 )(z 1 )
z i*
zi
Los ceros reales fuera del crculo unidad deben ocurrir en pares recprocos.
Los ceros complejos fuera del crculo unidad deben ocurrir en grupos de cuatro, es
decir: zi, zi*, y sus recprocos: 1/zi* y 1/zi.
La siguiente figura muestra un hipottico diagrama de polos y ceros para un filtro no
recursivo con retardo constante de fase.
z3
1/z5*
z5
Plano z
z4
z2
z3 *
z1 1/z4
z5 *
1/z5
H(e
jT
)=
n=
s/2
h(nT) e
jnT
Donde: h(nT) = 1
s
- 49 -
H(ejT) ejnT d
s/2
H(z) =
n=
h(nT) zn
H(z) = h(0) +
n=1
La causalidad puede lograrse multiplicando H(z) por z(N1)/2 , de modo tal que:
H'(z) = z(N1)/2 H(z)
Esta modificacin es posible debido a que la respuesta en amplitud no se ve afectada, y el
retardo de grupo es incrementado en un valor constante (N1)T / 2.
Cabe destacar que si H(ejT) es una funcin par de , entonces la respuesta al impulso es
simtrica alrededor de n=0, y el filtro tiene retardo de grupo 0. En consecuencia, el filtro
no causal representado por la ecuacin anterior tiene retardo de grupo (N1)T / 2.
Ejemplo
Disear un filtro pasabajos no recursivo con la siguiente respuesta en frecuencia:
H(e
jT
1 para || c
0 para c < || s / 2
Donde s: frecuencia
de muestreo
Solucin:
c
h(nT) = 1
s
ejnT d =
1 sen(cnT)
n
Luego:
(N1)/2
H(z) = z
(N1)/2
an
n=0 2
[zn + zn]
Donde: a0 = h(0)
an = 2 h(nT)
- 50 -
H(z) = z
H(z) = z
[ h(0) +
n=1
[ 0.4 +
n=1
N=11
N=21
N=31
- 51 -
H(ejT)
para || p
( a) / (a p)
para a < || s /2
Donde w(nT) representa una funcin de ventana. El uso de la convolucin compleja nos
lleva a:
Hw(z) =
1
H(v) W(z/v) v1 dv
2j
Con v = ejT y z = ejT , y tanto H(v) como W(z/v) convergentes en el crculo unidad del
plano v, la ecuacin anterior puede escribirse as:
2/T
Hw(e
jT
)= T
2
H(e
jT
) W(ej()T) d
para 0 || c
/T c
- 52 -
H(ejT)
c /T
Si asimismo se considera que W(ejT) es real y tiene la forma dada en la siguiente figura,
y se asume que W(ejT) = 0, para m < || s/2.
W(ejT)
/T
/T
Esto representa un diagrama espectral ideal para una funcin de ventana ms adelante se
ver el espectro real.
Se puede demostrar que con W(ejT) tal como la anterior, la grfica de Hw(ejT) adoptara
una forma parecida a la siguiente:
Hw(ejT)
/T
/T
Si H(z) representa un filtro de retardo constante y se desea que Hw(z) tambin represente
un filtro de retardo constante de orden finito, entonces w(nT) deber satisfacer las
siguientes propiedades en el dominio del tiempo:
w(nT) = 0 para |n| > (N1)/2
Para N impar, w(nT) debe ser simtrica alrededor de n=0.
La siguiente figura muestra una tpica funcin de ventana:
1.0
w(nT)
N=11
nT
En la prctica, el espectro de una funcin de ventana w(nT) se aparta del espectro ideal
visto ms arriba, y adopta una forma como la que se ve en la prxima figura. la amplitud
del lbulo principal est dada por ks/N, donde k es una constante.
- 53 -
W(ejT)
ks / 2N
ks / 2N
El efecto que tienen los lbulos laterales del espectro de w(nT) es aumentar las
oscilaciones de Gibbs en la respuesta en amplitud del filtro. Para que el ripple en la
banda de paso sea pequeo, y la atenuacin en la banda de rechazo sea grande, el rea
encerrada por los lbulos laterales debe ser una pequea fraccin del rea encerrada por
el lbulo principal.
Por otra parte, la amplitud del lbulo principal determina la amplitud de la banda de
transicin del filtro resultante. Para lograr una alta selectividad, el valor de N (y por lo
tanto el orden del filtro) deber ser grande, mientras que el valor de k deber ser pequeo.
Las funciones de ventana ms frecuentemente usadas son:
Rectangular
von Hann (o Hanning)
Hamming
Blackman
Dolph-Chebyshev
Kaiser
8.3.1 Ventana Rectangular.
La ventana rectangular est dada por:
wR(NT) =
para |n| (N 1) / 2
WR(e
jT
)=
- 54 -
(von Hann)
(Hamming)
Puede observarse que los lbulos laterales de estas ventanas son ms reducidos
que los de la ventana rectangular, y por lo tanto el ripple es menor. Considerando
s=10 rad/s, el factor de ripple para estas ventanas es:
von Hann
Hamming
N=11
2.62
1.47
N=101
2.67
0.74
- 55 -
Como puede verse, se puede elegir el factor de ripple que se desea obtener y, al
igual que para otras ventanas, el valor de N determina el ancho del lbulo
principal.
Dos propiedades interesantes de la ventana de Dolph-Chebyshev son las
siguientes:
Para un dado valor de N, el ancho del lbulo principal es el menor que podra
obtenerse para una relacin de ripple dada. Esto implica que usando esta
ventana se obtienen filtros con una banda de transicin muy estrecha.
Todos los lbulos laterales tienen la misma amplitud. Esto implica que el error
de aproximacin tiende a distribuirse uniformemente con respecto a la
frecuencia.
8.3.5 Ventana de Kaiser.
La ventana de Kaiser, al igual que la anterior, tambin permite controlar
independientemente la relacin de ripple y el ancho del lbulo principal. La
ventana de Kaiser est dada por:
wK(nT) =
I0()
I0()
- 56 -
es un parmetro independiente
Donde:
1 (2n / (N1) )2
I0(x) = 1 + 1 x
k=1
k! 2
k 2
es la funcin de
Bessel
modificada de
orden cero del
primer tipo.
WK(e
jT
) = wK(0) + 2
wK(nT)
n=1
cos(nT)
I0()
I0()
para |t|
Donde:
=
1 ( t / )2
= (N 1) T
2
El espectro de wK(t) puede demostrarse que est dado por:
WK(j) =
2
I0()
sen ( 2 a2 )
2 a2
Donde: a = /
Si WK(j) 0 para || s / 2, el espectro de la seal muestreada wK(t), o equivalentemente el espectro de wK(nT) puede expresarse as:
para 0 || s / 2
N 1 sen( (/a)2 1 )
I0()
(/a)2 1
- 57 -
p a
El ripple en la banda de paso, en dB, est dado por: Ap = 20 log ((1+) / (1))
La mnima atenuacin en la banda de rechazo es: Aa = 20 log
El ancho de la banda de transicin es: Bt = a p
Para obtener los coeficientes de un filtro cuyo ripple en la banda de paso sea igual o
menor a A'p , su atenuacin en la banda de rechazo sea mayor o igual a A'a, y cuya banda
de transicin sea Bt, se pueden seguir los pasos siguientes:
(1) Determinar h(nT) usando la aproximacin por series de Fourier vista en 8.2,
asumiendo una respuesta en frecuencia ideal, es decir:
H(ejT) =
para || c
para c < || s
Donde : c = (p + a)
- 58 -
donde:
1 = 100,05 A'a
2 = 100,05 A'p 1
100,05 A'p + 1
0
0.5842(Aa 21)0,4 + 0.07886(Aa 21)
0.1102(Aa 8.7)
para Aa 21
para 21 < Aa 50
para Aa > 50
para Aa 21
para Aa > 21
D=
Donde: Hw(z) = Z
[ wk(nT) h(nT) ]
Ejemplo:
Disear un pasabajos FIR con las siguientes especificaciones:
Mximo ripple en la banda de paso, entre 0 y 1.5 rad/s : 0.1 dB
Mnima atenuacin en la banda de rechazo, entre 2.5 y 5 rad/s : 40 dB
Frecuencia de muestreo: 10 rad/s
(1) Del ejemplo dado en 8.2 obtenemos:
h(nT) =
1 sen(c nT)
n
1 = 100,05(40) = 0.01
2 = 100,05(0,1) 1 = 5.7564 x 103
100,05(0,1) + 1
(3)
(4)
(5)
(6)
N s D + 1 = ( 10 2.566 ) + 1 = 26.66 = 27
Bt
(2.5 1.5)
- 59 -
N=27
(7)
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
if( n==0 )
h[n] = 2*wc/Ws;
else
void main()
{
int k, n, N;
float a, b, d, d1, d2, D, A_a, wc=(Wp+Wa)/2;
float h[64], w[64];
}
//-----------------------------------------------------------------// Calcula Io(x), la funcin modificada de Bessel
// de orden cero, del primer tipo
//------------------------------------------------------------------
clrscr();
d1 = pow(10, -0.05*Aa);
d2 = (pow(10, 0.05*Ap) - 1) / (pow(10, 0.05*Ap) + 1);
d = min(d1,d2);
}
//----------------------------------// Calcula el factorial de n
//----------------------------------long fact( long n )
{
long x = 1;
while( n )
x *= n--;
return x;
}
Los resultados obtenidos de la ejecucin de este programa son los que se ven a
Mag. Guillermo Friedrich
- 60 -
continuacin:
Orden del
wk( 0T) =
wk( 1T) =
wk( 2T) =
wk( 3T) =
wk( 4T) =
wk( 5T) =
wk( 6T) =
wk( 7T) =
wk( 8T) =
wk( 9T) =
wk(10T) =
wk(11T) =
wk(12T) =
wk(13T) =
filtro:
1.000000
0.989963
0.960309
0.912385
0.848347
0.771029
0.683782
0.590272
0.494279
0.399484
0.309270
0.226556
0.153657
0.092193
N = 27
h( 0T)
h( 1T)
h( 2T)
h( 3T)
h( 4T)
h( 5T)
h( 6T)
h( 7T)
h( 8T)
h( 9T)
h(10T)
h(11T)
h(12T)
h(13T)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0.400000
0.302731
0.093549
-0.062366
-0.075683
-0.000000
0.050455
0.026728
-0.023387
-0.033637
-0.000000
0.027521
0.015591
-0.014392
- 61 -
h( 0T)wk( 0T)
h( 1T)wk( 1T)
h( 2T)wk( 2T)
h( 3T)wk( 3T)
h( 4T)wk( 4T)
h( 5T)wk( 5T)
h( 6T)wk( 6T)
h( 7T)wk( 7T)
h( 8T)wk( 8T)
h( 9T)wk( 9T)
h(10T)wk(10T)
h(11T)wk(11T)
h(12T)wk(12T)
h(13T)wk(13T)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0.400000
0.299692
0.089836
-0.056902
-0.064205
-0.000000
0.034500
0.015777
-0.011560
-0.013437
-0.000000
0.006235
0.002396
-0.001327
- 62 -