Está en la página 1de 66

Universidad Tecnolgica Nacional

Facultad Regional Baha Blanca

INTRODUCCION AL PROCESAMIENTO
DIGITAL DE SEALES

Ctedra: Tcnicas Digitales III


Profesor: Mag. Guillermo R. Friedrich

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

6. La transformada discreta de Fourier (DFT) ................................................ 35


6.1 Antitransformada discreta de Fourier (IDFT) ..................................... 35
6.2 Interrelacin entre DFT y transformada Z .......................................... 37
6.3 Teorema del muestreo en el dominio de la frecuencia ....................... 38
6.4 Aliasing en el dominio del tiempo ...................................................... 38
6.5 Interrelacin entre la transformada discreta de Fourier (DFT), y la
la transformada contnua de Fourier (CFT) ......................................... 39
7. Algoritmos para el clculo de la transformada rpida de Fourier (FFT) . 41
8. Diseo de filtros no recursivos (FIR) ............................................................ 45
8.1 Propiedades de los filtros no recursivos .............................................. 45
8.2 Diseo de filtros no recursivos usando Series de Fourier ................... 49
8.3 Uso de funciones de ventana ............................................................... 52
8.3.1 Ventana Rectangular ............................................................ 54
8.3.2 Ventanas de von Hann y de Hamming ................................. 55
8.3.3 Ventana de Blackman ........................................................... 55
8.3.4 Ventana de Dolph-Chebyshev .............................................. 56
8.3.5 Ventana de Kaiser ................................................................. 56
8.3.5.1 Un mtodo de diseo de filtros FIR basado
en la ventana de Kaiser .......................................... 58

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.

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Introduccin al Procesamiento Digital de Seales


Introduccin
El procesamiento de seales trata de la representacin, transformacin y manipulacin de seales
y de la informacin que contienen. Por ejemplo, podramos desear separar dos o ms seales
que se han combinado de alguna forma, o podramos querer realzar alguna componente de la
seal o algn parmetro de un modelo de seal. Este procesamiento se puede realizar mediante
teconologa analgica en tiempo contnuo, o como se ha ido difundiendo cada vez ms mediante
procesamiento en tiempo discreto mediante programas y procesadores.
Si las seales a tratar son analgicas, debern ser convertidas en una secuencia de muestras, a fin
de ser procesadas mediante algn algoritmo. Luego, de ser necesario sern vueltas a convertir en
seales analgicas. Un ejemplo de esto es el filtrado de seales de audio.
Es comn que se denomine a esta forma de procesamiento, indistintamente, como procesamiento
digital de seales o procesamiento de seales en tiempo discreto.
Una buena parte del procesamiento de seales involucra el proceso de una seal para obtener
otra seal: es el caso del filtrado digital.
Otra buena parte del procesamiento de seales comprende la interpretacin de seales. En este
caso no se intenta obtener una seal de salida, sino una caracterizacin de la seal de entrada. Un
ejemplo de este tipo de procesamiento es el reconocimiento de voz.
1. Filtros Digitales
Un filtro digital puede ser representado mediante el siguiente diagrama en bloques:
y(nT) = R x(nT)

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:

Mag. Guillermo Friedrich

-1-

x(nT) = y(nT) = 0

n < 0,

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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)

R x(nT kT) = 2 nT x(nT kT)


son distintos NO es Invariante en el Tiempo
y(nT kT) = 2 (nT kT) x(nT kT)

(b)

y(nT) = R x(nT) = 12 x(nT T) + 11 x(nT 2T)

R x(nT kT) = 12 x(nT kT T) + 11 x(nT kT 2T)


y(nT kT) = 12 x(nT kT T) + 11 x(nT kT 2T)

son iguales es Invariante


en el Tiempo

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:

Si el filtro es causal se debe cumplir 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:

R x1(kT) = 3 x1(kT 2T) + 3 x1(kT + 2T) =


= 3 x1( (k2)T ) + 3 x1( (k+2)T )

R x2(kT) = 3 x2( (k2)T ) + 3 x2( (k+2)T )

son distintos
NO Causal

(b) y(nT) = R x(nT) = 2 x(nT T) 3 x(nT 2T)


Si n k (n1) < k

y: (n2) < k

x1(nT T) = x2(nT T)

y:

Mag. Guillermo Friedrich

x1(nT 2T) = x2(nT 2T)


-2-

nk

Tcnicas Digitales III - UTN - FRBB

R x1(nT) = R x2(nT)

Procesamiento Digital de Seales

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

(b) y(nT) = R x(nT) = (nT)2 x(nT + 2T)

R [ x1(nT) + x2(nT) ]

= (nT)2 [ x1(nT + 2T) + x2(nT + 2T) ] =


= (nT)2 x1(nT + 2T) + (nT)2 x2(nT + 2T) =
= R x1(nT) + R x2(nT)

Es Lineal

1.2 Caracterizacin de Filtros Digitales


1.2.1 Filtros No Recursivos
Los filtros digitales no recursivos tambin se denominan "de Respuesta Finita al Impulso", y
tambin se los identifica con la sigla FIR (Finite Impulse Response).
La expresin general de un filtro FIR es la siguiente:

y(nT) = ai x(nT iT)


i =
Considerando que el filtro es causal tenemos que:

Mag. Guillermo Friedrich

-3-

a1 = a2 = .... = 0, por lo tanto:

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

y(nT) = ai x(nT iT)


i=0
Si adems se considera que se parte del reposo: x(nT) = 0

n<0

y si slo una cantidad finita de coeficientes es distinta de cero: ai = 0

i>N

Se llega a la siguiente expresin del filtro no recursivo:


N
y(nT) = ai x(nT iT)
i=0

Donde N: orden del filtro

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

y(nT) = ai x(nT iT) bi y(nT iT)


i=0
i=1

1.2.3 Redes de Filtrado Digital


La estructura de un filtro digital puede representarse grficamente mediante una red en la que se
combinan los siguientes elementos bsicos:
Retardo unitario:

x(nT)

y(nT)

Sumador:
x1(nT)

y(nT) = xi (nT)
i=1

xk(nT)

Mag. Guillermo Friedrich

-4-

y(nT) = x(nT T)

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Multiplicador:
m
x(nT)

Ejemplo:

y(nT)

y(nT) = m x(nT)

y(nT) = x(nT) + e y(nT T)


x(nT)

y(nT)

2. Introduccin al anlisis en el dominio del tiempo


Para analizar el comportamiento temporal de un filtro digital se considera que a la entrada se le
aplica una secuencia determinada. Para ello se utilizan una serie de funciones elementales, que
generan cada una de ellas distintas secuencias. Estas funciones son las siguientes:
1 n=0
Impulso unitario:

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

La respuesta temporal de un filtro digital se puede determinar resolviendo la correspondiente


ecuacin de diferencias.
Ejemplo (a):
Hallar la respuesta temporal al impulso de filtro digital cuya ecuacin de diferencias es:

