Vous êtes sur la page 1sur 12

Taller 6: Diseño de Filtros FIR por Método de muestreo en frecuencia

Rubén Darío Gómez Tovar

Código N.º 20071005007 *

Julián Alberto Fuentes Ochoa Código N.º 20071005013 **

7 Diciembre 2011

Resumen

Este documento presenta el desarrollo del Taller 6 para el curso de Procesamiento Digital de Señales. Este taller se propone entorno al desarrollo y análisis de los filtros de respuesta finita FIR. Como se ha especificado en el curso de Procesamiento Digital de Señales la DFT de la respuesta de un filtro FIR permite el diseño de filtros que dependan de una interpolación exacta de las muestras deseadas (método de muestreo en frecuencia). La conclusión del proyecto consistirá en reconstruir el espectro continuo de una señal discreta a partir de los muestreos de la función de espectro continuo, el espectro reconstruido será igual al espectro continuo sólo en las frecuencias de muestreo.

Palabras Clave: Filtros FIR, Muestreo en frecuencia.

1

1. Introducción

Este método diseña un filtro cuya respuesta en frecuencia pasa exactamente por las muestras especificadas de la respuesta en frecuencia deseada y, por tanto, es una técnica de interpolación. La base del método de diseño de filtros es la que sigue. Puesto que la DFT de la respuesta al impulso de un filtro FIR es un conjunto equiespaciado de muestras de su respuesta en frecuencia, la DFT inversa de las muestras es la respuesta al impulso del filtro.

2. Proyecto 1

2.1 Diseño de un filtro paso bajo

Diseñe un filtro FIR paso bajo de fase lineal de longitud 23 para aproximarlo a una respuesta ideal cuyo extremo de la banda de paso es ω =0.3π. Asuma que la frecuencia de muestreo es la unidad, por lo que la pulsación de Nyquist es ω=π.

a. Forme un vector con las muestras de la función de amplitud idea entre las frecuencias cero y π. Este vector de amplitud valdrá uno para las frecuencias situadas entre cero y el extremo de la banda y cero desde ese punto hasta π. La simetría requerida determina la amplitud para las frecuencias de π a 2π demuestre que las siguientes ordenes de MATLAB realizan lo indicado.

pass=fix(w0*L/(2*pi))+1;

if rem(L, 2)==0, s=-1; else s=1; end;

Ad=

2*pass+1), s*ones(1,pass-1)];

