10. Vigesimotercera clase. Diseño de filtros FIR de fase lineal

Anuncio
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate
1
10. Vigesimotercera clase. Diseño de filtros FIR de fase lineal mediante
ventanas
De acuerdo con las propiedades de la DTFT vistas en la clase anterior, un sistema LTI con respuesta
en frecuencia H(ej) actúa como un filtro que selecciona las frecuencias de la señal de entrada:
h[n]
x[n]
y[n] 

 h[k ]x[n  k ]
k 
H(ej)
X(ej)
Y(ej)=H(ej)X(ej)
Figura 1. Sistema LTI como filtro selectivo en frecuencia
Esta selección le permitiría, por ejemplo, dejar pasar sólo las frecuencias bajas (filtro pasa-bajos),
sólo las frecuencias altas (filtro pasa-altos), o sólo una banda (filtro pasa-banda). Más aún, podría
eliminar una banda (filtro rechaza-banda) o hacer cualquier otra cosa, como muestra la siguiente
figura. En ella hemos supuesto que los coeficientes de los filtros son reales (por eso la simetría par)
y que tienen fase cero (la respuesta en frecuencia es real). Como la DTFT es periódica, este patrón
se repite cada 2 radianes por muestra.
H LP (e j )
Pasa-bajos
- -2
-1
0
1
2 
H HP (e j )
Pasa-altos
- -2
-1
0
1
2 
H BP (e j )
Pasa-banda
- -2
-1
0
1
2 
H BR (e j )
Rechaza-banda
- 1
2
0
1
2 
H (e j )
Otro
- 1
2
0
1
2 
Figura 2. Algunos filtros selectivos en frecuencia
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate
2
Por ejemplo, considerando la señal de voz femenina de la segunda clase, la siguiente es una
representación del efecto que tienen un filtro pasa-bajos y un filtro pasa-altos sobre una porción de
la señal. El rango de frecuencias que se muestran corresponde al intervalo [0,] porque, según la
propiedad de conjugación, como la señal es real (y los coeficientes de los filtros son reales), la
magnitud de la DTFT tiene simetría par.
Pasa-bajos a 7/30
h[n]
y[n]
g[n]
z[n]
x[n]
x[n]
1
0
-1
0
100
200
300
400
500
600
700
800
|X(ej )|, |H(ej )|, |G(ej )|
Pasa-altos a 7/30
0
-1
0
100
200
300
400
500
600
700
0
0
0.5
1
1.5
2
2.5
3
0
0.5
1
1.5
2
2.5
3
0
0.5
1
1.5
2
2.5
frecuencia , en radianes por muestra
3
1
0.5
1.5
|Z(ej )|, |G(ej )|
z[n]
0.5
0
800
1
0
-1
1
1.5
|Y(ej )|, |H(ej )|
y[n]
1
1.5
0
100
200
300
400
500
600
tiempo n, en muestras
700
800
1
0.5
0
Figura 3. Efecto de pasar una señal de voz por un filtro pasa-bajos y un filtro pasa-altos
Para ver cómo se diseñaron los filtros utilizados en la figura anterior, consideremos un filtro pasabajos ideal con frecuencia de corte c:
1   c
H d  e j   
0   c
El subíndice d se refiere a que ésta es la respuesta deseada y nos deberemos aproximar a ella lo más
que podamos. Como Hd(ej) es la DTFT de la respuesta al impulso del filtro hd[n], podemos
encontrar dicha respuesta al impulso mediante la DTFT inversa:

1  1 jn  c
1  e jnc  e jnc  sin(nc )
H
e
e
e
d


e



d




c
2  jn
2j
n
 c  n 

multiplicando numerador y denominador por c/,
1
hd [n] 
2

j
jn
1
d 
2
c
jn
hd [n] 
c
  