y(nT) = x(nT) + e y(nT T)

Mag. Guillermo Friedrich

-5-

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Partiendo del reposo:

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

Las siguientes grficas representan la respuesta temporal del filtro en funcin de :


<0

=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

y(nT) = x(nT) + e y(nT T)

Para la entrada: x(nT) = u(nT) sen( nT)


y(nT) = R sen( nT) = R ( 1 e j nT 1 e j nT ) = 1
2j
2j
2j

e j nT 1 R e j nT =
2j

y(nT) = 1 y1(nT) 1 y2(nT)


2j
2j
Ahora resolvemos por separado cada una de las componentes de la salida.
y1(nT) = R ejnT
Partiendo del reposo:

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 :

Mag. Guillermo Friedrich

-6-

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

j nT

e ((n+1) j T)

y1(nT) =
1 e

( j T)

Si ahora consideramos la funcin: H(e

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)

() = arg H(e j T) = T arc tg

sen(T)
cos(T) e

y1(nT) = u(nT) M() e j( () + nT) e (n+1) +

j( () T)

Reemplazando por en y1(nT) se obtiene y2(nT)


y2(nT) = u(nT) M() e j( () nT) e (n+1) +
Como M() = M()

j( () + T)

() = () se puede llegar a:

y(nT) = 1 y1(nT) 1 y2(nT)


2j
2j
y(nT) = M() sen [ nT + () ] M() e(n+1) sen [ () T]
estacionario

transitorio

(tiende a 0 para n )

lm y(nT) = M() sen [ nT + () ]


n
Donde:

H(e j T) :
M() :
() :

respuesta en frecuencia
respuesta en amplitud
respuesta en fase

x(nT)
1-

y(nT)
M() -

nT

nT

1 -

Mag. Guillermo Friedrich

-7-

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

2.1 Sumatoria de Convolucin


La respuesta de un filtro digital a una excitacin arbitraria puede ser expresada en trminos de la
respuesta del filtro a una entrada impulsiva. Para ello se debe realizar la convolucin entre la
seal de entrada y la respuesta impulsiva.
Una seal de entrada x(nT) puede ser expresada de la siguiente forma:

x(nT) =

x(kT) si n=k

k=

xk (nT)

donde:

xk(nT) =

si nk

Tambin se podra expresar de la siguiente manera:


xk(nT) = x(kT) (nT kT)

Por lo tanto:

x(nT) =

x(kT) (nT kT)

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 su respuesta a una entrada arbitraria x(nT) sea:

y(nT) = R

(nT kT) =

x(kT) h(nT kT)

k=

n < 0, por lo tanto:

x(kT)

k=

Si el filtro es causal h(nT) = 0

y(nT) =

x(kT) (nT kT) =

k=

x(kT) h(nT kT) =

k=

h(kT) x(nT kT)

k=0

Si adems se considera que: x(nT) = 0


n < 0, la respuesta del filtro digital queda
expresada mediante la siguiente sumatoria de convolucin:
n

y(nT) =

k=0

x(kT) h(nT kT) =

h(kT) x(nT kT)

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-

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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

En un ejemplo anterior ya se ha hallado la respuesta de este filtro al escaln unitario,


entonces tenemos:
n

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

y(nT) = R u(nT) R u(nT 5T)


n5

R u(nT 5T) = R u( (n5)T ) =

1 e(n4)
1 e

n5
ek u( (n5)T kT ) =

k=0

n5

ek =

k=0

n<5

Finalmente, reuniendo ambos resultados en una sola expesin, llegamos a:


1 e(n+1)
1 e
y(nT) = R u(nT) R u(nT 5T) =

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:

Mag. Guillermo Friedrich

-9-

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

y(nT)

h(kT) . x(nT kT)

k=

El mdulo de una suma es menor o igual


que la suma de los mdulos; y adems
el mdulo de un producto es menor o
igual que el producto de los mdulos.

Si x(nT) M <

y(nT) M h(kT)
k=

Por lo tanto, si:

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

Por lo tanto, la condicin de estabilidad es:

Mag. Guillermo Friedrich

Es decir, si:
<0

- 10 -

e < 1

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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

Para cualquier z, tal que F(z) converge.


z : variable compleja
z=x+jy

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.

Por ejemplo, dado el siguiente diagrama de polos y ceros:


x
x
x
x
x

Se puede ver que hay tres regiones de convergencia: I, II y III


III
II
I x

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

Mag. Guillermo Friedrich

Z g(nT) = G(z), entonces:


- 11 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Z [ a f(nT) + b g(nT) ] = a F(z) + b G(z)


c) Translacin

Z f(nT + mT) = zm F(z)

d) Cambio de escala complejo:

Z [n f(nT) ] = F(z)

e) Diferenciacin compleja:
Z [ nT f(nT) ] = T z d F(z)
dz

Z f(kT) g(nT kT) = F(z) G(z)


k=

f) Convolucin Real:
o bien:

Z f(nT kT) g(nT) = F(z) G(z)


k=
3.2 Transformada Z unilateral
De manera anloga a la transformada de Laplace, la transformada Z unilateral es definida as:
F(z) =
Z ZI

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)

Z (nT) = (0) + (T) z1 + (2T) z2 + .......... = 1


1

Z u(nT) = u(0) + u(T) z + u(2T) z + .......... = 1 + z1 + z2 + ........ =

1 z1

z
=
z1

Z u(nT T) K = K z Z u(nT) =

(aplicando la propiedad de translacin)


z1

d) Z [ u(nT) K n ] = K Z [ (1/) u(nT) ] = K Z u(nT) =


z z/
n

Mag. Guillermo Friedrich

- 12 -

Kz
z

(se aplic la prop.


de cambio de
escala complejo)

Tcnicas Digitales III - UTN - FRBB

e) Z [ u(nT) e

nT

Procesamiento Digital de Seales

z
]=

(se parti del ejemplo anterior, y se hizo K=1 y = eT )

z eT

f) Z r(nT) = Z [ nT u(nT) ] = T z d [ Z u(nT) ] = Tz


(aplicando prop. de diferenc. compl.)
dz
(z1)2
g) Z [u(nT) sen(wnT)] = Z [ u(nT) ( ejnT ej nT )] =
2j
= 1 Z [ u(nT) ejnT ] 1 [ u(nT) ejnT ] =
2j
2j
Aplicando lo visto en el ejemplo (e), se llega al siguiente resultado:
Z [u(nT) sen(wnT)] = 1 [ z

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)

Si: F(z) zn1 = F0(z) =

N(z)

donde k y m son enteros positivos

k
mi
( zpi )
i=1

Aplicando el teorema del residuo se obtiene:


La notacin es la siguiente:

f(nt) =

f(nT) = res z=pi [Fo(z)]

Z1 F(z)

Ejemplos: Hallar la antitransformada Z de las siguientes F(z):


(a)

F(z) =

(2z 1) z
2 (z1) (z + 0.5)

f(nT) = resz=1 [ F(z) zn1 ] + resz=0,5 [ F(z) zn1 ] = (2z 1) zn + (2z 1) zn


2 (z + 0.5)
2(z 1)
z=1
z=0.5

Mag. Guillermo Friedrich

- 13 -

Tcnicas Digitales III - UTN - FRBB

f(nt) = 1 + 2 ( 1 )n
3
3
2

(b) F(z) =

1
2 (z1) (z + 0.5)

Procesamiento Digital de Seales

Como f(nT)=0 n<0 f(nT) = u(nT) [ 1 + 2 ( 1 )n ]


3
3
2

Fo(z) = F(z) zn1 =

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

3.4 Otras maneras de hallar la antitransformada Z


Expansin Binomial
F(z) =

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

Mag. Guillermo Friedrich

- 14 -

Es apta para F(z) con un solo polo.

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Fracciones Parciales
k

Si una transformada Z se expresa de la siguiente manera:

F(z) = Fi (z)
i=1

Entonces, la antitransformada Z se puede hallar as:


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

f(kT) g(nT kT)

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

u(kT) u(nT T kT) =

k=
y(nT) = u(0) u(nT T) + u(T) u(nT 2T) + ....... = 1 + 1 + 1 +..... = n
y(nT) = n u(n)

Mag. Guillermo Friedrich

- 15 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Convolucin Compleja
La convolucin compleja permite encontrar la transformada Z del producto de dos
funciones en el dominio del tiempo.

Si: Z f(nT) = F(z) = f(nT) zn


n=

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

Por lo tanto: Y(z) =

f(nT)

n=

Y(z) =

Y(z) =

Y(z) = Z [ f(nT) g(nT) ] =

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

Donde: 1 (o 2 ) es un contorno en la regin comn de convergencia de F(z) y G(z/v)


de F(z) y G(z/v) ( o de F(z/v) y G(z) ).
Ejemplo: Hallar la transformada Z de
Sean:

f(nT) = u(nT) enT

F(z) =

z
z eT

F(z/v) =

Y(z) =

y(nT) = u(nT) enT sen T

g(nT) = u(nT) sen T


G(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

Mag. Guillermo Friedrich

v sen T________
(v ejT) (v ejT)

F(z/v) y G(z) convergen en:

- 16 -

|v| < zeT


|v| > 1

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

3.5 Aplicacin de la transformada Z


Usando la transformada Z, un filtro digital puede ser caracterizado mediante una funcin
transferencia discreta en el tiempo, que juega el mismo rol que la funcin transferencia contnua
en el tiempo para un filtro analgico.
Considerando un filtro digital lineal e invariante en el tiempo, tal como el siguiente:

y(nT) =

Z y(nT) = Z h(nT) . Z x(nT)

x(kT) h(nT kT)

Y(z) = H(z) . X(z)

k=
3.5.1 Obtencin de H(z)
Para un filtro digital causal y recursivo tenemos:
N

y(nT) = ai x(nT iT) bi y(nT iT)


i=0
i=1
Por lo tanto:
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

Como H(z) = Y(z)


X(z)

ai z

Ho

i=0

H(z) = Y(z) =

( z zi )
i=0

= .... factoreando ...=


N
1+

N
bi z

( z pi )

i=1

i=1
Donde: zi son los ceros y pi son los polos

Mag. Guillermo Friedrich

- 17 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Ejemplo: Hallar la funcin transferencia discreta del siguiente filtro:


U(z)
X(z)

Y(z)

Los tres elementos bsicos son:


sumador:

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)

retardo: y(nT) = x(nT T)


T

x(nT)
U(z) = X(z) + z1 U(z) z2 U(z)

U(z) =

X(z)_______
1 z1 + z2

Y(z) = U(z) + z1 U(z) = (1 + z1) U(z)

(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

los polos son:

p1 = + j 3_
4
p2 = j 3_
4

Como p1< 1

Mag. Guillermo Friedrich

p2< 1

El filtro es estable

- 18 -

x
x

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

3.5.2 Criterio de Estabilidad de Jury


Si expresamos la funcin transferencia discreta de un filtro de la siguiente manera:
N

H(z) =

N(z)
D(z)

Donde: D(z) = bi z N i
i=0

( se asume b0 > 0 )

Y se construye un arreglo como el siguiente:


Fila
1
2
3
4
5
6
:
:
2N3

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

Verificando: (a) D(1) = 4 + 3 + 2 + 1 + 1 = 11 > 0

1
2

4
1

3
1

2
2

1
3

3
4

15
1

11
6

6
11

1
15

224

159

79

(b) (1)4 D(1) = 4 3 + 2 1 + 1 = 3 > 0


(c) r0=224

Mag. Guillermo Friedrich

> r2=79

- 19 -

El filtro es estable.

1
4

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

3.5.3 Anlisis en el dominio del tiempo


Si se desea obtener la respuesta temporal de un filtro digital caracterizado por una funcin
transferencia discreta H(z), ante una cierta excitacin X(z), se hace lo siguiente:
y(nT) = Z1 [ H(z) X(z) ]
Ejemplo:
Hallar la respuesta temporal al escaln unitario del siguiente filtro digital:
X(z)

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)

Y(z) = H(z) X(z) =

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) = Z1 [ H(z) X(z) ] = 2 u(nT) +

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

Mag. Guillermo Friedrich

- 20 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

3.5.4 Anlisis en el dominio de la frecuencia


La respuesta estacionaria de un filtro analgico cuya funcin transferencia es H(s) , se calcula de
la siguiente manera:
lm y(t) = lm R u(t) sen( t) = M() sen[ T + (t) ]
t
t
Donde:
M() = H(j) : ganancia
() = arg H(j) : desplazamiento de fase
Si consideramos un filtro digital de orden N, la respuesta a una excitacin senoidal es:
donde: X(z) = Z [ u(nT) sen(nT) ] =

y(nT) = Z1 [ H(z) X(z) ]


O sea:
y(nT) =

H(z) X(z) z

n1

z sen(nT)___
(zejT)(zejT)

dz = res [ H(z) X(z) zn1 ]

Para n > 0 tenemos:


N

y(nT) =

res [ H(z)] x(pi) pin1 + 1 [ H(ejT) ejnT H(ejT) ejT ]


i=1 z=pi
2j
Como pi<1 , este trmino
tiende a cero para n

Por lo tanto:
Como:

y(nT) 1 [ H(ejT) ejnT H(ejT) ejT ]


2j

H(ejT) = H*(ejT)

y si: H(ejT) = M() ej()


Donde: M() = H(ejT) y () = arg H(ejT)

y(nT) = M() sen[nT + ()]


jziT

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

Mag. Guillermo Friedrich

- 21 -

Tcnicas Digitales III - UTN - FRBB

As obtenemos:

Procesamiento Digital de Seales

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)

Una vuelta completa alrededor del


origen corresponde a un incremento
de frecuencia de S = 2
T
Donde S : frecuencia de muestreo

H(ejT) es peridica con perodo S

A los fines prcticos se trabaja con un perodo S , S llamado banda base.


Ejemplo:
Hallar la respuesta en frecuencia en fase y amplitud para el siguiente filtro,
considerando: S = 2 [rad/seg]
( A0 = 0.4 A1 = 0.303 y A2 = 0.0935 ).
H(z) = A2 z2 + A1 z + A0 + A1 z1 + A2 z2
z2
H(ejT) = A2 ( ej2T + ej2T ) + A1 ( ejT + ejT ) + A0 =
ej2T
H(ejT) = 2 A2 cos(2T ) + 2 A1 cos(T) + A0
ej2T

M() = H(ejT) = 2 A2 cos(2T ) + 2 A1 cos(T) + A0


() = N 2T

Mag. Guillermo Friedrich

donde: N =

0 si (2 A2 cos(2T ) + 2 A1 cos(T) + A0 ) > 0


para otro caso

- 22 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

4. Aproximaciones de filtros analgicos


Un filtro digital recursivo se puede aproximar usando alguna de las siguientes aproximaciones de
filtros analgicos:
- Butterworth
- Tschebyscheff
- Elipticos
- Bessel
4.1 Conceptos Bsicos
La funcin transferencia de un filtro analgico se puede expresar como: V0(s) = H(s) = N(s)
Vi(s)
D(s)
Donde: N(s) y D(s) son polinomios en funcin de s = + j
Atenuacin en dB: A() = 20 log Vi(j) = 20 log 1
Vo(j)
H(j)
Donde: L( 2) =

= 10 log L( 2)

1_______
H(j) H(j)

Desplazamiento de fase: (j) = arg H(j)


Retardo de grupo: = d(j)
d
De aqu surgen las curvas caractersticas de Atenuacin, Fase y Retardo en funcion de .
Con = s
j

hacemos: L(s2) = D(s) D(s)


N(s) N(s)

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

Mag. Guillermo Friedrich

- 23 -

L(s2)

Tcnicas Digitales III - UTN - FRBB

tal que:

lm L(2) = 1
2

Procesamiento Digital de Seales

Bo = 1

L(0) = 1

Se puede llegar a que B1 = B2 = ..... = Bn = 0

L(2) = 1 + Bn 2n

Como para un pasabajos normalizado: A() = 3dB a


Bn = 1

= 1 [rad/seg]

L(2) = 1 + 2n

La atenuacin de un pasabajos Butterworth normalizado es: A() = 10 log(1+2n) , y en la


siguiente figura se presentan las curvas de atenuacin en funcin de n (orden del filtro).

n=9

n=6

n=3

4.2.1 Funcin Transferencia Normalizada


2n
Con = s tenemos: L(s2) = 1 + (s2)n = (s sk)
j
k=1
donde:

sk = e j(2k1)
sk = e j(k1)

/ 2n
/n

para n par
para n impar

Como | sk | = 1 , los ceros de L(s2) estn en el crculo |s| = 1.


La funcin transferencia normalizada puede ser expresada como:
1
HN(s) =

donde: pi son los ceros de L(s2) en el semiplano izquierdo.

(s pi)
i=1

Mag. Guillermo Friedrich

- 24 -

Tcnicas Digitales III - UTN - FRBB

Ejemplo:

hallar HN(s) para:

Procesamiento Digital de Seales

(a) n=2

(b) n=3

(a) n = 2 (par) sk = e j(2k1) / 2n sk = e j(2k1) / 4


s1 = e j / 4

(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

(b) n = 3 (impar) sk = e j(k1) / n sk = e j(k1) / 3 = cos (k1) + j sen (k1)


3
3

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

4.3 Otras aproximaciones de filtros analgicos


Adems de la aproximacin de Butterworth, existen otras aproximaciones para filtros analgicos,
de las cuales las siguientes son las ms conocidas.
Aproximacin de Tschebyscheff
La atenuacin en la banda de paso oscila entre 0 y un mximo permitido
La atenuacin en la banda de rechazo aumenta monotnicamente.

Mag. Guillermo Friedrich

- 25 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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:

Mag. Guillermo Friedrich

- 26 -

Tcnicas Digitales III - UTN - FRBB

x(t)

x~(t)

FPB

Procesamiento Digital de Seales

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:

Mtodo de la respuesta invariante al impulso


Variante del anterior
Transformada Z asociada
Transformacin Bilineal es la ms comn.

5. Aproximacin por filtros recursivos


Al igual que para los filtros analgicos, la etapa de aproximacin es el proceso a travs del cual
se obtiene una funcin transferencia que satisfaga los requerimientos.
Los filtros digitales recursivos pueden obtenerse a partir de aproximaciones de filtros analgicos,
mediante alguno de los mtodos recin mencionados.
5.1 Realizabilidad
A fin de poder ser implementada mediante un filtro recursivo, una funcin transferencia debe
satisfacer las siguientes condiciones:
1) Debe ser una funcin real de z con coeficientes reales.
2) Sus polos deben estar dentro del crculo unidad en el plano Z.
3) El grado del polinomio del numerador debe ser de grado menor o igual al grado del
polinomio del denominador.
5.2 Mtodo de la Transformacin Bilineal
El objetivo de la transformacin Bilineal es lograr un filtro digital cuya respuesta temporal sea
similar a la respuesta temporal del filtro analgico de origen, ante cualquier excitacin.
N

Se parte de la funcin transferencia analgica:

ai sNi

HA(s) = i=0
N

s + bi sNi
N

Mag. Guillermo Friedrich

- 27 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Y se obtiene HD(z) mediante el siguiente reemplazo:


Es decir:

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

Y su respuesta temporal ante cualquier excitacin ser: y(t) =

x() h (t) d
I

0
x()

t1

t2

Considerando: 0+ < t1 < t2, podemos escribir:


t1

y(t2) y(t1) =

x() h (t) d
I

t2

x() h (t) d
I

Como para 0+ < < t1 , t2 hI(t1) = hI(t2) = 1

t2

y(t2) y(t1) =

x() h (t) d
I

t1
Si t1 t2

y(t2) y(t1) t2 t1 [ x(t1) + x(t2) ]


2

haciendo t1 = nT T , t2 = nT

y(nT) y(nTT) = T [ x(nTT) + x(NT) ]


Y(z) z1Y(z) = T [ z1 X(z) + X(z) ]

Mag. Guillermo Friedrich

- 28 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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

Aplicando la transformacin Bilineal: s = 2 (z1)


T (z+1)
HD(z) =

3_________
(+1)(2 + 1 + 2)

y luego de realizar los pasos


algebricos correspondientes, se
llega a la siguiente expresin:

0.112958 (z + 1) (z2 + 2z + 1)______


(z 0.318993 z + 0.346114) (z 0,120198)
2

Finalmente, una posible realizacin de este filtro es la siguiente:


0.112958
x(nT)

0.120198

0.3118993