[ones(1,pass),zeros(1,L-

2

b. Cree un vector de fase que cuando se multiplique punto a punto con el vector de amplitud obtenga la respuesta en frecuencia de fase lineal. Recuerde

que = 1 . Explique cómo se hace lo enunciado con

c. Diseñe el filtro empleando la IDFT con la orden de MATLAB H=ifft(H) La respuesta al impulso H(n) debería ser real y simétrica. Elimine cualquier parte imaginaria pequeña o nula ejecutando h=real (h). Si la parte imaginaria no es pequeña, habrá cometido un error, probablemente en las simetrías de H. Dibuje h(n) empleando dimpulse o stem.

d. Compruebe el filtro calculando el modulo de la respuesta en frecuencia. La forma de hacerlo sobre un gran número de frecuencias es. ¿Tiene aspecto de ser un buen filtro paso bajo con la frecuencia de corte correcta?. ¿Por qué se dibuja solo la mitad de Mag? Dibuje la función de amplitud ideal Ad del apartado (a) superponiéndola con el dibujo de Mag para ver si la actual respuesta en frecuencia interpola las muestras de la respuesta ideal, como se indicaba. Inténtelo empleando freqz para calcular la respuesta en frecuencia ¿Qué método es más fácil y/o más versátil?

e. Calcule y dibuje la función de amplitud

eliminando la fase lineal de ( ) esto se hace de

ѳ(w)=-

M(w)=-((L-1)/2) w de (1-13). Demuestre que se puede realizar del siguiente modo El modulo y la función de amplitud de la respuesta en frecuencia deberían ser exactamente iguales, excepto donde la segunda es negativa. ¿ Es cierto en sus dibujos?

(1-7) como A(w)= ( )( ) con la

f. Se puede usar un método alternativo para calcular la respuesta en frecuencia y comprobar si pasa por los puntos especificados. Hay que añadir un múltiplo de 23 ceros a h(n) y realizar la DFT.

Algunos de los valores calculados estarán en las frecuencias de las muestras originales deseadas. Compare la respuesta en frecuencia de su filtro diseñado en estos puntos para ver si el modulo es el correspondiente uno o cero. Dibuje el modulo y la función de amplitud obtenidos y los ideales en un mismo grafico para demostrar la interpolación.

g. Dibuje la fase en función de la frecuencia para ver si es lineal y presenta la constate de linealidad apropiada. Ya que la fase es ambigua en modulo 2π y puesto que un cambio de signo en la función de amplitud es equivalente a un desplazamiento de fase de π, en el dibujo de la fase deben aparecer numerosas discontinuidades. Observe y explique el tamaño y la posición de los saltos o discontinuidades en el dibujo de la fase. Observe también la fase impredecible donde la amplitud es cero. Estudie la orden unwrap para eliminar alguno de los saltos. Explíquelo.

h. Dibuje la posición de los ceros en el plano z con zplane.m o empleando plot. Relaciones la posición de los ceros con la forma de los dibujos de la respuesta en frecuencia. Relacione el número de ceros con la longitud del filtro.

2.2 Fase

de

la

frecuencia.

respuesta

en

Si se calcula la fase empleando la orden phase, se obtiene la función ѳ(w), que acompaña al modula de la respuesta en frecuencia. Como se comentaba con anterioridad en la descripción del primero proyecto se observaba en el ejercicio 1.1(g), la fase presenta saltos de π cada vez que la función de amplitud cambia de signo, incluso cuando es una fase lineal la que se analiza. Escriba para este ejercicio una función .m que elimine los saltos de π de ѳ(ω) para obtener Ф(ω). Recuerde que pueden ocurrir saltos de 2π debido a la ambigüedad matemática del ángulo de modulo 2π. Puede consultar la orden unwrap para ver como se hace

3

lo indicado, ya que dicha orden intenta eliminar los saltos. Compruebe su función en la curva de fase de un filtro de fase lineal y demuestre que realmente se obtiene una fase lineal.

2.3 Emplee una fase incorrecta.

Experimente diseñando filtros con la misma amplitud deseada en el primer ejercicio, pero con una fase que no sea consistente con la longitud del filtro. Observe especialmente la respuesta en frecuencia entre las muestras.

a. Use un desplazamiento de fase cero. En otras

palabras emplee ( ) = ( ) ¿Cómo es

filtro h(n) comparado con el diseñado en el ejercicio 1.1 con la fase apropiada? Compare los módulos de la respuesta en frecuencia. ¿interpola el modulo de dicha respuesta en frecuencia las muestras deseadas del mismo modo que lo hacia el diseño según el método de muestreo en frecuencia? Dibuje la posición de los ceros de la función del sistema y compárelos con la posición de los diseñados en el ejercicio 1.1.

el

b. Diseñe un filtro de longitud 23 como en el ejercicio 1.1 pero emplee un desplazamiento de fase correspondiente a una longitud de 11. ¿ cómo es el filtro h(n) comparado con el diseñado en el ejercicio 1.1 con la fase apropiada? Compare los módulos de las respuestas en frecuencia ¿ interpola las muestras deseadas? Dibuje la posición de los ceros.

c. ¿Qué desplazamientos de fase presentan siempre el mismo modulo de la respuesta en frecuencia? ¿Por qué?

d. Inténtele con otra fase y comente los efectos que se producen en el diseño final y en su función de amplitud.

2.4 Diseño de filtros de longitud par.

Para ver la diferencia entre los filtros FIR de longitud par e impar, repita el ejercicio 1.1 para L=22. En este caso, la constante de linealidad para la fase M=(L-1)/2 no es un numero entero, es un múltiplo impar de 0.5. Calcule y dibuje el modulo y la fase de la respuesta en frecuencia. Compruebe que los valores en las muestras en frecuencia. Dibuje la posición de los ceros ¿Por qué un filtro FIR simétrico de fase lineal y longitud par siempre tiene un cero en w=π? Compare la cantidad de oscilaciones próximas al extremo de la banda con respecto al diseño para L=23.

2.5 Obtener las formulas de diseño

Deduzca (1-12) de la condición de fase lineal y de (1-3). Deduzca (1-16).

2.6 Diseño mediante formula.

Puesto que las formulas también se pueden usar para diseñar filtros FIR según el método de muestreo en frecuencia, emplee (1-12) para diseñar un filtro FIR con las mismas especificaciones indicadas en el ejercicio 1.1 ¿se obtiene exactamente el mismo filtro que empleando la DFT? ¿Cómo elegiría que método usar?

2.7 Diseño mediante la resolución del sistema de ecuaciones.

Diseñe un filtro FIR de longitud 23 con las mismas especificaciones del ejercicio 1.1 pero obtenga los coeficientes del filtro resolviendo los sistemas de ecuaciones dados en (1-19) y (1-20) ¿Cuántas muestras y ecuaciones son necesarias? Recuerde que el número de ecuaciones e incógnitas debería ser el mismo, es decir, la matriz de cosenos debería ser cuadrada. ¿Se puede eliminar alguna redundancia? ¿Hay algunas otras diferencias entre diseñar filtros de longitud par e impar aparte de usar el juego de ecuaciones correcto? ¿Cómo es ese método de diseño comparado con el uso de formulas o de la DFT?

4

2.8 Muestreo alternativo

Emplee el esquema de muestreo alternativo mostrado en la expresión (1-16) para diseñar filtros paso bajo con las mismas especificaciones dadas con anterioridad ¿ cuál es la diferencia entre la respuesta en frecuencia de los filtros diseñados con el esquema de muestreo normal y con el esquema alternativo? ¿ Cual da una aproximación más cercana al extremo de la banda deseado w0? Explique por qué para algunos w0 es mejor el esquema usual y para otros es mejor el esquema alternativo. Para los dos métodos de muestreo y para longitudes par e impar. ¿Cuándo hay una muestra de w=0? ¿Cuándo es w=π? ¿ Puede inventar un método para usar la IDFT y obtener el esquema de diseño de muestreo alternativo? ¿Puede inventar un método para usar la solución del sistema de ecuaciones con este esquema de muestreo?

2.9 Fenómeno de Gibbs

Al diseñar filtros por muestreo en frecuencia ocurre un tipo de fenómeno de Gibbs, del mismo modo que en la expansión directa de Fourier, el pico máximo es aproximadamente el 9% del tamaño de la discontinuidad. ¿Cuál es el tamaño del correspondiente pico máximo en la respuesta en frecuencia del filtro diseñado mediante el método de muestreo en frecuencia?

Desarrollo.

3.1 Diseño de un filtro paso bajo

Para el diseño del filtro es necesario definir algunas variables, se forma un vector con muestras de la función de amplitud ideal entre frecuencias 0 y π

a. En este numeral se forma el vector con amplitud uno para frecuencias situadas en los extremos y cero hasta π.

Se define L y W0

L=23;

w0=0.3*pi;

Posteriormente se usa la función fix de matlab que Permite identificar el numero de muestras en la banda.

En la siguiente figura se puede observar Ad que es

la amplitud en frecuencia ideal.

se puede observar Ad que es la amplitud en frecuencia ideal. Figura 1: Ad de la

Figura 1: Ad de la función

En el caso que una de las muestras coincida con

w0 el valor de corte de W0 seria múltiplo de π y no

se podría definir.

La sentencia if es necesaria debido a que nos ayuda

a saber si la función es par o impar y esta

5

información se usa para determinar la simetría de la respuesta en frecuencia del filtro.

b.

A

continuación se creará un vector fase que al ser

multiplicado punto a punto con el vector amplitud

obtiene la respuesta en frecuencia de fase lineal. Para ello se utilizan diferentes comandos:

se

Una medida conveniente de la linealidad de la fase

es

el retardo de grupo, que describe el efecto de la

fase de la respuesta en frecuencia de un sistema sobre una señal de banda angosta. Para el caso de

filtro FIR, el retardo de grupo es constante, y se obtiene mediante M=(L-1)/2;

un

Con los datos que tenemos para este ejemplo, M = 11;

A

continuación se procede a encontrar el vector

fase, el cual es de la forma

 
 

Entre 0 y L-1.

Se

realiza el producto punto a punto de Ad*p y se

ingresa en H, para poder llamarlo la respuesta e

frecuencia del filtro real diseñado.

 
 

Es

decir que, se obtiene la respuesta en frecuencia

deseada para el filtro FIR de L=23.

c.

Mediante la IDFT en Matlab es posible obtener el diseño del filtro.

h=ifft(H);

Mediante la IDFT en Matlab es posible obtener el diseño del filtro. h=ifft(H); Figura 2: Parte

Figura 2: Parte real e imaginaria de h

Es posible observar que la respuesta obtenida adquiere una parte imaginaria, sin embargo es muy pequeña, lo cuál puede ser por el error de acumulación que Matlab posee, así la forma de obtener la respuesta deseada sería h=real(h);

la forma de obtener la respuesta deseada sería h=real(h); Figura 3: h[n] d. Como medida para

Figura 3: h[n]

d. Como medida para comprobar el filtro se calcula la respuesta en frecuencia. Para encontrar la respuesta en frecuencia de la señal h[n] se utiliza el comando fft de Matlab así,

de la señal h[n] se utiliza el comando fft de Matlab así, Figura 4: Respuesta en
de la señal h[n] se utiliza el comando fft de Matlab así, Figura 4: Respuesta en

Figura 4: Respuesta en frecuencia del filtro real

6

Se observa que en cada muestra tomada la respuesta del filtro es igual a la deseada, pero no se garantiza un buen comportamiento por la cantidad de estas, el resto de la grafica en la figura 6 es una interpolación de las muestras. En la figura anterior se observan distintos errores producidos como la frecuencia de corte algo menor y un rizado grande. El dibujo se realiza entre 0 y π debido a la paridad del filtro.

e. Ahora se intentara calcular y plasmar la función

amplitud eliminando la fase lineal, para esto se usan los comandos.

M=(L-1)/2;

k=[0:511];

p=exp(2*pi*j*M*k/512);

Amp=real(p.*(fft(h,512)));

k=[0:511]; p=exp(2*pi*j*M*k/512); Amp=real(p.*(fft(h,512))); Figura 5: Respuesta en frecuencia del filtro real f. En la

Figura 5: Respuesta en frecuencia del filtro real

f. En la figura 6 podemos observar que si son exactamente iguales, excepto donde la segunda es negativa.

Figura 6: Respuesta incluyendo eliminación de fase lineal g. … Figura 7: h[n] con ceros

Figura 6: Respuesta incluyendo eliminación de fase lineal

g.

6: Respuesta incluyendo eliminación de fase lineal g. … Figura 7: h[n] con ceros adicionales Figura

Figura 7: h[n] con ceros adicionales

de fase lineal g. … Figura 7: h[n] con ceros adicionales Figura 8: Filtros H(w) h.

Figura 8: Filtros H(w)

h. En la siguiente figura se observa el número de ceros y su posición.

figura se observa el número de ceros y su posición. Figura 9: Posición de los ceros

Figura 9: Posición de los ceros plano Z

Como se puede observar en la figura 9, el numero de ceros corresponde a la longitud L del filtro, fuera de eso son equidistantes.

3.2 Fase de la respuesta en frecuencia

La idea de este apartado es construir una función en MATLAB, un .m que elimine los saltos de la fase θ(ω) obtenida mediante la función fase. El objetivo es emular lo hecho por la función Unwrap.

7

Se parte del modulo como variable de entrada, posteriormente separamos su fase para procesarla

El código queda de la siguiente forma

P=angle (HH); N = length(P); up = zeros(size(P)); pm1 = P(1); up(1) = pm1; po = 0; thr = pi - eps; pi2 = 2*pi; for i=2:N cp = P(i) + po; dp = cp-pm1; pm1 = cp; if dp>thr while dp>thr po = po - pi2 dp = dp - pi2; end end if dp<-thr while dp<-thr po = po + pi2 dp = dp + pi2; end end cp = P(i) + po; pm1 = cp; up(i) = cp; end

dp + pi2; end end cp = P(i) + po; pm1 = cp; up(i) = cp;

Figura 10: fase sin saltos

8

3.3 Emplee una fase incorrecta

Con la intención de observar las características básicas de los filtros empleados se propone la inconsistencia de fases en los filtros.

a. Con el desplazamiento de fase cero

H2=Ad;

Se evita la correción que se evidenció en los filtros pasa- bajos,mediante la pate imaginaria nula proveniente de la transformada inversa.

pate imaginaria nula proveniente de la transformada inversa. Figura 11: respuesta deseada Con la DFT de

Figura 11: respuesta deseada

Con la DFT de h2[n] se obtiene la función en frecuencia H2(w). En El modulo de la respuesta en frecuencia de la señal de fase incorrecta, es posible observar las diferencias con el modulo de fase correcta

b. Teniendo en cuenta el filtro con L=23 se intenta demostrar en la misma gráfica las diferencias de fase que tienen tanto los filtros empleados desde el ejercicio 1.1 como los de la respuesta deseada con los del desplazamiento de fase que se realizan con el numero planteado en el libro L=11.

Figura 12: magnitud de respuesta deseada, ejercicio 1.1 y L=11 En el nuevo caso se

Figura 12: magnitud de respuesta deseada, ejercicio 1.1 y

L=11

En el nuevo caso se evidencia un aumento en el rizado de la parte de rechazo, sin embargo se presenta al mismo tiempo una disminución en la banda de paso.

c. Se cambiaron los valores de M1 en el código expuesto con el fin de determinar una relación o un comportamiento característico del filtrado para valores de L con la característica L1=(2n-1)L.

para valores de L con la característica L1=(2n-1)L. Figura 13: respuesta del filtro De tal forma,

Figura 13: respuesta del filtro

De tal forma, se pudo concluir que este cambio en el número de retardo de grupo y de la forma expuesta se presenta igual que en la respuesta en frecuencia.

d. con fases distintas a las ya empleadas se pudo observar un comportamiento distinto, variando este retardo de grupo se llego a una expresión básica de L2=2nL, con una respuesta de la siguiente forma

básica de L2=2nL, con una respuesta de la siguiente forma Figura 14: respuesta filtro 3.4 Diseño

Figura 14: respuesta filtro

3.4 Diseño de filtros de longitud par

ejercicio 1.1 con el

objetivo de diseñar un filtro FIR pero en este caso de

longitud par.

En este ejercicio se va a repetir el

Como primera opción se escoge L=22.

Se efectúan los mismos comandos que en el ejercicio 1.1 a

9

Figura 15: respuesta en frecuencia ideal en filtro par Al calcular la respuesta en frecuencia

Figura 15: respuesta en frecuencia ideal en filtro par

Al calcular la respuesta en frecuencia del filtro real, es decir para L=22 mediante los comandos de Matlab se obtiene la siguiente figura

los comandos de Matlab se obtiene la siguiente figura Figura 16: respuesta en filtro con L=22

Figura 16: respuesta en filtro con L=22

En la figura anterior se puede observar la respuesta obtenida con dicha longitud comparada con la real, observando las diferencias y similitudes con su correspondiente impar, entre las diferencias observamos que la parte negativa se omite y se invierte.

10

observamos que la parte negativa se omite y se invierte. 10 Figura 17: fase para filtro

Figura 17: fase para filtro l=22

observar la fase de la respuesta en frecuencia se

observan errores que se corrigen aplicando la función Unwrap.

Al

se observan errores que se corrigen aplicando la función Unwrap. Al Figura 18: fase para filtro

Figura 18: fase para filtro l=22 con Unwrap

Figura 19: posición de los ceros filtro par 3.5 Obtener las formulas de diseño Partiendo

Figura 19: posición de los ceros filtro par

3.5 Obtener las formulas de diseño

Partiendo de las ecuaciones (1-3) y de la condición de fase lineal se deducen las ecuaciones:

ℎ( ) = +

2 cos 2 ( ) / (1-12)

ℎ( ) = −1 + ∑

)/ ) (1-16)

