Instalia presenta la 2ª parte del artículo sobre los filtros FIR en aplicaciones de audio profesional por Pepe Ferrer, ingeniero de sistemas audiovisuales.
Filtros FIR en aplicaciones de audio – 2ª parte
En este artículo introduciremos el concepto de la respuesta en frecuencia de un filtro FIR y mostraremos que la respuesta al impulso y la 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:
la respuesta de magnitud y fase del filtro serán:
Si introducimos en el sistema una señal compleja de valor:
Su salida sera será:
La magnitud se ha multiplicado por 3 y la fase sufre el retraso de una muestra.
Una vez conocemos los coeficientes del filtro podemos determinar el comportamiento en frecuencia para cualquier sinusoide de entrada
El principio de superposición nos permite 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 componentes individuales y determinamos la salida para cada uno de ellos, finalmente los sumamos y obtenemos 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.
La señal de entrada es:
La respuesta del filtro es:
Los coeficientes:
y la salida:
Como podemos observar, 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 número entero.
Podemos escribir la correspondencia entre el dominio temporal y frecuencial como:
Consideremos un filtro FIR con respuesta impulsional:
la secuencia de sus coeficientes será bk=[-1 3 -1]
y su respuesta en frecuencia:
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 interesante 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:
La respuesta de magnitud es 1 para todas las frecuencias, y la respuesta de fase muestra una pendiente de valor -n0.
Si extrapolamos estos datos a una frecuencia de muestreo de 48000 Hz, dos muestras de retraso equivaldrán a 4.17 x 10-5 o lo que es lo mismo, a un periodo (2pi) de 24000Hz. De este modo el delay será de 360 grados para 24kHz, 180º para 12kHz, 90º para 6kHz, 45º para 3kHz, etc.
Podemos asociar las propiedades de la fase lineal con el delay temporal para todos los filtros.
Observemos que el filtro usado en el primer ejemplo con respuesta en frecuencia:
Se comporta como un filtro pasa bajos:
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.
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.
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).
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:
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 de 5 muestras para generar el filtro.
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:
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:
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 la latencia que debamos asumir
Veamos un ejemplo de filtro FIR de fase lineal para 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.
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.
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 en el rango de medios y agudos, consiguiendo una respuesta de fase más plana y una mejor compatibilidad entre distintos modelos.
Veamos la respuesta de un mismo altavoz procesado con filtro FIR y filtro IIR
Para finalizar, veamos las diferentes respuestas de fase, retraso de grupo e impulso producidos por filtros distintos del mismo orden, uno FIR y otro IIR.
Los impulsos de los filtros FIR de fase lineal son simétricos.
Como conclusión, el aumento de las capacidades de procesado actuales conllevará de manera univoca hacia un aumento de nuevas técnicas de filtrado y ecualización basados en el uso de algorimos FIR. Por este motivo, durante bastante tiempo vamos a tener que convivir con altavoces procesados de distinta forma y por lo tanto, con distintos retraso de grupo.
Hay que recordar que las ondas de presión generadas por los altavoces se combinan, si o si, en base a su nivel y fase relativa y, por lo tanto, deberemos usar técnicas extra de procesado para conseguir que altavoces con distinto retraso de grupo se combinen de manera positiva.