0.346114

Mag. Guillermo Friedrich

- 29 -

y(nT)

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

5.3 Realizacin de un filtro digital


1. Realizacin Directa
N

Y(z) = H(z) = N(z) = N(z)__


X(z)
D(z) 1 + D'(z)

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

Mag. Guillermo Friedrich

- 30 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Filtro completo: X(z)

Y(z)
T

a0

a1

b1

a2

b2

2. Realizacin Directa Cannica


Minimiza la cantidad de retardos: la cantidad de retardos es igual al orden del
filtro.
Y(z) = H(z) = N(z) = N(z)__
X(z)
D(z) 1 + D'(z)
Donde: Y'(z) =

X(z)
1 + D'(z)

Se puede expresar como: Y(z) = N(z) Y'(z)

Y'(z) = [ 1 + D'(z) ] = X(z)


Y'(z) = X(z) Y'(z) D'(z)
X(z)

Y'(z)
D'(z)

Y(z) = N(z) Y'(z)

X(z)

N(z)

D'(z)

Volviendo al ejemplo anterior:

Mag. Guillermo Friedrich

- 31 -

Y'(z)

Tcnicas Digitales III - UTN - FRBB

X(z)

Procesamiento Digital de Seales

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

Mag. Guillermo Friedrich

- 32 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

5.4 Propiedades de mapeo de la transformacin bilineal


La transformacin bilineal tiene como objetivo que el filtro digital obtenido tenga la misma
respuesta temporal que el filtro analgico de origen.
Por otra parte, puede haber diferencias entre la respuesta en frecuencia del filtro digital y la del
filtro analgico de origen. Esto es lo que se analiza a continuacin.
s = 2 (z1)
T (z+1)

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

La transformacin bilineal mapea:


El semiplano derecho del plano s en la regin |z| > 1
El eje j en la circunferencia |z| = 1
El semiplano izquierdo del plano s en la regin |z| < 1
Si = 0

r=1

= 2 arc tg (T / 2)

si = 0
si +
si

El efecto "warping" (distorsin de frecuencia)


Si : frecuencia en el filtro analgico,
y : frecuencia en el filtro digital
HD(ejT) = HA(j)
Del anlisis anterior obtuvimos que:

Mag. Guillermo Friedrich

= 2 arc tg (T / 2)

- 33 -

=0
+

Tcnicas Digitales III - UTN - FRBB

Como = T

Procesamiento Digital de Seales

= 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

Esta correccin se denomina "prewarping".


A continuacin se trata de obtener la funcin transferencia del filtro digital:
HN (s) =

1
2
(s+1) (s + s + 1)

Si =

1
2 2546,48

HPB() =

Aplicando la transformacin Bilineal: s = 2 (z1)


T (z+1)
HD(z) =

3__________
(+1)(2 + 1 + 2)

y luego de realizar los pasos


algebricos correspondientes, se
llega a la siguiente expresin:

0.166667 (z + 1) (z2 + 2z + 1) _ = 0.166667 (1 + z1) (1 + 2 z1 + z2 )


z (z2 + 0.333333)
( 1 + 0.333333 z2 )

Una posible realizacin de este filtro es la siguiente:


0.166667
x(nT)

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 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

6. La transformada discreta de Fourier (DFT)


Dada una seal x(nT) real, discreta en el tiempo y de duracin finita, puede formarse una seal
peridica, con perodo NT, xp(nT), de la siguiente manera:

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

Xp(jk) = xp(nT) Wkn = D xp(nT)


n=0

donde:

= s / N
s = 2 / T

En general Xp(jk) es complejo, y puede expresarse de la siguiente forma:


Xp(jk) = A(k) e j( k )

donde: A(k) = |Xp(jk)|


espectro de amplitud
(k) = arg Xp(jk) espectro de fase

6.1 Antitransformada discreta de Fourier (IDFT)


xp(nT) se denomina "antitransformada discreta de Fourier" de Xp(jk), y est dada por la
siguiente expresin:
N1

xp(nT) = 1 Xp(jk) W kn = D1 Xp(jk)


N k=0
Demostracin:
N1

1 Xp(jk) W
N k=0

Mag. Guillermo Friedrich

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

Tcnicas Digitales III - UTN - FRBB

N si m=n

N1

Como:

Procesamiento Digital de Seales

W k(nm)

k=0

N1

1 Xp(jk) W
N k=0

para otro caso

N1

kn

N1

= 1 xp(mT) W k(nm) = xp(nT)


N m=0
k=0

Ejemplo: calcular la DFT para la siguiente seal:

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

serie geomtrica de trminos finitos


Xp(jk) = e j 4/5 sen (k/2)_
sen (k/10)
Los siguientes graficos representan xp(nT) y A(k)
xp(nT)

A(k)

5
nT

10T

10

20

La siguiente tabla muestra los valores de A(k), para 0 k 9, correspondientes al


grfico anterior.
k
A(k)

0
5

Mag. Guillermo Friedrich

1
2
3.236 0

3
4
1,236 0

- 36 -

5
1

6
0

7
8
1.236 0

9
3.236

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

6.2 Interrelacin entre DFT y transformada Z


La DFT de xp(nT) puede derivarse de la transformada Z, tal como se ve a continuacin:

N1

Xp(jk) = x(nT + rNT) W


n=0 r =

kn

N1

x(nT + rNT) Wkn

r = n=0

Haciendo n = m rN obtenemos la siguiente expresin:

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

x(mT) Wkm + ..... =

m=N

Xp(jk) = x(mT) Wkm


m =
Reemplazando W=e j2/N

y m por n obtenemos la siguiente expresin:

Xp(jk) =

x(nT) ejk nT = XD (ejk T )

n =
Xp(jk) = XD (ejk T )

XD (z) = x(nT)

La DFT de x(nT) es numricamente igual a la transformada


Z de x(nT) muestreada en el
crculo |z| = 1.
3

Ejemplo:

N=12

2
plano Z

1
kT

0
7

11
8

10
9

Mag. Guillermo Friedrich

- 37 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

6.3 Teorema del muestreo en el dominio de la frecuencia


El teorema del muestreo en el dominio de la frecuencia es anlogo al teorema del muestreo en el
dominio del tiempo, el cual dice que si x(t) es tal que X(j) = 0 para || s/2, donde s= 2/T,
entonces: x(t) puede obtenerse a partir de x(nT).
El teorema del muestreo en el dominio de la frecuencia dice que una transformada Z XD(z) para
la cual:
x(nT) = Z1 XD(z) = 0
para n N y para n<0
puede ser determinada a partir de los valores de XD(ejkT),

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,

xp(nT) y Xp(jk) pueden obtenerse a partir de x(nT) y XD(z).

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:

Mag. Guillermo Friedrich

- 38 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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)

x(nT + rNT) = 1 X(jk + jrs)


r =
T r =

Si

x(t) = 0

(*)

para t < 0 y para t NT


las sumatorias anteriores (*) se hacen peridicas

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

para |k| < s_


2

X(j)

para t < 0 o para t NT

xp(nT) ya no es una representacin peridica de x(nT), por lo tanto la DFT de xp(nT) no


es una representacin precisa de x(t).
Sin embargo, si la banda de frecuencias est limitada, se puede aplicar una ventana
temporal w(t), y obtenemos x'(t) una versin truncada de x(t):

Mag. Guillermo Friedrich

- 39 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

w(t) = 0 para t < 0 y para t NT

x'(t) = w(t) . x(t)


Se puede demostrar que X'(j) X(j) para

|| < s / 2,

y como x'(t) x(t) para t < 0 y para t NT


entonces, la DFT de x'(nT) es una representacin aproximada de x(t), en el dominio de la
frecuencia.
Las pautas para seleccionar el tipo de ventana w(t) y el valor de N pueden verse en el
cap. 9.4 del libro "Digital Filters" de Antoniou, 2 edicin.
El valor de T (= 2/s) debe elegirse de modo tal que la expresin X(j)=0 || s/2,
se satisfaga lo mejor posible.
La tcnica recin descripta tambin puede ser usada para obtener la representacin
aproximada mediante DFT de seales discretas en el tiempo tales que:
x(nT) 0 para n < 0 o para n N

Mag. Guillermo Friedrich

- 40 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

7. Algoritmos para el clculo de la transformada rpida de Fourier (FFT)


Uno de los algoritmos existentes para el clculo de la transformada rpida de Fourier est
basado en la tcnica de decimacin en el tiempo.
Partiendo de la transformada discreta de Fourier que se desea obtener:
N1

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)

Lo anterior se puede expresar de esta otra forma:


N/21

X(k) =

N/21

x10(n) WN

n=0

2kn

+ x11(n) WN 2kn
n=0

donde: x10(n) = x(2n)


x11(n) = x(2n+1)
para 0 n N / 2 1

y como: WN 2kn = WN / 2kn


N/21

X(k) =

x10(n) WN/2

N/21
kn

+ WN

n=0

X(k) = X10(k) + WNk X11(k)

x11(n) WN/2 kn = X10(k) + WNk X11(k)


n=0

Como X10(k) y X11(k) son peridicas con perodo N/2:


X(k+N/2) = X10(k+N/2) + WN(k+N/2)X11(k+N/2)

X(k+N/2) = X10(k) WNk X11(k)

Las ecuaciones y | pueden representarse mediante el siguiente grfico,


denominado "mariposa"

Mag. Guillermo Friedrich

- 41 -

Tcnicas Digitales III - UTN - FRBB

X10(k)

Procesamiento Digital de Seales

X(k)
1

1
Wk 1

X11(k)

X(k+N/2)

O tambin se puede utilizar el siguiente diagrama simplificado:


X10(k)

X(k)
k

X11(k)

X(k+N/2)

N/21

A su vez: X10(k) =

x(n) WN/2kn

tambin puede dividirse en dos sumatorias:

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

Que puede expresarse como:


X10(k) = X20(k) + WN 2k X21(k)
Por su parte, puede hacerse un anlisis similar a partir de X11(k), llegando a la
siguiente expresin:
X11(k) = X22(k) + WN 2k X23(k)
donde: x22(n) = x11(2n) y x23(n)=x11(2n+1)

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:

Mag. Guillermo Friedrich

- 42 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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

Mag. Guillermo Friedrich

- 43 -

para 0 n N/21

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Consecuentemente obtenemos los siguientes valores:


x20 = { x(0), x(4) }
x21 = { x(2), x(6) }
x22 = { x(1), x(5) }
x23 = { x(3), x(7) }
Finalmente:
x30 = { x(0) }
x31 = { x(4) }
x32 = { x(2) }
x33 = { x(6) }
x34 = { x(1) }
x35 = { x(5) }
x36 = { x(3) }
x37 = { x(7) }
El algoritmo queda expresado mediante el siguiente diagrama de "mariposas":
X3i(k)

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

Mag. Guillermo Friedrich

- 44 -

de
de
de
de

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

8. Diseo de filtros no recursivos (FIR)


Los filtros recursivos (IIR) que se han considerado anteriormente permiten obtener filtros de alta
selectividad y sencillez computacional. Sin embargo, es muy dificil disear un filtro digital
recursivo que tenga alta selectividad y al mismo tiempo un retardo de grupo constante. Mediante
la aproximacin de Bessel y la transformacin invariante al impulso se puede obtener un filtro
recursivo con retardo de grupo constante, pero esto solamente permite obtener filtros pasabajos o
pasabanda de baja selectividad.
Por el contrario, los filtros no recursivos se pueden disear fcilmente para que tengan un retardo
de grupo constante, al mismo tiempo que se puede lograr una gran variedad de respuestas en
frecuencia.
Hay diferentes mtodos para resolver la aproximacin de filtros no recursivos. El mtodo que se
va a considerar est basado en series de Fourier. Otro mtodo est basado en el uso de la DFT (o
FFT), y otra posibilidad es utilizar el algoritmo de intercambio de Remez. Este ltimo mtodo
permite lograr soluciones ptimas, es decir, un filtro con el mnimo orden posible. La desventaja
del algoritmo de intercambio de Remez es la complejidad y volumen de clculos necesarios para
efectuar el diseo.
8.1 Propiedades de los filtros no recursivos
Filtros de retardo constante.
Un filtro causal no recursivo puede ser caracterizado mediante la siguiente funcin
transferencia:
N1

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)

Los retardos de fase y de grupo estn dados respectivamente por:


p = ()

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:

Mag. Guillermo Friedrich

- 45 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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

Luego, se puede llegar a:


N1

h(nT) ( cos nT

n=0

sen sen nT cos ) = 0

Y finalmente, la expresin anterior es equivalente a la siguiente:


N1

h(nT)

n=0

sen( nT ) = 0

Puede demostrarse que la solucin a esta expresin es:


= (N 1) T
2

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

Mag. Guillermo Friedrich

N=11

1.0

- 46 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

En algunas aplicaciones solamente es necesario que el retardo de grupo sea constante, en


cuyo caso la respuesta de fase puede ser de la forma:
() = 0
(donde 0 : constante)
Usando el mismo procedimiento anterior, se puede obtener una segunda clase de filtros no
recursivos. Si 0 = /2, la solucin es:
= (N 1) T
2

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

Usando la ecuacin y haciendo N 1 n = m, m=n, la ltima sumatoria en la ecuacin


anterior puede ser expresada as:
N1

N1

h(nT) e

jnT

n=(N+1)/2

(N3)/2

h[(N1n)T] e

jnT

n=(N+1)/2

n=0

h(nT) ej(N1 n)T

Por lo tanto, de y podemos llegar a la siguiente expresin de la respuesta en frecuencia:


(N3)/2

H(e

jT

)= e

j(N1)T/2

h { [ (N1)T ] +
2

n=0

2h(nT) cos[ (N1 n) T ] }


2

Por ltimo, si hacemos (N1)/2 n = k, llegamos a:


(N1)/2

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.

Mag. Guillermo Friedrich

- 47 -

Tcnicas Digitales III - UTN - FRBB

h(nT)

Procesamiento Digital de Seales

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

Ubicacin de los Ceros


Las condiciones impuestas a la respuesta impulsiva por las ecuaciones y , imponen
ciertas restricciones a los ceros de H(z). Para N impar tenemos:
(N3)/2

H(z) =

(N1)/2

n=0

h(nT) ( z(N1)/2n z[ (N1)/2n] ) + h[ (N1)T ] ( z0 z0 )


2
Donde: el signo negativo se aplica al caso de
respuesta impulsiva antisimtrica.

Considerando (N1)/2 n = k , podemos escribir la expresin anterior de la siguiente forma:


(N1)/2

H(z) = N(z) =
1
(N1)/2
D(z)
z

n=0

ak ( zk zk )

Los ceros de H(z) son las raices de N(z), dado por:


(N1)/2

N(z) =

k=0

ak ( zk zk )

Si z es reemplazada por z1, tenemos:

Mag. Guillermo Friedrich

- 48 -

Donde: a0 y ak estn dados por


las ecuaciones y .

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

(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

8.2 Diseo de filtros no recursivos usando Series de Fourier.


Como la respuesta en frecuencia de un filtro no recursivo es una funcin peridica de
con perodo s, puede ser expresada como una serie de Fourier. Podemos escribir:

H(e

jT

)=

Mag. Guillermo Friedrich

n=

s/2

h(nT) e

jnT

Donde: h(nT) = 1
s

- 49 -

H(ejT) ejnT d

s/2

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

Si consideramos z = ejT obtenemos:

H(z) =

n=

h(nT) zn

De la expresin analtica de la respuesta en frecuencia es fcil llegar a una expresin de la


funcin transferencia. Sin embargo, esta funcin transferencia es no causal y de orden
infinito. Para obtener un filtro de orden finito, la serie planteada puede ser truncada
haciendo:
h(nT) = 0
Para |n| > N 1
2
En cuyo caso llegamos a la siguiente expresin:
(N1)/2

H(z) = h(0) +

n=1

[h(nT) zn + h(nT) zn]

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)

Si consideramos los siguientes valores: N=7, c=2 rad/s y s=10 rad/s, la


funcin transferencia del filtro sera:

Mag. Guillermo Friedrich

- 50 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

H(z) = z

H(z) = z

[ h(0) +
n=1

h(nT) (zn + zn) ]

[ 0.4 +

n=1

1 sen(2n) (zn + zn) ]


n
5

Y finalmente obtenemos la siguiente funcin transferencia:


H(z) = 0.0624 + 0.0935 z1 + 0.3027 z2 + 0.4 z3 + 0.3027 z4 + 0.0935 z5 0.0624 z6
Oscilaciones de Gibbs
En las figuras siguientes se muestra la respuesta en amplitud para un filtro con los
requerimientos planteados en el ejemplo anterior (c=2 rad/s y s=10 rad/s), y
considerando N=11, N=21 y N=31. Se pueden observar oscilaciones en la banda
de paso y en la banda de rechazo, debidas a la lenta convergencia de las series de
Fourier, las cuales son causadas por la discontinuidad existente entre la banda de
paso y la banda de rechazo. A medida que N aumenta, aumenta tambin la
frecuencia de las oscilaciones. Asimismo, puede verse que al aumentar N
disminuye la amplitud de las oscilaciones, excepto la ltima de la banda de paso y
la primera de la banda de rechazo, que tienden a mantenerse virtualmente sin
cambio.

N=11

N=21

N=31

Una forma rudimentaria de evitar las discontinuidades en la respuesta en


frecuencia puede ser introducir una banda de transicin. Por ejemplo, el
pasabajos considerado en el ejemplo anterior podra ser redefinido as:

Mag. Guillermo Friedrich

- 51 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

H(ejT)

para || p

( a) / (a p)

para p < || < a

para a < || s /2

8.3 Uso de funciones de ventana.


Una tcnica alternativa y de fcil aplicacin para reducir las oscilaciones de Gibbs
consiste en preacondicionar h(nT) usando una clase de funciones en el dominio del
tiempo conocidas como funciones de ventana.
Sean:

H(z) = Z h(nT) = h(nT) zn


n=

W(z) = Z w(nT) = w(nT) zn


n=

Hw(z) = Z[w(nT) h(nT)] = h(nT) zn


n=

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

Donde : contorno en la la regin


comn de convergencia de
H(v) y W(z/v).

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

Si a los fines de esta explicacin consideramos:


H(ejT) =

para 0 || c

para c < || s/2

/T c

Mag. Guillermo Friedrich

- 52 -

H(ejT)

c /T

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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.

Mag. Guillermo Friedrich

- 53 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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

para otros valores de |n|

El espectro de wR(NT) puede calcularse de la siguiente forma:


(N1)/2

WR(e

Mag. Guillermo Friedrich

jT

)=

ejnT = sen (NT / 2)


n=(N1)/2
sen (T / 2)

- 54 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

El ancho del lbulo principal es igual a 2s/N.


Puede calcularse una relacin de ripple, r, que nos da una idea de la amplitud que
tendrn las oscilaciones debidas al efecto Gibbs:
r = mxima amplitud de un lbulo lateral . 100 %
amplitud del lbulo principal
Para N=11, r = 22.34, mientras que si N=101, r se reduce a 21.70.
8.3.2 Ventanas de von Hann y de Hamming.
Las ventanas de von Hann y de Hamming estn dadas por:
+ (1) cos(2n / (N1))
wH(nT) =

para |n| (N1) / 2

para los dems casos


= 0.5
= 0.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

El ancho del lbulo principal puede demostrarse que es aproximadamente igual a


4s/N.
8.3.3 Ventana de Blackman.
La ventana de Blackman es similar a la anterior, y est dada por la siguiente
expresin:
0.42 + 0.5 cos(2n/(N1)) + 0.08 cos(4n/(N1))) para |n| (N1)/2
wB(nT) =

en los dems casos.

El trmino coseno adicional produce una reduccin adicional en la amplitud de las


oscilaciones por efecto Gibbs. El factor de ripple, considerando s=10 rad/s es de
0.08 para N=11, y de 0.12 para N=101.
Por su parte, el ancho del lbulo principal se ve incrementado a 6 s / N.

Mag. Guillermo Friedrich

- 55 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

8.3.4 Ventana de Dolph-Chebyshev.


Como pudo observarse, las ventanas anteriores dan lugar a un ripple que es
prcticamente independiente del valor de N, y por lo tanto la aplicacin de tales
ventanas es limitada.
Una ventana ms verstil es la de Dolph-Chebyshev, y est dada por la siguiente
frmula:
(N1)/2

wDC(nT) = 1 1 + 2 TN1 x0 cos(i/N) cos(2n i/N)


i=1
N r
para:
n = 0, 1, 2, ..., (N1)/2
donde: r : relacin de ripple deseada (expresada como fraccin)
x0 = cosh( 1/(N1) cosh1(1/r) )
Tk(x) : k-simo polinomio de Chebyshev asociado con la
aproximacin para filtros recursivos, y dado por:
cos(k cos1 x) para |x| 1
Tk(x) =

cosh(k cosh1 x) para |x| > 1

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

Mag. Guillermo Friedrich

I0()
I0()

para |n| (N1)/2

en los dems casos

- 56 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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.

El espectro de wK(nT) est dado por:


(N1)/2

WK(e

jT

) = wK(0) + 2

wK(nT)

n=1

cos(nT)

La ventana de Kaiser para tiempo contnuo es:


wK(t) =

I0()
I0()

para |t|

en los dems casos

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:

WK(j) = WK(ejT) (1/T) WK(j)

para 0 || s / 2

De las anteriores expresiones y puede obtenerse la siguiente expresin aproximada


para WK(ejT):
WK(ej) =

N 1 sen( (/a)2 1 )
I0()
(/a)2 1

Para un dado valor de N, el valor de tiene influencia sobre la relacin de ripple y el


ancho del lbulo principal. La relacin de ripple disminuye con el aumento de ,
Mag. Guillermo Friedrich

- 57 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

mientras que el ancho del lbulo principal aumenta al aumentar .


Una caracterstica muy importante de la ventana de Kaiser es que a partir de las
expresiones recin consideradas existen algunas frmulas empricas para determinar los
valores de y N que permiten cumplir con las especificaciones para un filtro dado. Esto
se ver a continuacin.
8.3.5.1 Un mtodo de diseo de filtros FIR basado en la ventana de Kaiser.
Consideremos el diseo de un pasabajos, cuya respuesta en frecuencia est representada
en el siguiente grfico:
Ganancia
1+
1
1

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)

(2) Seleccionar un valor de tal que Ap A'p y Aa A'a.


Un valor adecuado es = mn(1, 2)

Mag. Guillermo Friedrich

- 58 -

donde:

1 = 100,05 A'a
2 = 100,05 A'p 1
100,05 A'p + 1

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

(3) Calcular Aa = 20 log


(4) Seleccionar el parmetro segn el siguiente criterio:
=

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

(5) Elegir el parmetro D segn el siguiente criterio:


0.9222

para Aa 21

(Aa 7.95) / 14.36

para Aa > 21

D=

(6) Adoptar el mnimo valor impar de N que satisfaga la siguiente desigualdad:


N s D + 1
Bt
(7) Formar wK(nT) segn lo descripto en 8.3.5
(8) Formar

Donde: Hw(z) = Z

H'w(z) = z(N1)/2 Hw(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) =

Donde: c = (1.5 + 2.5) = 2.0 rad/s


(2)

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

Por lo tanto: = 5.7564 x 103

(3)

Aa = 20 log = 20 log(5.7564 x 103) = 44.797 dB

(4)

= 0.5842(Aa 21)0,4 + 0.07886(Aa 21) = 3.9524

(5)

D = (Aa 7.95) / 14.36 = 2.566

(6)

N s D + 1 = ( 10 2.566 ) + 1 = 26.66 = 27
Bt
(2.5 1.5)

Mag. Guillermo Friedrich

- 59 -

N=27

Tcnicas Digitales III - UTN - FRBB

(7)

Procesamiento Digital de Seales

Debido a la simetra de los coeficientes del filtro, slo es necesario


calcular los mismos para n entre 0 y 13.

El siguiente programa escrito en lenguaje C implementa el procedimiento de clculo


recin descripto, y da como resultado el orden del filtro y el listado de coeficientes del
filtro: h[n]*w[n]. Con algunas mnimas modificaciones este programa podra servir para
calcular filtros con distintas especificaciones.
//------------------------------------------------------------------------------// Programa para calcular los coeficientes de un filtro
// pasabajos FIR, en base a la ventana de Kaiser.
// Basado en Antoniu, "Digital Filters", 2 edic. Inciso 9.4.6
// Ing. G. Friedrich - Marzo 2002
//-------------------------------------------------------------------------------

printf( "Orden del filtro: N = %d\n", N );


for(n=0; n<=(N-1)/2; n++)
{
b = a * sqrt(1-pow(2*(float)n/(float)(N-1),2));
// calcula el trmino n-simo de la serie de
// Fourier: h[n]

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>

if( n==0 )
h[n] = 2*wc/Ws;
else

float Io( float x );


long fact( long n );

h[n] = sin(2*n*M_PI*wc/Ws) / (n*M_PI);


// calcula el trmino n-simo de la ventana: w[n]

// Datos --> deben cambiarse para especificar otro filtro.


w[n] = Io(b)/Io(a);
#define Ws 10.0 // frecuencia de muestreo, en rad/s
#define Wp 1.5 // frecuencia lmite de la banda de paso, en rad/s
#define Wa 2.5 // frecuencia lmite de la banda de rechazo, en rad/s
#define Ap 0.1 // mx ripple en la banda de paso, en dB
#define Aa 40.0 // mn atenuacion en la banda de rechazo, en dB

// Imprime los resultados


printf (
"wk(%2dT) = %f\th(%2dT) = %f\th(%2dT)wk(%2dT) = %f\n",
n, w[n], n, h[n], n, n, h[n]*w[n] );
}
getch();

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

float Io( float x )


{
int k;
float I;

// calcula la atenuacin real en la banda de rechazo

// Como la serie converge r pido, suma slo 10 trminos


for(I=1.0,k=1; k<=10; k++)
{
I += pow( pow(x/2.0,k)/fact(k), 2 );
}
return I;

A_a = -20 * log10(d);


if( A_a <= 21.0 )
a = 0.0;
else if( A_a > 21.0 && A_a <= 50 )
a=0.5842*pow(A_a-21.0, 0.4)+0.07886*(A_a-21.0);
else
// A_a > 50
a = 0.1102*(A_a-8.7);
if ( A_a <= 21.0 )
D = 0.9222;
else
D = (A_a - 7.95) / 14.36;

}
//----------------------------------// Calcula el factorial de n
//----------------------------------long fact( long n )
{
long x = 1;
while( n )

// calcula el orden del filtro


N = (int) ceil(10 * D / (Wa-Wp) + 1);
if( N%2 == 0 )
N++;

x *= n--;
return x;
}

Los resultados obtenidos de la ejecucin de este programa son los que se ven a
Mag. Guillermo Friedrich

- 60 -

Tcnicas Digitales III - UTN - FRBB

Procesamiento Digital de Seales

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

Mag. Guillermo Friedrich

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

Tcnicas Digitales III - UTN - FRBB

Mag. Guillermo Friedrich

Procesamiento Digital de Seales

- 62 -

También podría gustarte