2 cos( 2 ( )( +

3.6 Diseño mediante formula

En este apartado se diseña el filtro a partir de la ecuación

1.12:

ℎ( ) = + 2 cos

1

2 ( ) /

El resultado del filtro se observa en la siguiente figura.

11

resultado del filtro se observa en la siguiente figura. 11 Figura 20: filtro diseñado con formula

Figura 20: filtro diseñado con formula

Para saber si se obtiene el mismo filtro se va a comparar en la misma figura.

obtiene el mismo filtro se va a comparar en la misma figura. Figura 21: comparación con

Figura 21: comparación con filtros

Según la figura anterior los filtros diseñados con los métodos funcionan por igual, el método a usar depende de factores como el error que se requiera y la capacidad de procesamiento

3.7 Diseño de un filtro paso bajo

3.8 Muestreo alternativo

En este apartado se usa la expresión (1-16) para diseñar el filtro con las mismas especificaciones.

= −1 + 2 cos( 2 ( )( + 2 )/ )

1

1

+ 2 cos( 2 ( − )( + 2 )/ ) 1 1 Figura 22: filtro

Figura 22: filtro con expresión

En la figura anterior podemos ver el filtro resultante de la expresión 1-16 y podemos contestar las preguntas.

Según la figura la respuesta más favorable es el filtro diseñado con el esquema de muestreo normal ya que da una aproximación más cercana al extremo de la banda deseada.

3.9 Fenómeno de Gibbs

El

discontinuidad.

fenómeno

de

Gibbs

representa

el

tamaño

de

la

Analizando los resultados podemos decir que el tamaño del pico máximo en la respuesta en frecuencia del filtro

12

diseñado mediante el método de muestreo en frecuencia es aproximadamente del 11%

max (abs(HH)) = 1.1136

4 Conclusiones

[a] En el análisis de la DFT de una señal exponencial real, se observa que debido a la propiedad de la DFT, referente a la transformación de una señal con simetría conjugada se cumple que el módulo posee simetría par y la fase posee una simetría impar.

[b]

Los filtros FIR presentan un alto grado de estabilidad, por la presencia únicamente de los polos, con la gran ventaja de que pueden ser diseñados para ser de fase lineal, lo cual impide introducir desfases en la misma.

[c]

El aumento en el tiempo de cálculo debido a los coeficientes en los filtros FIR los hacen una solución difícil al detener aplicaciones en tiempo real constantemente

[d]

Se estudiaron algunas propiedades de simetría en los dominios del tiempo y de la frecuencia. Unas de estas propiedades tienen que ver con que la señal sea real o imaginaria. También se profundizó en la propiedad de simetría conjugada y asimetría conjugada.

5

[1]

Bibliografía

A.

V.

Oppenheim,

Señales

Pearson Education, 1998.

[2]

S.

Burrus,

Computer-based

y

sistemas.

México:

exercises

for

signal

processing using Matlab. Prentice Hall, 1994.