Professional Documents
Culture Documents
INTRODUCCION AL PROCESAMIENTO
DIGITAL DE SEÑALES
Octubre 2002
Indice
Introducción ......................................................................................................... 1
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 Aplicación de la transformada Z ..........................................................17
3.5.1 Obtención de H(z) ................................................................. 17
3.5.2 Criterio de Estabilidad de Jury ..............................................19
3.5.3 Análisis en el dominio del tiempo ........................................ 20
3.5.4 Análisis en el dominio de la frecuencia ................................ 21
Bibliografía recomendada
Introducción
1. Filtros Digitales
x(nT) es la secuencia de entrada -la excitación del filtro- e y(nT) es la respuesta del filtro ante la
excitación x(nT).
El análisis de un filtro digital es el proceso de determinar la respuesta de un filtro ante una dada
excitación. El diseño de un filtro digital es el proceso de sintetizar e implementar un filtro digital
de tal manera que cumpla con las especificaciones prescriptas.
¾ Invariancia en el tiempo
¾ Causalidad
¾ Linealidad
¾ Invariancia en el tiempo
un filtro digital es invariante en el tiempo si, para cualquier posible excitación, se cumple
que:
R x(nT – kT) = y(nT – kT)
Ejemplos:
¾ Causalidad
Para que un filtro digital sea causal, su salida en un instante dado no puede depender de
valores posteriores de la excitación.
Ejemplos:
¾ Linealidad
R α x(nT) = α R x(nT)
O bien:
R [α x1(nT) + β x2(nT) ] = α R x1(nT) + β R x2(nT) ∀ α, β, x1(nT) y x2(nT)
Ejemplos:
Los filtros digitales no recursivos también se denominan "de Respuesta Finita al Impulso", y
también se los identifica con la sigla FIR (Finite Impulse Response).
Considerando que el filtro es causal tenemos que: a–1 = a–2 = .... = 0, por lo tanto:
∞
y(nT) = ∑ ai x(nT – iT)
i=0
N
y(nT) = ∑ ai x(nT – iT) Donde N: orden del filtro
i=0
Esta expresión indica que el valor de salida actual de un filtro FIR es función de la entrada actual
y de las N entradas anteriores.
Los filtros digitales recursivos también se denominan "de Respuesta Infinita al Impulso", y
también se los identifica con la sigla IIR (Infinite Impulse Response). La respuesta de un filtro
IIR es función de la excitación y también de las respuestas anteriores.
N N
y(nT) = ∑ ai x(nT – iT) – ∑ bi y(nT – iT)
i=0 i=1
La estructura de un filtro digital puede representarse gráficamente mediante una red en la que se
combinan los siguientes elementos básicos:
Sumador:
x1(nT) k
y(nT) = ∑ xi (nT)
i=1
xk(nT)
Multiplicador:
m
Ejemplo:
y(nT) = x(nT) + eα y(nT – T)
x(nT) y(nT)
α
e T
1 n=0
¾ Impulso unitario: δ(nT) =
0 n≠0
1 n≥0
¾ Escalón unitario: u(nT) =
0 n<0
nT n≥0
¾ Rampa unitaria: r(nT) =
0 n<0
¾ Exponencial: eα nT
¾ Sinusoide: sen( ω nT )
Ejemplo (a):
Hallar la respuesta temporal al impulso de filtro digital cuya ecuación de diferencias es:
α
y(nT) = x(nT) + e y(nT – T)
α
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
.......
nα
y(nT) = e
1 1
nT nT nT
Ejemplo (b):
Hallar la respuesta temporal del filtro dado por la siguiente expresión:
α
y(nT) = x(nT) + e y(nT – T) α<0
y1(nT) = R ejωnT
α
Partiendo del reposo: y1(0) = 1 + e y( – T) = 1
j ωT α α j ωT
y1(T) = e + e y1(0) = e + e
j 2ωT α 2α α + j ωT
y1(2T) = e + e y1(T) = e + e + e j 2ωT
.......
nα
y1(nT) = e + e(n–1)α + j ωT + .......+ e j ωnT
n
y1(nT) = e
j ωnT
∑ e
k ( α – j ωT)
k=0
Como esta expresión corresponde a una serie geométrica, puede demostrarse que :
j ωnT
e – e ((n+1) α – j ωT)
y1(nT) =
( α – j ωT)
1– e
j ωT
e 1
Si ahora consideramos la función: H(e j ωT
)= = = M(ω) e jθ(ω)
j ωT α ( α – j ωT)
e –e 1– e
1
donde: M(ω) = H(e j ωT) =
1 + e2α – 2 e α cos(ωT)
y:
θ(ω) = arg H(e j ωT) = ωT – arc tg sen(ωT)
cos(ωT) – e α
x(nT) y(nT)
1- M(ω) -
nT nT
–1 -
La respuesta de un filtro digital a una excitación arbitraria puede ser expresada en términos de la
respuesta del filtro a una entrada impulsiva. Para ello se debe realizar la convolución entre la
señal de entrada y la respuesta impulsiva.
∞ x(kT) si n=k
x(nT) = ∑ xk (nT) donde: xk(nT) =
k=–∞ 0 si n≠k
Partiendo de esta última expresión, 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(kT) δ(nT – kT) = ∑ x(kT) R δ(nT – kT) = ∑ x(kT) h(nT – kT)
k=–∞ k=–∞ k=–∞
n ∞
y(nT) = ∑ x(kT) h(nT – kT) = ∑ h(kT) x(nT – kT)
k=–∞ k=0
Si además se considera que: x(nT) = 0 ∀ n < 0, la respuesta del filtro digital queda
expresada mediante la siguiente sumatoria de convolución:
n n
y(nT) = ∑ x(kT) h(nT – kT) = ∑ h(kT) x(nT – kT)
k=0 k=0
Ejemplo:
Dado el filtro digital caracterizado por la siguiente expresión: y(nT) = x(nT) + eα y(nT – T) ,
1 para 0 ≤ n ≤ 4
x(nT) =
0 para ∀ otro n
Tal como se ha visto más arriba, la respuesta impulsiva de este filtro es: h(nT) = R δ(nT) = enα
La entrada puede expresarse de esta otra forma, en términos de alguna de las funciones básicas
que se mencionaron anteriormente:
x(nT) = u(nT) – u(nT – 5T)
n n 1 – e(n+1) α
y(nT) = ∑ ekα u(nT – kT) = ∑ ekα = 1 – eα para n ≥ 0
k=0 k=0
0 para n < 0
1 – e(n–4)α
n–5 n–5 1 – eα n≥5
R u(nT – 5T) = R u( (n–5)T ) = ∑ ekα u( (n–5)T – kT ) = ∑ ekα =
k=0 k=0 0 n<5
1 – e(n+1) α 0≤n≤4
1 – eα
y(nT) = R u(nT) – R u(nT – 5T) =
e(n–4) α – e(n+1) α n≥5
1 – eα
2.2 Estabilidad
Un filtro digital es estable si para cualquier excitación acotada se obtiene una salida acotada, es
decir:
y(nT) < ∞ ∀n para x(nT) < ∞ ∀ n
∞
y(nT) ≤ ∑ h(kT) . x(nT – kT) → El módulo de una suma es menor o igual
k=–∞ que la suma de los módulos; y además
el módulo de un producto es menor o
igual que el producto de los módulos.
∞
Si x(nT) ≤ M < ∞ ∀n ⇒ y(nT) ≤ M ∑ h(kT)
k=–∞
∞
Por lo tanto, si: ∑ h(kT) < ∞ ⇒ y(nT) < ∞ ∀n
k=–∞
Condición de estabilidad
∞
Por lo tanto: ∑ h(kT) = 1 + eα + e2α + ..... + e nα
k=–∞
e (k+1)α
Esta serie converge si: <1 Es decir, si: eα < 1
e kα
3. La transformada Z
Definición: ∞
F(z) = ∑ f(nT) z –n Para cualquier z, tal que F(z) converge.
n=-∞ z : variable compleja
z=x+jy
Notación:
F(z) = Z f(nT)
a) Región de convergencia
- El tipo de funciones que se usa en filtros digitales son funciones meromórficas (sus únicas
singularidades son polos).
- Hay más de una serie que converge.
x
x
x
x
x
III
x II
I x
x
x
x
Se asume que la serie que interesa es una que converge en la región III, es decir: R1 ≤ z≤ R2
donde: z= R1 es el círculo que pasa por los polos más alejados del origen
R2 → ∞
b) Linealidad
c) Translación
Z f(nT + mT) = zm F(z)
e) Diferenciación compleja:
Z [ nT f(nT) ] = –T z d F(z)
dz
f) Convolución Real: ∞
Z ∑ f(kT) g(nT – kT) = F(z) G(z)
k=–∞
o bien:
∞
Z ∑ f(nT – kT) g(nT) = F(z) G(z)
k=–∞
∞
F(z) = ∑ f(nT) z –n = ZI f(nT)
n=0
Como se trabaja con funciones que son cero para n<0, no es necesario hacer la distinción.
Ejemplos:
K
–1
c) Z u(nT –T) K = K z Z u(nT) = (aplicando la propiedad de translación)
z–1
z
e) Z [ u(nT) e –α nT
]= (se partió del ejemplo anterior, y se hizo K=1 y ω = e–αT )
z – e–αT
Si F(z) converge en algún anillo abierto, tal como se vió anteriormente al definir la transformada
Z, entonces es posible obtener f(nT) de la siguiente manera:
Esta F(z) tiene un polo en el origen para n=0 ⇒ f(0) debe obtenerse por separado.
Para n=0 :
Para n>0 :
Expansión Binomial
∞
F(z) = K ( z + w z–2 + w 2 z–3 + .... ) = ∑ [ u(nT – T) K w n–1 ] z –n
n=0
Fracciones Parciales
k
Si una transformada Z se expresa de la siguiente manera: F(z) = ∑ Fi (z)
i=1
k
–1
Z F(z) = ∑ Z–1 Fi (z)
i=1
Por lo tanto: f(nT) = 2 u(nT – T) (½)n–1 – u(nT – T) (¼)n–1 = 4 u(nT – T) [(½)n –(¼)n ]
∞
–1
Z [ F(z) G(z) ] = ∑ f(kT) g(nT – kT)
k=–∞
Ejemplo:
Y(z) = z ⇒ F(z) = z G(z) = 1__
(z – 1)2 z–1 z–1
∞
Por lo tanto: y(nT) = ∑ u(kT) u(nT – T – kT) =
k=–∞
⇒ y(nT) = n u(n)
Convolución Compleja
∞
Y(z) = 1 ∫ ∑ f(nT) vn–1 z–n G(v) v–1 dv =
2πj Γ1 n=–∞
Usando la transformada Z, un filtro digital puede ser caracterizado mediante una función
transferencia discreta en el tiempo, que juega el mismo rol que la función transferencia contínua
en el tiempo para un filtro analógico.
Considerando un filtro digital lineal e invariante en el tiempo, tal como el siguiente:
∞
y(nT) = ∑ x(kT) h(nT – kT) ⇒ Z y(nT) = Z h(nT) . Z x(nT) ⇒ Y(z) = H(z) . X(z)
k=–∞
N N
y(nT) = ∑ ai x(nT – iT) – ∑ bi y(nT – iT)
i=0 i=1
Por lo tanto:
N N
Z y(nT) = ∑ ai z –i
Z x(nT) – ∑ bi z–i Z y(nT)
i=0 i=1
N N
⇒ Y(z) = X(z) ∑ ai z –i
– Y(z) ∑ bi z–i
i=0 i=1
N N
⇒ Y(z) 1 + ∑ bi z–i = X(z) ∑ai z–i Como H(z) = Y(z) ⇒
i=0 i=1 X(z)
N N
∑ ai z –i
Ho Π ( z – zi )
i=0 i=0
⇒ H(z) = Y(z) = = .... factoreando ...=
N N
1+ ∑ bi z –i
Π ( z – pi )
i=1 i=1
U(z)
X(z) Y(z)
½ T
T
–¼
p2 = ¼ – j √3_ x
4
Para que el sistema sea estable se deben cumplir las siguientes condiciones:
a) D(1) > 0
.........
Ejemplo: 1 4 3 2 1 1
H(z) = z4__________ 2 1 1 2 3 4
4z + 3z + 2z2 + z + 1
4 3
3 15 11 6 1
4 1 6 11 15
5 224 159 79
Si se desea obtener la respuesta temporal de un filtro digital caracterizado por una función
transferencia discreta H(z), ante una cierta excitación X(z), se hace lo siguiente:
Ejemplo:
Hallar la respuesta temporal al escalón unitario del siguiente filtro digital:
X(z) Y(z)
T –1
T
–½
y(nT)
nT
Así obtenemos: N
H0 Π Mzi N N
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
Mz1 o El punto A ⇒ ω = ∞
ϕp1 Mp1 z1 C ⇒ ω = π/T (frecuencia
p1 x de Nyquist)
Mp2 MZ2
C A Una vuelta completa alrededor del
ϕp2 origen corresponde a un incremento
x de frecuencia de ωS = 2π
p2 ϕz2 T
o Donde ωS : frecuencia de muestreo
z2
Como:
ω+ kωs)T
H(ejωT) = H(ej( ) = H(ejωT) ⇒ H(ejωT) es periódica con período ωS
A los fines prácticos se trabaja con un período –ω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 ).
Un filtro digital recursivo se puede aproximar usando alguna de las siguientes aproximaciones de
filtros analógicos:
- Butterworth
- Tschebyscheff
- Elipticos
- Bessel
La función transferencia de un filtro analógico se puede expresar como: V0(s) = H(s) = N(s)
Vi(s) D(s)
Donde: N(s) y D(s) son polinomios en función de s = σ + jω
Un par de diagramas típicos de polos y ceros de H(s) y L(–s2) son como los siguientes:
jω jω
H(s) x2 L(–s2)
x
x σ
x
x 2
⇒ Bn = 1 ∴ L(ω2) = 1 + ω2n
n=9
n=6
n=3
sk = e j(2k–1)π / 2n
para n par
donde:
sk = e j(k–1)π /n
para n impar
1
HN(s) = donde: pi son los ceros de L(–s2) en el semiplano izquierdo.
n
Π (s – pi)
i=1
s1 = e j π / 4 (semiplano derecho)
s2
j 3π / 4 X
s2 = e ⇒ s2 = –1 + j 1 √
√2 √2
s3 = e j 3 π / 4 ⇒ s2 = –1 – j 1 √
√2 √2
s3 X
s4 = e j 7 π / 4 (semiplano derecho)
∴ HN(s) = 1 = 1_______
2
(s + 1 – j 1 ) (s + 1 + j 1 ) (s +√2 s+1)
√2 √2 √2 √2
s3 = –0.5 + j √ 3_ s3
2 X
⇒ s4 = –1
s5 = –0.5 + j √ 3_ s4 X
2
∴ HN(s) = 1 s5 X
(s + 1) (s2 + s + 1)
¾ Aproximación de Tschebyscheff
¾ Aproximación Elíptica
¾ Aproximación de Bessel
4.4 Transformaciones
PasaBajos → PasaAltos : s = λ_
s
Ejemplo:
HPB(š) = 1 = λ–3 =
(λš + 1) ( (λš)2 + λš + 1 ) (š + λ–1) ( š 2 + λ–1 š + λ–2 )
Como se verá posteriormente, una de las aplicaciones de los filtros digitales es el procesamiento
de señales analógicas, con un esquema como el siguiente:
c(t)
Una posibilidad para el diseño y síntesis del filtro digital es partir de la función transferencia del
filtro analógico, y aplicarle una transformación para hallar H(z), y posteriormente implementar el
filtro digital.
Las transformaciones para pasar de un filtro analógico a un filtro digital recursivo son:
Al igual que para los filtros analógicos, la etapa de aproximación es el proceso a través del cual
se obtiene una función transferencia que satisfaga los requerimientos.
Los filtros digitales recursivos pueden obtenerse a partir de aproximaciones de filtros analógicos,
mediante alguno de los métodos recién mencionados.
5.1 Realizabilidad
A fin de poder ser implementada mediante un filtro recursivo, una función transferencia debe
satisfacer las siguientes condiciones:
El objetivo de la transformación Bilineal es lograr un filtro digital cuya respuesta temporal sea
similar a la respuesta temporal del filtro analógico de origen, ante cualquier excitación.
s + ∑ bi sN–i
N
Demostración:
1 para t ≥ 0+
L –1
HI(s) = hI(t) =
0 para t ≤ 0–
t
Y su respuesta temporal ante cualquier excitación será: y(t) = ∫ x(τ) h (t–τ) dτ
I
0
x(τ)
t1 t2 τ
t1 t2
y(t2) – y(t1) = ∫ x(τ) h (t–τ) dτ
I – ∫ x(τ) h (t–τ) dτ I
0 0
t2
⇒ y(t2) – y(t1) = ∫ x(τ) h (t–τ) dτ
I
t1
Ejemplo:
Hallar la función transferencia discreta en el tiempo, partiendo de un
pasabajos analógico con frecuencia de corte igual a 2000 Hz, usando aproximación de
Butterworth con n=3. Considerar T=125 µseg (8000 muestras/seg). Aplicar
transformación Bilineal.
0.112958
x(nT)
⊕ ⊕ ⊕ ⊕ y(nT)
T T
0.120198 0.3118993 T 2
–0.346114
1. Realización Directa
N
D'(z) = ∑ bi z–i
i=1
D'(z)
T a1
a2
–b1 T
–b2
T a0 T
T a1 –b1 T
a2 –b2
Y(z) = H(z) = N(z) = N(z)__ Se puede expresar como: Y(z) = N(z) Y'(z)
X(z) D(z) 1 + D'(z)
X(z) ⊕ Y'(z)
–D'(z)
–D'(z)
X(z) ⊕
⊕ Y(z)
a0
T T
–b1 T T 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) ⊕
⊕ Y(z)
a0
T
–b1 T a1
–b2 a2
Solución Canónica
La transformación bilineal tiene como objetivo que el filtro digital obtenido tenga la misma
respuesta temporal que el filtro analógico de origen.
Por otra parte, puede haber diferencias entre la respuesta en frecuencia del filtro digital y la del
filtro analógico de origen. Esto es lo que se analiza a continuación.
⇒ si σ > 0 ⇒ r>1 jω
si σ = 0 ⇒ r=1
si σ < 0 ⇒ r<1
s=j∞ s=0
σ
s=–j∞
HD(ejΩT) = HA(jω)
Es decir que para que el filtro digital tenga una cierta atenuación a una frecuencia Ω, debe
diseñarse el filtro analógico de origen con la corrección 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 período de muestreo T=125 µseg, el filtro analógico debería calcularse
para una frecuencia de corte de:
0.166667
x(nT)
⊕ ⊕ ⊕ ⊕ y(nT)
T T
0 0 T 2
–0.333333
Observación: calculando este mismo filtro con algún programa (por ej.: QED Lite), puede
darse alguna diferencia en los valores de los coeficientes, debido a los erro-
res de redondeo que cometen dichos programas. (por ej.: en lugar de anu-
larse los términos en z–1 del denominador, toman valores muy pequeños).
Dada una señal x(nT) real, discreta en el tiempo y de duración finita, puede formarse una señal
periódica, con período NT, xp(nT), de la siguiente manera:
∞
xp(nT) = ∑ x(nT + rNT)
r = –∞
x(nT) xp(nT)
nT nT
NT
N–1 W = e j2π/N
Xp(jkΩ) = ∑ xp(nT) W–kn = D xp(nT) donde: Ω = ωs / N
n=0 ωs = 2π / T
N–1
Demostración:
1 ∑ Xp(jkΩ) W kn
= 1 ∑ ∑ xp(mT) W –km
W kn
= 1 ∑ xp(mT) ∑ W k(n–m)
N k=0 N k=0 m=0 N m=0 k=0
N–1 N si m=n
Como: ∑ W k(n–m) =
k=0 0 para ∀ otro caso
⇒ 1 ∑ Xp(jkΩ) W kn
= 1 ∑ xp(mT) ∑ W k(n–m) = xp(nT)
N k=0 N m=0 k=0
1 si 2 ≤ n ≤ 6
Ejemplo: calcular la DFT para la siguiente señal: xp(nT) = N=10
0 ∀ otro n
6
Xp(jkΩ) = ∑ W–kn = W –2k – W –7k como W = e j2π/N = e j π/5 ⇒
n=2 1 – W –k
xp(nT) A(kΩ)
1 5
nT kΩ
k 0 1 2 3 4 5 6 7 8 9
A(kΩ) 5 3.236 0 1,236 0 1 0 1.236 0 3.236
N–1 ∞ ∞ N–1
∞ rN+N–1
–1 N–1 2N–1
∞
Xp(jkΩ) = ∑ x(mT) W–km
m = –∞
∞
Xp(jkΩ) = ∑ x(nT) e–jk Ω nT = XD (e–jk ΩT )
n = –∞
3
Ejemplo: N=12 ⇒ 4 2
plano Z
5 1
kΩT
6 0
7 11
8 10
9
El teorema del muestreo en el dominio de la frecuencia dice que una transformada Z XD(z) para
la cual:
x(nT) = Z–1 XD(z) = 0 para n ≥ N y para n<0
Asimismo: XD(z) puede obtenerse de la DFT de xp(nT) de acuerdo a lo visto en el punto anterior.
Y, por otra parte, x(nT) y XD(z) pueden obtenerse a partir xp(nT) y Xp(jkΩ) respectivamente.
N–1
XD(z) = 1 ∑ Xp(jkΩ) 1 – z–N___ ∴ x(nT) puede ser representada por la DFT de xp(nT)
N k=0 1 – W k z–1
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) xp(nT)
nT nT
NT
∞ ∞
D∑ x(nT + rNT) = 1 ∑ X(jkΩ + jrωs) (*)
r = –∞ T r = –∞
Xp(jkΩ) X(jω)
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º edición.
El valor de T (= 2π/ωs) debe elegirse de modo tal que la expresión X(jω)=0 ∀ |ω| ≥ ωs/2,
se satisfaga lo mejor posible.
La técnica recién descripta también puede ser usada para obtener la representación
aproximada mediante DFT de señales discretas en el tiempo tales que:
Uno de los algoritmos existentes para el cálculo de la transformada rápida de Fourier está
basado en la técnica de decimación en el tiempo.
N–1 N–1
N/2–1 N/2–1
para 0 ≤ n ≤ N / 2 –1
N/2–1 N/2–1
X10(k) X(k)
1 1
±W–k 1
X11(k) X(k+N/2)
X10(k) X(k)
k
X11(k) X(k+N/2)
N/2–1
N/4–1 N/4–1
Como X20(k) y X21(k) son periódicas con período N/4, se puede repetir el
razonamiento aplicado anteriormente, por lo tanto:
m–1
X(m–1)0(k) = Xm0(k) + WN –2 k
Xm1(k)
m–1
X(m–1)0(k+N/2m) = Xm0(k) – WN –2 k
Xm1(k)
m–1
X(m–1)1(k) = Xm2(k) + WN –2 k
Xm3(k)
m–1
X(m–1)1(k+N/2m) = Xm2(k) – WN –2 k
Xm3(k)
.....................
donde: xm0(n) = x(m–1)0(2n)
xm1(n) = x(m–1)0(2n+1)
xm2(n) = x(m–1)1(2n)
xm3(n) = x(m–1)1(2n+1)
........................
Y todo esto es válido para 0 ≤ m ≤ N / 2m–1 . 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,....., N–1
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 representación 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 reversión
de bits queda 1002 = 4.
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) }
x(5) 1 3 1 5
0
x(3) 0 3 2 6
0
x(7) 1 3 3 7
0 2
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 cálculos, mientras que la FFT requiere
de sólo 2304 cálculos (≈ 1%).
Por otra parte, tambien puede verse del gráfico anterior que se la cantidad de
memoria necesaria para poder calcular la FFT es igual a 2 N, ya que luego de
utilizar un conjunto de valores Xmi(k) como entradas para calcular los valores de
X(m–1)i(k) , ya no se necesitan más los valores de Xmi(k), por lo que los lugares de
memoria que ocupan podrán ser destinados a los valores de X(m–2)i(k).
Los filtros recursivos (IIR) que se han considerado anteriormente permiten obtener filtros de alta
selectividad y sencillez computacional. Sin embargo, es muy dificil diseñar un filtro digital
recursivo que tenga alta selectividad y al mismo tiempo un retardo de grupo constante. Mediante
la aproximación de Bessel y la transformación 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 diseñar fácilmente para que tengan un retardo
de grupo constante, al mismo tiempo que se puede lograr una gran variedad de respuestas en
frecuencia.
Hay diferentes métodos para resolver la aproximación de filtros no recursivos. El método que se
va a considerar está basado en series de Fourier. Otro método está basado en el uso de la DFT (o
FFT), y otra posibilidad es utilizar el algoritmo de intercambio de Remez. Este último método
permite lograr soluciones óptimas, es decir, un filtro con el mínimo orden posible. La desventaja
del algoritmo de intercambio de Remez es la complejidad y volumen de cálculos necesarios para
efectuar el diseño.
donde:
M(ω) = |H(ejωt)| y θ(ω) = arg H(ejωt)
τp = – θ(ω) y τg = – dθ(ω)
ω dω
Si se requiere que tanto τp como τg sean constantes, la respuesta en fase deberá ser lineal, es
decir:
θ(ω) = – τω
N–1
N–1
N–1
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 simétrica
alrededor del punto medio entre las muestras (N–2)/2 y N/2, para N par, o bien con resepcto a
la muestra (N–1)/2 para N impar. La figura siguiente muestra la simetría requerida para
N=10 y N=11.
h(nT) h(nT)
nT nT
n=10 n=10
–1.0 –1.0
Usando el mismo procedimiento anterior, se puede obtener una segunda clase de filtros no
recursivos. Si θ0 = ± π/2, la solución es:
¾ Respuesta en Frecuencia
(N–3)/2 N–1
H(e jωT
)= ∑ h(nT) e –jωnT
+ h[ (N–1)T ] e –jω(N–1)T/2
+ ∑ h(nT) e–jωnT
n=0 n=(N+1)/2
2
∑ h(nT) e –jωnT
= ∑ h[(N–1–n)T] e –jωnT
= ∑ h(nT) e–jω(N–1– n)T
n=(N+1)/2 n=(N+1)/2 n=0
(N–3)/2
H(e jωT
)= e –jω(N–1)T/2
h { [ (N–1)T ] + ∑ 2h(nT) cos[ω (N–1 – n) T ] }
n=0
2 2
(N–1)/2
H(e jωT
)= e –jω(N–1)T/2
∑ ak cos(ω k T ) donde: a0 = h[(N–1)T]
k=0
2
ak = 2 h[(N–1 – k) T ]
2
De igual manera se pueden considerar el caso de respuesta impulsiva simétrica con N par y
para los dos casos de respuesta antisimétrica. La siguiente tabla resume las expresiones de la
respuesta en frecuencia para los cuatro casos posibles.
h(nT) N H(ejωT)
(N–1)/2
N/2
Par e –jω(N–1)T/2
∑ bk cos[ω(k–½) T ]
k=1
(N–1)/2
N/2
(N–3)/2
(N–1)/2
(N–1)/2
N(z) = ∑ ak ( zk ± z–k )
k=0
(N–1)/2 (N–1)/2
–1
N(z ) = ∑ ak ( z –k k
± z )= ± ∑ ak ( zk ± z–k ) = ± N(z)
k=0 k=0
La misma relación se puede obtener para N par, y por lo tanto, si zi=ri ejψi es un cero de
H(z), entonces zi–1= ejψi también será un cero de H(z).
ri
– Puede haber un número arbitrario de ceros ubicados en zi = ±1, ya que zi–1 = ±1.
– Los ceros reales fuera del círculo unidad deben ocurrir en pares recíprocos.
– Los ceros complejos fuera del círculo unidad deben ocurrir en grupos de cuatro, es
decir: zi, zi*, y sus recíprocos: 1/zi* y 1/zi.
1/z5*
z3 z5
Plano z
z2 z4 z1 1/z4
z5 *
z3 *
1/z5
H(e jωT
)= ∑ h(nT) e –jωnT
Donde: h(nT) = 1 ∫ H(ejωT) ejωnT dω
n=–∞ –ωs/2
ωs
La causalidad puede lograrse multiplicando H(z) por z–(N–1)/2 , de modo tal que:
Ejemplo
1 para |ω| ≤ ωc
jωT
H(e )≈ Donde ωs: frecuencia
0 para ωc < |ω| ≤ ωs / 2 de muestreo
Solución:
ωc
h(nT) = 1 ∫ ejωnT dω = 1 sen(ωcnT)
–ωc
ωs nπ
Luego:
(N–1)/2
H(z) = z –(N–1)/2
∑ an [zn + z–n] Donde: a0 = h(0)
n=0 2
an = 2 h(nT)
H(z) = z –3
[ h(0) + ∑ h(nT) (zn + z–n) ]
n=1
H(z) = z –3
[ 0.4 + ∑ 1 sen(2nπ) (zn + z–n) ]
n=1
nπ 5
H(z) = –0.0624 + 0.0935 z–1 + 0.3027 z–2 + 0.4 z–3 + 0.3027 z–4 + 0.0935 z–5 – 0.0624 z–6
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 también 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.
1 para |ω| ≤ ωp
Una técnica alternativa y de fácil aplicación 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: ∞
Donde w(nT) representa una función de ventana. El uso de la convolución compleja nos
lleva a:
Hw(z) = 1 ∫
H(v) W(z/v) v–1 dv Donde Γ : contorno en la la región
2πj Γ común de convergencia de
H(v) y W(z/v).
Con v = ejΩT y z = ejωT , y tanto H(v) como W(z/v) convergentes en el círculo unidad del
plano v, la ecuación anterior puede escribirse así:
2π/T
Hw(e jωT
)= T ∫ H(e jΩT
) W(ej(ω–Ω)T) dΩ
0
2π
1 para 0 ≤ |Ω| ≤ ωc
H(ejΩT) =
0 para ωc < |Ω| ≤ ωs/2
–π/T –ωc ωc π/T
Si asimismo se considera que W(ejΩT) es real y tiene la forma dada en la siguiente figura,
y se asume que W(ejΩT) = 0, para ωm < |Ω| ≤ ωs/2.
W(ejΩT)
Esto representa un diagrama espectral ideal para una función de ventana –más adelante se
verá el espectro real–.
Se puede demostrar que con W(ejΩT) tal como la anterior, la gráfica de Hw(ejΩT) adoptaría
una forma parecida a la siguiente:
Hw(ejωT)
Si H(z) representa un filtro de retardo constante y se desea que Hw(z) también represente
un filtro de retardo constante de orden finito, entonces w(nT) deberá satisfacer las
siguientes propiedades en el dominio del tiempo:
1.0 w(nT)
N=11
nT
En la práctica, el espectro de una función de ventana w(nT) se aparta del espectro ideal
visto más arriba, y adopta una forma como la que se ve en la próxima figura. la amplitud
del lóbulo principal está dada por kωs/N, donde k es una constante.
W(ejωT)
–kωs / 2N kωs / 2N
El efecto que tienen los lóbulos 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 pequeño, y la atenuación en la banda de rechazo sea grande, el área
encerrada por los lóbulos laterales debe ser una pequeña fracción del área encerrada por
el lóbulo principal.
Por otra parte, la amplitud del lóbulo principal determina la amplitud de la banda de
transición 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 pequeño.
– Rectangular
– von Hann (o Hanning)
– Hamming
– Blackman
– Dolph-Chebyshev
– Kaiser
1 para |n| ≤ (N – 1) / 2
wR(NT) =
0 para otros valores de |n|
(N–1)/2
WR(e jωT
)= ∑ e–jωnT = sen (ωNT / 2)
n=–(N–1)/2
sen (ωT / 2)
Puede calcularse una relación de ripple, r, que nos da una idea de la amplitud que
tendrán las oscilaciones debidas al efecto Gibbs:
Puede observarse que los lóbulos laterales de estas ventanas son más 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:
N=11 N=101
von Hann 2.62 2.67
Hamming 1.47 0.74
Como pudo observarse, las ventanas anteriores dan lugar a un ripple que es
prácticamente independiente del valor de N, y por lo tanto la aplicación de tales
ventanas es limitada.
Una ventana más versátil es la de Dolph-Chebyshev, y está dada por la siguiente
fórmula:
(N–1)/2
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 lóbulo
principal.
Dos propiedades interesantes de la ventana de Dolph-Chebyshev son las
siguientes:
– Para un dado valor de N, el ancho del lóbulo principal es el menor que podría
obtenerse para una relación de ripple dada. Esto implica que usando esta
ventana se obtienen filtros con una banda de transición muy estrecha.
– Todos los lóbulos laterales tienen la misma amplitud. Esto implica que el error
de aproximación tiende a distribuirse uniformemente con respecto a la
frecuencia.
I0(x) = 1 + ∑ 1 x k 2
es la función de
k=1
k! 2 Bessel
modificada de
orden cero del
primer tipo.
(N–1)/2
WK(e jωT
) = wK(0) + 2 ∑ wK(nT) cos(ωnT)
n=1
Donde:
β=α 1 – ( t / τ )2
α = (N – 1) T
2
El espectro de wK(t) puede demostrarse que está dado por:
Ganancia
1+δ
1
1–δ
δ
ω
ωp ω ωa ½ ωs
¾ El ripple en la banda de paso, en dB, está dado por: Ap = 20 log ((1+δ) / (1–δ))
Para obtener los coeficientes de un filtro cuyo ripple en la banda de paso sea igual o
menor a A'p , su atenuación en la banda de rechazo sea mayor o igual a A'a, y cuya banda
de transición sea Bt, se pueden seguir los pasos siguientes:
(1) Determinar h(nT) usando la aproximación por series de Fourier vista en 8.2,
asumiendo una respuesta en frecuencia ideal, es decir:
1 para |ω| ≤ ωc
H(ejωT) =
0 para ωc < |ω| ≤ ½ ωs
Donde : ωc = ½ (ωp + ωa)
0 para Aa ≤ 21
α= 0.5842(Aa – 21)0,4 + 0.07886(Aa – 21) para 21 < Aa ≤ 50
0.1102(Aa – 8.7) para Aa > 50
0.9222 para Aa ≤ 21
D=
(Aa – 7.95) / 14.36 para Aa > 21
N ≥ ωs D + 1
Bt
Ejemplo:
Diseñar un pasabajos FIR con las siguientes especificaciones:
A_a = -20 * log10(d); // Como la serie converge r pido, suma sólo 10 términos
for(I=1.0,k=1; k<=10; k++)
if( A_a <= 21.0 ) {
a = 0.0; I += pow( pow(x/2.0,k)/fact(k), 2 );
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); return I;
else }
// A_a > 50
a = 0.1102*(A_a-8.7); //-----------------------------------
// Calcula el factorial de n
if ( A_a <= 21.0 ) //-----------------------------------
D = 0.9222;
else long fact( long n )
D = (A_a - 7.95) / 14.36; {
long x = 1;
// calcula el orden del filtro while( n )
N = (int) ceil(10 * D / (Wa-Wp) + 1); x *= n--;
if( N%2 == 0 ) return x;
N++; }
Los resultados obtenidos de la ejecución de este programa son los que se ven a
continuación: