18/7/15

Filtros FIR (parte 2)

En este artículo introduciremos el concepto de la respuesta en frecuencia de un filtro FIR y mostraremos que la respuesta al impulso y respuesta en frecuencia están relacionadas unívocamente.
Veremos que cuando la entrada del sistema es una sinusoide compleja a la salida, obtenemos una nueva sinusoide compleja de la misma frecuencia pero con diferente magnitud y fase.

Recordemos la ecuación diferencia:

Si asumimos que a la entrada del sistema tenemos una exponencial compleja con frecuencia normalizada, podemos encontrar la respuesta en frecuencia de un filtro FIR. Igualmente, si la respuesta al impulso es la misma que la secuencia de coeficientes del filtro, podemos expresar la respuesta en frecuencia en término de su respuesta impulsional.

 
Veamos un ejemplo, imaginemos que tenemos un sistema cuyos coeficientes de su ecuación diferencia son: bk=[1,2,1]. Sustituyendo en la ecuación anterior encontramos su respuesta en frecuencia.

 
Para encontrar su respuesta de magnitud y fase manipulamos la ecuación sacando factor común:

Y recordando la ecuación inversa de Euler obtenemos que la respuesta en frecuencia del filtro es:

Donde la magnitud es 2+2cos(w) y la fase –w.
Si introducimos en el sistema una señal compleja de valor:

la respuesta de magnitud y fase del filtro serán:

 
Por lo tanto, la salida del sistema a la señal de entrada será:


 
Como vemos, la magnitud se ha multiplicado por 3 y la fase sufre un retraso de una muestra.

respuesta del filtro     

 
Fijémonos que una vez conocidos los coeficientes del filtro podemos determinar el comportamiento en frecuencia del mismo. Así, para:

Respuesta de Magnitud y Fase
 
El principio de superposición nos permite de manera fácil encontrar la salida de un sistema si la entrada es una suma de exponenciales complejas.
En el proceso, descomponemos la señal de entrada en sus exponenciales complejas y mediante la propiedad de la superposición, determinamos la salida de cada componente separadamente y luego los sumamos para obtener la salida del sistema.
Debido a que la señal de entrada puede descomponerse en  exponenciales complejas, es fácil encontrar la salida si conocemos la respuesta en frecuencia del filtro.
Para el mismo filtro anterior, veamos ahora el comportamiento de una señal de entrada compuesta por 3 ondas sinusoidales.

Señal de entrada
 
La señal de entrada es:

 
Y como conocemos la respuesta en frecuencia del filtro, fácilmente podemos encontrar la salida del sistema.
La respuesta del filtro es:


Por lo tanto:
y la salida del sistema:
Salida del sistema
 
Como hemos visto, la respuesta en frecuencia es un valor complejo de frecuencia normalizada.
En los ejemplos anteriores hemos calculado la respuesta del sistema a partir de los coeficientes del filtro. Pero del mismo modo, podemos proceder para calcular el resultado a partir de la respuesta al impulso si la respuesta al impulso del filtro FIR consiste en una secuencia de coeficientes. Así bk = h[k], donde k es un numero entero.
Podemos escribir la correspondencia entre el dominio temporal y frecuencial como:

Consideremos un filtro FIR con respuesta impulsional:

 
Respuesta al impulso
 

la secuencia de sus coeficientes será bk=[-1 3 -1] 

 
y su respuesta en frecuencia:

Respuesta de Magnitud y fase

De este modo resulta sencillo encontrar la respuesta al impulso de un filtro si conocemos su respuesta en frecuencia e inversamente, encontrar la respuesta en frecuencia a partir de la respuesta impulsional.

Una propiedad importante es que la respuesta en frecuencia es una función periódica de periodo 2pi. En otras palabras, dos señales con frecuencia que difieren en 2pi no pueden ser distinguidas, es por eso, que únicamente es necesario especificar la respuesta en frecuencia dentro del intervalo de un periodo (-pi:pi).
La respuesta en frecuencia es compleja y habitualmente tiene simetría en su magnitud y fase, esto permite centrarnos cuando graficamos su respuesta, en la mitad de un periodo. Y esto es siempre cierto si los coeficientes del filtro son valores reales.
Otro aspecto interesante es que podríamos definir un delay como un filtro FIR donde su ecuación diferencia y respuesta en frecuencia son:

Veamos el ejemplo de un delay de 2 muestras:

Respuesta del delay

La respuesta de magnitud es 1 para todas las frecuencias, y la respuesta de fase muestra una pendiente de valor -n0, en el caso del ejemplo, -2pi.
Fijémonos que si extrapolamos estos datos a una frecuencia de muestreo de 48000 Hz, dos muestras de retraso equivaldrán a 4.17x10-5 o lo que es lo mismo, a un periodo (2pi) de 24000Hz. Así claramente observamos: 360 grados para 24KHz, 180º para 12KHz, 90º para 6KHz, etc.

Por lo tanto, podemos asociar las propiedades de la fase lineal con el delay temporal para todos los filtros.

Ya que la respuesta de fase a un tiempo de delay es predecible, a menudo solemos considerar a una respuesta de fase lineal como la respuesta ideal.

Observemos que el filtro usado en el primer ejemplo con respuesta en frecuencia:

Se comporta como un filtro pasa bajos:

LPF
 
El gráfico de magnitud de la respuesta en frecuencia muestra una atenuación a medida que el valor de la frecuencia se acerca a pi. Recordemos que estamos usando frecuencia normalizada, y como la respuesta de fase es lineal con pendiente -1 todas las frecuencias sufren un retraso de una muestra.
Un filtro lineal muy simple es un running average de ecuación:
 


Donde cada salida en tiempo n es computada como un promedio de x[n] y las anteriores L-1 muestras.

Running Average
 
La curva de fase muestra discontinuidades que ocurren en los ceros de la respuesta de magnitud. Esto es debido a múltiplos de pi radianes añadidos a la fase. En el gráfico de magnitud ploteamos el valor absoluto y es por esto que no se muestran los valores negativos.

Si graficamos la parte real del filtro podemos ver como la respuesta en frecuencia muestra valores negativos.

Parte Real
 
Veamos ahora como el running average puede ser usado como un LPF y la relación entre tiempo discreto y continuo.

Cuando el filtro es usado en tiempo discreto con frecuencia de muestro 48K podemos encontrar de manera sencilla su equivalente de respuesta en frecuencia analógica (Hz).

 
Discreto vs analógico

Imaginemos que queremos conocer la respuesta del filtro a la entrada de dos señales analógicas de frecuencia 1940 Hz y 12KHz.

Para conocer el resultado que producirá el filtro necesitamos derivar la ecuación de su respuesta en frecuencia para obtener la respuesta de magnitud y fase usando las series geométricas:

 Así:

 
El numerador y el denominador se simplifican usando la inversa de Euler.

Para 1940 Hz el resultado del filtro será:

 Para 12 KHz:

11 Running Average

Vemos como la respuesta de magnitud y fase coincide con el resultado obtenido:
 
La respuesta de fase puede llevar a confusión, pero si analizamos el retraso de grupo producido por el filtro, éste es constante y de valor 5 muestras, es decir, hemos necesitado introducir un tiempo de latencia para generar el filtro.

 Group Delay

Qué ocurre si queremos generar un filtro para una frecuencia más grave?
Pues que debemos utilizar más coeficientes para poder producirlo.

Veamos el mismo filtro anterior pero usando 255 coeficientes:

                                                 255 Running Average

Como vemos, un simple running average produce un filtrado en una frecuencia más baja, pero al necesitar de un mayor número de coeficientes produce una mayor latencia, en este caso de 127 muestras:

Group Delay

El filtro mostrado en este artículo es muy básico y los distintos fabricantes utilizan filtros más complejos, pero en todos los casos se comparte una misma propiedad, cuando más abajo en frecuencia queramos filtrar mayor va a ser el retraso que debamos asumir

Veamos algunos ejemplos de filtros FIR: 

 Respuesta filtros FIR distintos ordenes

Todos muestran retraso en su respuesta de fase, pero esta fase es lineal, tiene el mismo retraso para cada frecuencia, por lo que sus retrasos de grupo son constantes.

 Group Delay

Qué quiere decir esto? Que en el momento que sincronicemos la referencia con la medición en un analizador este filtro mostrará una respuesta de fase plana.

Sistema 2 vías con FIR

Respuesta Combinada


Si bien los filtros FIR son usados comúnmente en otras disciplinas científicas tardaron un tiempo en ser usados en audio profesional, posiblemente por la cantidad de retraso que producían. Actualmente el desarrollo de la tecnología ha permitido a muchos fabricantes incorporarlos en sus altavoces, consiguiendo una respuesta de fase más plana y una mejor compatibilidad entre distintos modelos.

Veamos un ejemplo teórico:

 Sistema 3 vías

Es común actualmente que los fabricantes usen filtro FIR para el rango de medios y agudos donde la latencia es asumible y filtro IIR en el rango de graves. 

 Respuesta teórica de un sistema 3 vías

 
Por último, veamos las diferentes respuestas en retraso de grupo e impulso producidos por filtros distintos del mismo orden, uno IIR y otro FIR:

Magnitud & Group Delay


Impulse Response

Como podemos observar, a pesar de que ambos filtros están produciendo el mismo tipo de filtraje su respuesta de fase es completamente distinta. 


 Magnitud & Phase



Magnitud & G_Delay





Durante mucho tiempo vamos a tener que convivir combinando sistemas de audio con filtros FIR e IIR y deberemos ser conscientes de ello y preparar las herramientas necesarias para producir ajustes correctos a pesar de sus diferencias de retrasos grupales.






No hay comentarios:

Publicar un comentario