Instalia presenta un nuevo artículo de Pepe Ferrer, ingeniero de sistemas audiovisuales, sobre los filtros FIR en aplicaciones de audio profesional.
Filtros FIR en aplicaciones de audio profesional
Un filtro es un sistema que está diseñado para eliminar o modificar algún componente de una señal. Introduciremos en este capitulo los filtros FIR en aplicaciones de audio profesional (Finite Impulse Response). Estos filtros son sistemas para los cuales, cada sample de salida es una suma finita y ponderada de la secuencia de entrada.
Un sistema en tiempo discreto es un proceso computacional que transforma cada secuencia de entrada en otra de salida. A
diferencia del capítulo anterior, donde en el proceso de sampleado y reconstrucción, transformamos una señal continua en discreta o su inversa, en este capitulo nos centraremos en el dominio de la señal discreta.
The running average filter:
Una de las más simples transformaciones de una señal discreta es computar un promedio o average de dos o más secuencias de entrada. Un filtro FIR es una generalización de esta idea.
Veamos un ejemplo: una secuencia de entrada es ponderada como un promedio de cada tres valores.
La ecuación que relaciona la salidase le denomina ecuación diferencia y viene expresada como:
Si observamos detenidamente el gráfico nos damos cuenta que la secuencia de salida contiene más valores que la secuencia de entrada, es decir, contiene más valores no cero que la secuencia de entrada, y la salida es una versión suavizada de la entrada. Esta es una característica de un filtro FIR.
También podemos ver como la respuesta del filtro provee de un valor no cero antes de que la señal de entrada empiece. Esto no es deseable en aplicaciones de audio directo, donde la señal viene directamente de un convertidor A/D. Para la computación de salida el filtro está tomando dos valores futuros, es decir, el sistema está tomando un valor presente y dos futuros para producir su promedio. Estos filtros son denominados no causales, y no son aplicables en situaciones de tiempo real, ya que la entrada no está disponible cuando la salida ha sido computada.
A los filtros que únicamente utilizan valores presentes y pasados se les denomina causales. La ecuación diferencia para un filtro como el anterior, pero en este caso causal, es decir, que toma valores presentes y pasados es la siguiente:
Podemos generalizar la ecuación del filtro FIR, como:
Por lo tanto, un filtro queda definido si conocemos sus coeficientes (bk).
Pongamos un ejemplo: Imaginemos un filtro de longitud 4, es decir de orden M=3, cuyos coeficientes son: bk=[ 3, -1, 2, 1].
Como vemos en la ecuación, el orden del filtro viene determinado por la relación: Orden = longitud del filtro -1.
Para ilustrar estos conceptos podemos mostrar como se puede utilizar un filtro FIR para modificar las secuencias de una señal.
Consideremos una señal de entrada en forma de onda sinusoidal que se ve afectada por un ruido aleatorio Gaussiano, tal como se muestra en la parte alta de la siguiente gráfica:
Podemos reducir la interferencia producida por el ruido, usando un Running Average de 3 puntos:
El resultado de la señal una vez aplicado el filtro se muestra en el medio de la gráfica. Donde podemos ver que hemos reducido la interferencia producida por el ruido. El filtro está realizando una ponderación de cada tres samples de entrada consecutivos.
Si queremos reducir en mayor medida la interferencia podemos utilizar un filtro de mayor orden. En la parte baja del gráfico observamos la respuesta de un filtro de orden 6.
La utilización del filtro nos ha permitido minimizar el efecto del ruido en la señal. Si observamos detenidamente el gráfico podemos observar como las señales filtradas han aumentado el número de muestras, exactamente una cantidad equivalente al orden del filtro.
Respuesta al impulso unitaria:
El impulso unitario, es la secuencia más simple que podemos encontrar, ya que únicamente contiene un valor no cero. Su notación matemática es la función delta:
En el gráfico visualizamos un impulso que ha sido desplazado 2 muestras. Este es un concepto muy útil en señales y sistemas, ya que nos permite expresar una secuencia, como una suma de sus impulsos desplazados.
De este modo, la secuencia discreta de una señal de entrada, como la del gráfico, puede ser expresada como la suma de sus impulsos de entrada:
Por lo tanto, cuando la entrada de un filtro FIR es una secuencia de impulso unitario, su salida es por definición la respuesta al impulso unitario h[n], es decir, la respuesta al impulso del filtro no es más que los coeficientes de salida de su ecuación diferencia. La longitud de esta secuencia es finita.
Delay unitario:
Es el más simple de los filtros FIR, contiene un único coeficiente no cero. El filtro produce un desplazamiento temporal equivalente al desplazamiento de su coeficiente.
La señal de entrada ha sido desplazada 2 muestras a partir de un filtro Delay de amplitud unitaria. La respuesta a la salida
mantendrá la misma señal, pero desplazada temporalmente.
Convolución y filtros FIR:
La respuesta de un filtro FIR puede ser expresada como la convolución de la secuencia de entrada y su respuesta al impulso:
Como sabemos, la convolución es equivalente a una multiplicación polinomial.
Diagrama de bloques:
Sin querer entrar en las demostraciones matemáticas, definimos un filtro FIR como un sistema lineal e invariante en el tiempo (LTI), y sus propiedades son:
Invarianza en el tiempo: Cuando una señal de entrada es desplazada cierta cantidad de muestras, su salida estará retrasada por la misma cantidad de muestras.
Linealidad: Cuando la entrada consiste en la suma de varias secuencias escaladas, su correspondiente salida será la suma de los
valores escalados de sus correspondientes entradas. Es decir, podemos encontrar la salida del sistema como la superposición de las salidas de los valores individuales.
La respuesta al impulso h[n] de un sistema LTI es simplemente la salida del sistema cuando a su entrada se ha introducido un
impulso unitario d[n]. Por lo tanto, podemos conocer la respuesta de cualquier sistema si conocemos su respuesta al impulso y la secuencia de entrada.
La convolución entre dos señales, en nuestro caso, la entrada x[n] y su respuesta al impulso h[n] se expresa como:
La convolución es una función matemática que cumple la propiedad conmutativa y asociativa.
Instalia publicaré en breve la segunda parte de este artículo sobre los filtros FIR en aplicaciones de audio profesional.
Más artículos de Pepe Ferrer aquí
¿Qué te ha parecido el artículo sobre los filtros FIR en aplicaciones de audio profesional? Lee más REPORTAJES DE OPINIÓN