sinc  n c 

  
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate
3
¡Y Listo! Hemos diseñado nuestro primer filtro al encontrar la respuesta al impulso de un sistema
LTI que permite pasar todas las frecuencias por debajo de c y bloquea todas las frecuencias por
encima de c. Claro, la forma de convergencia de Hd(ej) hace que la ganancia en un intervalo
infinitesimal alrededor de las discontinuidades c, no sea uno y cero, aunque el área debajo de la
curva de error es cero: el fenómeno de Gibbs que estudiamos en el contexto de la serie de Fourier.
En efecto, si consideramos que Hd(ej) es una señal periódica en un dominio continuo, hd[n] es
simplemente su serie de Fourier es un dominio discreto y aperiódico.
hd[n], wc =0.62832
hd[n], wc =1.2566
hd[n], wc =1.885
hd[n], wc =2.5133
0.6
0.6
0.6
0.6
0.4
0.4
0.4
0.4
0.2
0.2
0.2
0.2
0
0
0
0
-0.2
-0.2
-0.2
-0.2
-10
0
10
Hd(ejw ), wc =0.62832
-10
0
10
Hd(ejw ), wc =1.2566
-10
0
10
Hd(ejw ), wc =1.885
1
1
1
0.5
0.5
0.5
0.5
0
-2
0
2
0
-2
0
2
0
10
Hd(ejw ), wc =2.5133
1
0
-10
0
-2
0
2
-2
0
2
Figura 4. Respuesta al impulso y respuesta en frecuencia de filtros h[n]=sinc(n*c/)*c/
Ese fenómeno de Gibbs nos revela un problema con nuestro flamante diseño: La expresión de hd[n]
debe evaluarse para cualquier n entero, lo cual implica que debimos empezar a responder a cada
señal de entrada desde un tiempo infinito antes de que la señal se presentara, y que nunca podremos
dejar de responder: Este es un filtro IIR no-causal cuya respuesta al impulso empieza desde menos
infinito! Sabemos que muchos filtros IIR se pueden implementar de manera recursiva mediante
estructuras ARMA, pero éste no es el caso. Así que nuestro primer filtro digital no es realizable.
Una forma de salir de esta dificultad es truncando la respuesta al impulso entre –N y N para algún
valor de N que nos permita satisfacer las características tolerables del filtro. Esto lo vuelve un filtro
FIR de 2N+1 coeficientes, pero sigue siendo no causal. Lo podríamos volver causal si añadimos un
retardo de N muestras en la respuesta al impulso. La siguiente expresión muestra ambos
procedimientos:
hd [n]
Filtro ideal IIR no causal (irrealizable)
hF [n]  hd [n]  u[n  N ]  u[n  N  1]
Filtro FIR no causal (irrealizable en tiempo real)
hFC [n]  hd [n  N ]  u[n]  u[n  2 N  1]
Filtro FIR causal (realizable en tiempo real)
Como vimos cuando analizamos la convergencia de la serie de Fourier, truncar la respuesta al
impulso genera oscilaciones alrededor de las frecuencias de corte en la respuesta en frecuencia. Y
según la propiedad de desplazamiento en tiempo, la causalización del filtro genera un cambio lineal
de la fase de la respuesta al impulso. Estos efectos se muestran en la siguiente figura, que se refiere
a un filtro pasa-bajos con frecuencia de corte /2 en el que la respuesta ideal al impulso se trunca
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate
4
entre n=-9 y n=9 para obtener un filtro FIR de 19 coeficientes, y después se causaliza desplazándolo
9 muestras. Como en los casos del filtro ideal y del filtro truncado existe simetría par en la respuesta
al impulso, la respuesta en frecuencia es real pero los cambios de signo se ven como saltos de 
radianes en la fase. Los mismos cambios de signo se ven en la fase del filtro causalizado,
superpuestos a un desfase lineal de -9, que corresponde al retardo en la respuesta al impulso.
|Hd(ejw )|
hd[n] (IIR, no causal)
fase(Hd(ejw ))
3
1
0.4
2
0.2
0.5
1
0
-0.2
-30
-20
-10
0
10
20
0
30
-3
-2
-1
0
1
2
0
3
-3
-2
-1
|Hf (ejw )|
hf [n] (FIR, no causal)
1
2
3
1
2
3
2
3
3
1
0.4
0
fase(Hf (ejw ))
2
0.2
0.5
1
0
-0.2
-30
-20
-10
0
10
20
0
30
-3
-2
-1
0
1
2
0
3
-3
-2
-1
|Hfc (ejw )|
hfc [n] (FIR, causal)
0
1
0.4
0
fase(Hfc (ejw ))
-10
0.2
0.5
-20
0
-0.2
-30
-20
-10
0
10
20
0
30
-3
-2
-1
0
1
2
-30
3
-3
-2
-1
0
1
Figura 5. Filtro pasa-bajos a /2. Ideal, truncado y causalizado
Claro, el último filtro es directamente implementable para ser evaluado en tiempo real, como se
muestra en el siguiente diagrama, en el que hemos aprovechado que varios de los coeficientes de la
respuesta al impulso son cero (sinc(k/2)=0 cuando k es un número par diferente de cero).
x[n-2]
z-2
z-2
x[n]
b9
x[n-4]
b7
+
x[n-6]
z-2
z-2
b5
b3
+
x[n-8]
+
x[n-9]
z-1
b1
z-1
b0
+
x[n-10]
x[n-14]
z-2
z-2
b1
+
x[n-12]
b3
+
b7
+
x[n-18]
z-2
z-2
b5
+
x[n-16]
b9
+
bk=sinc(k/2)/2
y[n]
Figura 6. Filtro FIR causal pasa-bajos a /2
De ahora en adelante omitiremos el paso de causalización y supondremos que la respuesta en
frecuencia es real. Después de todo, si deseamos implementar el filtro en tiempo real, sólo
necesitamos desplazar la respuesta al impulso con lo que obtendremos un retardo a la salida o, lo
que es lo mismo, una fase lineal en la respuesta en frecuencia.
La siguiente figura permite observar el efecto de truncar la respuesta ideal al impulso, el cual ya
habíamos estudiado en el contexto de la convergencia de la serie de Fourier.
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate
5
Respuesta en frecuencia
Ideal
N=29
N=9
N=5
1
0.8
0.6
0.4
0.2
0
-0.2
0
0.5
1
1.5
frecuencia 
2
2.5
3
Figura 7. Respuesta en frecuencia de filtros reales e ideales pasa-bajos a /2
Podemos notar que, a diferencia de la respuesta ideal, las respuestas reales incluyen un rizado en las
bandas pasante y detenida y una banda de transición entre ellas, como se muestra en la siguiente
figura.
H(ej)
1+1
1
1-1
2
-2
0
L c H


Figura 8. Forma general de la respuesta de un filtro pasabajos
Con el diseño que realizamos, el parámetro N nos permite ajustar el ancho de la banda de transición,
pero no nos permite ajustar el rizado en las bandas pasante y detenida porque el fenómeno de Gibbs
implica que 1=2=0.09, independientemente de N. Este efecto se debe a que usamos una ventana
rectangular para truncar la longitud del filtro:
hr [n]  hd [n]wr [n]
wr [ n ]u [ n  N ]u[ n  N 1]
pero podríamos usar otra ventana que reduzca el cambio brusco de uno a cero. Por ejemplo,
consideremos la ventana Hamming, definida de la siguiente manera:
hh [n]  hd [n]wh [n]
wh [ n ] (0.54  0.46cos( n / N )) wr [ n ]
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate
6
La siguiente figura compara las dos ventanas y su efecto en la respuesta en frecuencia del filtro
pasabajos truncado.
ventana con N=9
Respuesta en frecuencia con N=9
Rectangular
Hamming
0.5
0
-30
Rectangular
Hamming
1
H(ej )
w[n]
1
0.5
0
-20
-10
0
n
10
20
30
0
0.5
2
2.5
3
Respuesta en frecuencia con N=21
Rectangular
Hamming
Rectangular
Hamming
1
H(ej )
1
w[n]
1.5

ventana con N=21
0.5
0
-30
1
0.5
0
-20
-10
0
n
10
20
30
0
0.5
1
1.5
2
2.5
3

