Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Filtros Poly PDF
Filtros Poly PDF
Implementación polifásica
22 de noviembre de 2006
Los banco de filtros coseno modulados son un caso particular de banco de filtros de descom-
posición y recontrucción de la una señal. La idea general es descomponer una señal en varias
señales, cada una de ellas conteniendo solo una subbanda de frecuencia de la señal original de
modo que luego sea posible volver a componer la señal a partir de un procesamiento y suma
de cada una de las bandas. Al separar una señal de esa manera se persigue el objetivo de hacer
un procesamiento diferente sobre cada banda antes de volver a reconstruir la señal. Un ejemplo
es el caso de la norma MPEG-1 para audio, donde el procesamiento consiste en cuantizar cada
una de las señales de las bandas por separado, de acuerdo a ciertos criterios.
Este tipo de descomposición sigue el esquema de la figura siguiente:
El banco de filtros de análisis divide la señal x(n) en varias señales xk (n) mediante un filtrado
con cada uno de los filtros Hk (z), cuya respuesta en frecuencia puede ser de alguna de las
formas observadas en la figura inferior: con solapamiento marginal, sin solapamiento, o direc-
tamente con un solapamiento apreciable. Luego de un cierto procesamiento, cada señal xk (n)
es convertida en una señal yk (n) las cuales reconstruyen una señal luego de ser pasadas por un
banco de filtros Fk (z) y sumadas. Si yk (n) = xk (n), es decir, no se realizara ningún tipo de
procesamiento, se espera que x̂(n) = x(n).
1. Banco de filtros de DFT uniforme
La transformada de Fourier de corto tiempo (STFT, Short Time Fourier Transform), es un
ejemplo de este tipo de bancos de filtros. Si bien este tema ya fue cubierto en la materia, se
estudió en otro contexto, donde el énfasis no estaba puesto en la descomposición para proce-
samiento seguido de reconstrucción, sino que solo era vista como una herramienta de análisis
o descripción-visualización. Sin embargo, en el tema de bancos de filtros de descomposición-
reconstrucción, la STFT es la base que nos permitira pensar el modelo más elemental de bancos
de filtros de reconstrucción y muchos de los conceptos básicos asociados a este tema, por lo
cual lo utilizaremos como base de la explicación y como inicio de la descripción de la notación.
Habitualmente solemos escribir la STFT en esta forma:
∞
2π k m
X
xk (n) = x(n − m) w(m) e−j M
m=−∞
donde hemos cambiado la notación Xk (n) (con mayúscula) por xk (n) (con minúscula), para
hacer énfasis en que estas señales son señales del tiempo, obtenidas mediante un filtrado de
x(n). Además en esta expresión la ventana w(m) es una función general. El banco de filtros de
DFT uniforme se da para el caso de que w(n) = 1 para n = 0, . . . , M − 1, y cero para el resto,
es decir para una ventana rectangular de ancho M :
M −1
2π k m
X
xk (n) = x(n − m) e−j M
m=0
m=0
M −1
2π k0 m
X
x(M −k0 ) (n) = sm (n) ej M
m=0
0
Al cambiar M − k por k lo único que estamos haciendo es cambiar el orden de enumeración de
las señales, que por motivos que serán evidentes más adelante es mejor de este modo. De modo
que de aquı́ en adelante consideraremos este orden como el definitivo de modo que
M −1
2π k m
X
xk (n) = sm (n) ej M
m=0
s1(n) x1(n)
z −1
s2(n) W∗ x2(n)
−1
z
..
.
sM −1(n) xM −1(n)
z −1
Para encontrar la forma de los filtros Hk (z) de la forma que se muestran en la descomposición
de la figura 1, podemos plantear cuál es la transformada Z de xk (n):
M −1
2π k m
X
Xk (z) = Sm (z) ej M
m=0
M −1
2π k m
X
= X(z) z −m ej M
m=0
M −1
2π k −m
X
= X(z) z e−j M
m=0
M −1 −m
−j 2π k
X
= X(z) ze M
m=0
= X(z) Hk (z)
Pero la transformada Z de la ventana rectangular es
M
X −1
H0 (z) = z −m
m=0
M −1 −m
2π k m 2π k
X
⇒ Hk (z) = z e−j M = H0 z e−j M
m=0
En términos de la transformada Z vemos que cada filtro Hk (z) es obtenido a partir del filtro que
representa la ventana rectangular, girado en un ángulo − 2πMk . En términos de la transformada
de Fourier vemos que el filtro H0 (Ω) es una sinc periódica con su lóbulo principal centrado en
cero, mientras que los filtros Hk (Ω) corresponden a versiones desplazadas en − 2πMk de dicho
espectro.
Para encontrar la forma de los filtros de reconstrucción veamos que x(n) = s0 (n), pero
también x(n) = s1 (n + 1) = s2 (n + 2) = . . ., y por lo tanto
M −1
1 X
x(n) = sm (n + m)
M m=0
y, en términos de la transformada Z,
M −1
1 X
X(z) = Sm (z)z m
M m=0
Pero si las señales xk (n) pueden ser obtenidas mediante una IDFT de las señales sm (n) (salvo
factor de escala), entonces las señales sm (n) pueden obtenerse haciendo una DFT del vector
xk (n):
M −1
2π k m
X
sm (n) = M xk (n) e−j M
m=0
m=0 k=0
M
X −1
= Xk (z) Fk (z)
m=0
Y análogamento a lo que se vio con el filtro de descomposición Hk (z), el filtro Fk (z) también
podrá ser expresado en términos de H0 (z), si vemos que:
M −1 −m
−j 2π k 2π k
X
H0 z e M = z e−j M
m=0
M −1 m0 −(M −1)
2π k 2π k
X
= z e−j M z e−j M
m0 =0
s1(n) x1(n)
z −1 +
z −1
∗
s2(n) W x2(n) W
z −1 +
z −1
.. ..
. .
z −1
sM −1(n) xM −1(n) x(n)
z −1 +
x1(n) y1 (n)
H1(z) ↓M ↑M F1(z) +
x2(n) y2 (n)
H2(z) ↓M ↑M F2(z) +
.. .. ..
. . .
yM −1(n)
xM −1(n) x̂(n)
HM −1(z) ↓M ↑M FM −1(z) +
Sin embargo es también evidente que si la idea es obtener una muestra de cada M en cada
una de las bandas, tanto los filtros de descomposición Hk (z) como los de reconstrucción Fk (z)
están realizando procesamiento demás, ya que en el caso de la descomposición solo 1 muestra
de cada M es útil y el resto se descartan. En el extremo de reconstrucción es también evidente
ver que las entradas de los filtros son cero M − 1 muestras de cada M , lo cual quiere decir que
la entrada a cada filtro no presenta ninguna entrada casi todo el tiempo. Este tipo de problema
puede atacarse utilizando la respresentación polifásica de los filtros.
y llamando
∞
X ∞
X
−n
E0 (z) = h(2n) z , E1 (z) = h(2n + 1) z −n
n=−∞ n=−∞
H(z) = E0 (z 2 ) + z −1 E1 (z 2 )
Esta idea puede ser extendida a una separación de un filtro en M filtros también, donde es fácil
de ver que
M
X −1
H(z) = z −l El (z M ) (1)
l=0
Nótese que de este modo hemos dividido el filtro H(z), el cual arroja salidas sobre todos
los instantes n, en M filtros El (z M ) cuya respuesta impulsiva es cero para todo n salvo una
vez de cada M puntos. Es fácil darse cuenta que si la siguiente etapa después del filtrado es
un submuestreo en M , es posible obtener alguna simplificación adicional en términos de las
operaciones realizadas. Para ello es posible utilizar una de las identidades de Noble, que por
otro lado son fáciles de demostrar. La primera identidad de Noble plantea la equivalencia entre
los siguientes sistemas:
M −1
2π k l
2π k
X
Hk (z) = H0 z e−j M = z −1 ej M El (z M )
l=0
M
−j 2π k
ya que z e M = z M . La salida de cada uno de los filtros será Xk (z)
M −1
X 2π kl
Xk (z) = Hk (z) X(z) = z −l El (z M ) X(z) ej M
l=0
Pero de aquı́ se puede ver que el término entre paréntesis es la transformada Z de sl (n), por lo
cual podemos redibujar la figura 2 del siguiente modo:
s2 (n) W∗ x2(n)
M
z −1
E2(z )
..
.
sM −1(n) xM −1(n)
z −1 EM −1 (z M )
x(n) s0 (M n) x0(M n)
↓M E0(z)
s1 (M n) x1(M n)
z −1 ↓M E1(z)
s2 (M n) W∗ x2(M n)
z −1
↓M E2(z)
..
.
sM −1(M n) xM −1(M n)
z −1 ↓M EM −1 (z)
Esto no representa un gran avance si consideramos la simpleza del caso, pero como se
verá más adelante este principio puede ser aplicado para otros casos de filtros aparte del caso
especı́fico de la DFT uniforme, donde los filtros El (z) tienen una forma trivial, y en esos casos la
representación polifásica sı́ representará un gran ahorro en cantidad de operaciones realizadas.
Veamos por último cómo utilizar la representación polifásica para el banco de filtros de
reconstrucción. Para ello veamos que una variación de la ecuación 1 serı́a escribir la descompo-
sición del filtro como
MX−1
H(z) = z −(M −1−l) Rl (z M )
l=0
donde los Rl (z) son los mismos El (z), tomados en otro orden, es decir Rl (z) = EM −1−l (z).
Esta descomposición se denomina de Tipo 2, mientras que la representación correspondiente a
la ecuación 1 se denomina de Tipo 1. Es posible demostrar que estos filtros también pueden
usarse en forma eficiente para calcular la reconstrucción de la señal. Para ello, partamos de la
descomposición del filtro Fk (z)
2π k
2π k
Fk (z) = H0 z e−j M ej M z M −1
M −1 (M −1−l)
−1 j 2π k 2π k
X
= z e M Rl (z M ) ej M z M −1
l=0
M −1
2π kl
X
= z l e−j M Rl (z M )
l=0
Para reconstruir la señal X(z) tenemos que hacer la sumatoria de todos los productos Fk (z) Xk (z):
M
X −1
X(z) = Fk (z) Xk (z)
k=0
M −1 M −1
2π kl
X X
= z l Rl (z M ) Xk (z) e−j M
k=0 l=0
−1 −1
M M
!
−j 2πMkl
X X
= l
z Rl (z M ) Xk (z) e
l=0 k=0
M −1
1 X l
X(z) = z Rl (z M )X(z) z −l
M l=0
de donde deducimos que Rl (z M ) = 1, o lo que es lo mismo, rl (n) = δ(n), que coincide con la
representación tipo 2 del filtro H0 (z). De modo que utilizando la segunda identidad de Noble,
que representaremos en la siguiente figura es posible dibujar el sistema completo del siguiente
modo:
x(n) s0 (M n) x0(M n) s0(M n)
↓M E0(z) R0(z) ↑M
z −1 z −1
s1 (M n) x1(M n) s1(M n)
↓M E1(z) R1(z) ↑M +
z −1
z −1 ∗
s2 (M n) W x2(M n) W s2(M n)
↓M E2(z) R2(z) ↑M +
.. ..
. .
z −1 sM −1(M n) z −1
sM −1(M n) xM −1(M n) x(n + M − 1)
↓M EM −1 (z) RM −1 (z) ↑M +
En esta figura es interesante notar que la reconstrucción se realiza con interpoladores que están
todos sincronizados pero un delay va acomodando las señales de tal modo que aparezcan en el
orden que tiene que ir y de este modo componer la ventana de x(n) de longitud M .
En esta figura se muestra que los filtros de análisis, H0 (z) y H1 (z) van seguidos de los decima-
dores, y que la reconstrucción se realiza primero interpolando y luego pasando las señales por
los filtros de reconstrucción F0 (z) y F1 (z) y sumando sus salidas. Este esquema no representa
la estructura óptima que se vió en la última sección, pero es mejor partir para las deducciones
de la estructura básica y luego optimizar.
3.1. Aliasing
El objetivo que nos planteamos con este desarrollo es mejorar la respuesta en frecuencia de
los filtros de descomposición, o por lo menos, obtener cierto control sobre ellos. Sin embargo, por
más abrupta que sea la forma que elijamos los filtros, no podremos nunca implementar un filtro
ideal, por lo cual se asume que cierto grado de aliasing en la descomposición será inevitable. El
objetivo es compensar ese aliasing en todo el resto del sistema como veremos a continuación.
Usando la notación de las secciones precedentes podemos decir que
Xk (z) = Hk (z) X(z), k = 0, 1
La transformada Z de las señales decimadas vk (n) serán
1 h 1 1 i
Vk (z) = Xk z 2 + Xk −z 2 , k = 0, 1
2
Este segundo término representa la señal Xk (z) girada 180 grados con respecto a su posición
original. Por lo tanto representa el aliasing que genera el decimador. La transformada Z de
Yk (z) es V (z 2 ), de modo que,
1
Yk (z) = Vk (z 2 ) = [Xk (z) + Xk (−z)] ,
2
1
= [Hk (z)X(z) + Hk (−z)X(−z)] , k = 0, 1
2
Como la señal reconstruı́da es
X̂(z) = F0 (z)Y0 (z) + F1 (z)Y1 (z)
finalmente podremos escribir
1
X̂(z) = [H0 (z)F0 (z) + H1 (z)F1 (z)] X(z)
2
1
+ [H0 (−z)F0 (z) + H1 (−z)F1 (z)] X(−z) (2)
2
De esta ecuación vemos que el primer sumando representa la señal deseada, mientras que el
otro sumando representa un giro de la transformada Z de la señal, o sea, aliasing. Por lo tanto
vemos que para lograr aliasing cero una posible elección es
F0 (z) = H1 (−z), F1 (z) = −H0 (−z)
Entonces, independientemente de la forma de los filtros H0 (z) y H1 (z), si se eligen los filtros
de reconstrucción de este modo, tendremos que el aliasing se cancela completamente.
H1 (z) = H0 (−z)
H0 (z) = E0 (z 2 ) + z −1 E1 (z 2 )
H1 (z) = E0 (z 2 ) − z −1 E1 (z 2 )
donde vemos la similitud de esta implementación con la de la figura 3, donde en este caso la
matriz W ∗ es de 2 por 2.
Utilicemos la representación polifásica para escribir ahora la transferencia de distorsión:
1
T (z) = [H0 (z)F0 (z) + H1 (z)F1 (z)]
2
1
= [H0 (z)H0 (z) − H1 (z)H1 (z)]
2
y reemplazando los filtros H0 (z) y H1 (z) en términos de su descomposición polifásica, tendremos
T (z) = 2z −1 E0 (z 2 )E1 (z 2 )
Esta expresión es válida para cualquier implementación QMF de este tipo, no importa si el filtro
H0 (z) es FIR o IIR. Algunas importantes conclusiones se pueden ver de la ecuación anterior.
Por ejemplo, si H0 (z) es FIR, entonces E0 (z), E1 (z) y en consecuencia T (z) también lo serán.
Pero de la ecuación anterior es posible afirmar que para que el sistema sea de reconstrucción
perfecta, la única posibilidad es que E0 (z), E1 (z) sean iguales a un retardo. Pero esto implica
que la respuesta impulsiva del filtro H0 (z) tiene solo dos valores distintos de cero, lo cual no
posibilita un diseño de filtro de buena respuesta en frecuencia. Además de lo dicho anteriormente
deducimos que si el filtro H0 (z) es FIR la única estructura posible para lograr reconstrucción
perfecta es
H0 (z) = k0 z −2n0 + k1 z −2n1 +1
Podemos pensar en otra elección para E0 (z) y E1 (z) tal conduzca igualmente a una T (z) de
reconstrucción perfecta, pero en ese caso deberı́a ser E0 (z) = 1/E1 (z), y por lo tanto uno de
los dos (o ambos) serı́an filtros IIR.
Entonces, este tipo de descomposición que da lugar a sistemas de reconstrucción perfecta,
donde no hay distorsión de aliasing, y la entrada es igual a la salida, salvo factor de amplificación
o retardo temporal, tienen un costo: los sistemas asi generados o bien son FIR, pero con un
pobre desempeño en frecuencia, o bien son IIR. Los filtros FIR siempre son preferidos en las
implementaciones, porque es posible diseñarlos fácilmente para que sean de fase lineal. Además
los transitorios de un filtro FIR son perfectamente controlables, en cambio en uno IIR no se
puede decir con certeza cuánto tiempo hay que esperar para que la salida sea cero (a un nivel
despreciable, digamos), y además esto depende de la amplitud y naturaleza de l entrada. Todos
estos inconvenientes hacen que la implementación FIR de filtros sea preferible. Por lo tanto
existe motivación suficiente como para pensar alternativas a las implementaciones QMF.
... ...
2π π 2π Ω
− 2M 2M 2M
π
donde se ha elegido el filtro prototipo Q0 (z) = H0 (z ej 2M ), para algún H0 (z) pasabajos de
ancho de banda π/2M ya que esto posibilita que todas las combinaciones de los filtros con su
imagen de frecuencia negativa tengan el mismo ancho de banda.
Definiendo entonces
Uk (z) = ck Qk (z), Vk (z) = c∗k Q2M −1−k (z)
podremos definir el filtro Hk (z) como
Hk (z) = ak Uk (z) + a∗k Vk (z), 0 ≤ k ≤ M − 1
donde las constantes ak y ck tienen magnitud 1, cuyo propósito se entenderá luego.
... ...
2π π 2π Ω
− 2M 2M 2M
En esta figura se muestra las imágenes de un filtro Uk (z) (para k = 1) seguido del submuestreo
por M y el sobremuestreo por el mismo factor, y en la figura siguiente lo mismo para el filtro
Vk (z).
2π(M −1) 2π 2π 2
V1(Ω e−j M ) V1(Ω) V1(Ω e−j M ) V1(Ω e−j M )
... ...
2π π 2π Ω
− 2M 2M 2M
Las figuras anteriores corresponderı́an a una entrada x(n) = δ(n). Si la entrada es otra, hay que
pensar que cada una de estas imágenes viene multiplicada por el espectro de X(Ω) desplazado en
forma correspondiente. Sumando las salidas de ambos filtros (multiplicadas por las constantes
ak y a∗k respectivamente, tendremos la salida total de Hk (z) submuestreada y sobremuestreada
por M . Como el submuestreo y sobremuestreo es por M , ya que el ancho de banda total de
2πk
Hk (z) es el doble del de Uk (z), no hay aliasing entre Uk (z) y sus otras imágenes Uk (zej M )
(digamos, no son contiguas), pero sı́ lo hay entre las imágenes de Uk (z) con el filtro Vk (z). Lo
mismo se puede ver que sucede para las imágenes del filtro Vk (z). Como Fk (z) es simplemente
un filtro Uk (z) (frequencias positivas) más otro Vk (z) (frequencias negativas), multiplicados por
las constantes respectivas, las componentes de aliasing serán para la parte negativa
2πk 2πk 2π(k+1) 2π(k+1)
(ak b∗k Uk (zej M )Vk (z))X(zej M ) + (ak b∗k Uk (zej M )Vk (z))X(zej M )
y ası́ mismo la salida de Fk−1 (z) será
2π(k−1) 2π(k−1) 2πk 2πk
(ak−1 b∗k−1 Uk−1 (zej M )Vk−1 (z))X(zej M ) + (ak−1 b∗k−1 Uk−1 (zej M )Vk−1 (z))X(zej M )
de modo que entre estas dos salidas podrı́amos plantear la anulación del aliasing debido a la
2πk
componente X(zej M ), de la siguiente manera
2πk 2πk
(ak b∗k Uk (zej M )Vk (z)) + (ak−1 b∗k−1 Uk−1 (zej M )Vk−1 (z)) = 0
Utilizando las definiciones de Uk (z) y Vk (z) y la condición de que el módulo de ck es 1, se llega
a que el término se anula si
ak b∗k = −ak−1 b∗k−1 , 1 ≤ k ≤ M − 1
h0 (n) = h0 (N − n)
Es decir, que el filtro H0 (Ω) es igual a un filtro HR (Ω) real, multiplicado por un factor de fase
lineal. Si N es impar, h0 (n) es el desplazamiento en el tiempo de algún filtro de fase cero hR (n),
que no es causal poqur es una función par, pero que tiene una transformada HR (Ω) real. De la
expresión de Uk (z) podemos ver que
2πk
Uk (z) = ck Qk (z) = ck Q0 (ze−j 2M )
2πk πk
= ck H0 (ze−j 2M e−j 2M )
π(2k + 1)
⇒ Uk (Ω) = ck H0 Ω −
2M
−j ΩN j
π(2k+1)N π(2k + 1)
⇒ Uk (Ω) = ck e 2 e 4M HR Ω −
2M
π(2k+1)N
de la cual se puede ver que eligiendo ck = e−j 4M logramos que Uk (z) tenga la misma fase
que H0 (z). Lo mismo vale para Vk .
Esto nos habilita a plantear las condiciones sobre bk que nos aseguran que fk (n) = hk (N −n).
Se puede demostrar que si bk = ak ∗ estas condiciones se cumplen. Y con la determinación de
esta variable quedará solo por definir el valor de ak , pero que de acuerdo a lo anteriormente
dicho nos conducirá a
ak = ±jak−1
Esta es una determinación recursiva, de modo que eligiendo alún valor para a0 todo el resto de
constantes quedan determinados. El valor de a0 se elige
a40 = −1
..
.
z −1 E2M −1 (z 2M )
donde T es una matriz de 2k × k elementos dados por tkl como se explica más arriba. Y
esta estructura puede ser ventajosamente aprovechada en el caso que se requiera hacer un
submuestreo ↓ M , como se vio anteriormente.