Figura 9. Efecto de la forma de la ventana en la respuesta en frecuencia del filtro pasa-bajos FIR
Efectivamente, en comparación con la ventana rectangular, la ventana Hamming reduce el rizado en
la banda pasante y en la banda suprimida, pero a costa de ensanchar la banda de transición. El
diseño de filtros FIR mediante ventanas se limita a escoger la forma de la ventana y su longitud para
que satisfaga los criterios de diseño 1, 2, L y H.
La siguiente es una tabla con algunas ventanas típicas y su efecto sobre un filtro pasa-bajos con
frecuencia de corte /4.La tabla muestra también la magnitud de la respuesta en frecuencia del filtro
pasa-bajos en decibeles, con la intención de ver con mayor claridad el efecto de la ventana. Por
ejemplo, las grandes oscilaciones alrededor de la frecuencia de corte de la ventana rectangular se
deben a la amplitud de cerca de -20.5 dB (una ganancia de 0.095) del primer lóbulo lateral, la cual
sólo se reduce a -40 dB (una ganancia de 0.01) en =. Sin embargo, el primer cruce por cero de
esa respuesta en frecuencia se da en =0.27, que es un valor muy cercano a la frecuencia de corte
/4. Con la ventana Hanning, en cambio, el primer lóbulo lateral tiene una amplitud de -45 dB
(ganancia 0.006), y los demás lóbulos se atenúan rápidamente hasta alcanzar -123 dB en =. Pero
el primer cruce por cero se da en =0.31, indicando un ancho de la banda de transición mucho
mayor. Desafortunadamente, el hecho de que el primer lóbulo tenga una amplitud de -45 dB es el
que determina el parámetro de rizado del filtro, de manera que atenuar tanto las demás frecuencias
de la banda rechazada no parece tan buena idea. Por eso se usa la ventana Hamming, que tiene una
ganancia más pareja en toda la banda rechazada, pero con una amplitud de -55 dB en el lóbulo
principal (ganancia de 0.0018): El rizado se reduce tres veces, aunque en = la amplitud sólo se
haya reducido a -62 dB. El ancho de la banda de transición es semejante al filtro con ventana
Hanning por lo que, normalmente, la ventana Hamming se prefiere a la ventana Hanning. Por
último, la ventana Blackman consigue reducir la ganancia del primer lóbulo lateral a -75 dB
(0.00018) con los mismos 61 coeficientes, pero el primer cruce por cero ocurre en =0.37. Así
pues, entre estas ventanas la preferible parece ser la Hamming, a menos que se requiera un rizado
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate
7
muy pequeño y se pueda tolerar una lenta transición entre la banda pasante y la banda rechazada, en
cuyo caso la ventana Blackman sería la adecuada.
Tabla 1. Algunas ventanas y sus efectos en un filtro pasa-bajos a  /4
Nombre y
Expresión para w[n], |n|N
Respuesta en frecuencia de un filtro pasabajos de 61
coeficientes (N=30)
filtro pasabajos con ventana Rectangular
Rectangular
1
filtro pasabajos con ventana Rectangular
0
1
-20
0.8
0.6
-40
10
0.8
20log |H(ej )|
H(ej )
1
0.4
0.6
-60
-80
0.2
0.4
-100
0
0.2
0
0.5
1
-20
1.5
2
2.5
-120
3
0
0.5
1
1.5

0
-15
-10
-5
0
5
10
15
2
2.5
3

20
filtro pasabajos con ventana Hanning
Hanning
[1+cos(n/N)]/2
filtro pasabajos con ventana Hanning
0
1
-20
20log |H(ej )|
0.8
0.8
0.6
-40
10
H(ej )
1
0.4
0.6
-80
0.2
0.4
-100
0
0.2
0
0.5
1
1.5
2
2.5
-120
3
0
0.5
1
1.5

0
-20
-60
-15
-10
-5
0
5
10
15
2
2.5
3

20
filtro pasabajos con ventana Hamming
Hamming
0.54+0.46cos(n/N)
filtro pasabajos con ventana Hamming
0
1
-20
20log |H(ej )|
0.8
0.8
0.6
-40
10
H(ej )
1
0.4
0.6
-80
0.2
0.4
-100
0
0.2
0
0.5
1
1.5
2
2.5
-120
3
0
0.5
1
1.5

0
-20
-60
-15
-10
-5
0
5
10
15
2
2.5
3

20
filtro pasabajos con ventana Blackman
Blackman
0.42+0.5cos(n/N)+0.08cos(2n/N)
filtro pasabajos con ventana Blackman
0
1
-20
20log |H(ej )|
0.8
0.8
0.6
10
H(ej )
1
0.4
0.6
-40
-60
-80
0.2
0.4
-100
0
0.2
0
-20
0.5
1
1.5

0
-15
-10
-5
0
5
10
15
2
2.5
3
-120
0
0.5
1
1.5
2
2.5
3

20
Existen muchas otras clases de ventanas, algunas de ellas, como la ventana Kaiser o la ventana
Tuckey, con parámetros configurables que permiten balancear los compromisos que existen entre la
amplitud del rizado y al ancho de la banda de transición.
La instrucción de matlab h=fir1(N,f) usa el método de la ventana para diseñar un filtro FIR
pasa-bajos con N+1 coeficientes, fase lineal y frecuencia de corte c=f, usando una ventana
Universidad Distrital Francisco José de Caldas - Análisis de Señales y Sistemas - Marco A. Alzate
8
Hamming. Se pueden definir múltiples bandas y escoger diferentes ventanas. Use >>help fir1
para ver los detalles.
Descargar