Conceptos básicos de los filtros FIR
1.1 ¿Qué son los «filtros FIR»?
Los filtros FIR son uno de los dos tipos principales de filtros digitales utilizados en las aplicaciones de procesamiento digital de señales (DSP), el otro tipo es el IIR.
1.2 ¿Qué significa «FIR»?
«FIR» significa «Respuesta al impulso finita». Si se introduce un impulso, es decir, una sola muestra «1» seguida de muchas muestras «0», saldrán ceros después de que la muestra «1» haya recorrido la línea de retardo del filtro.
1.3 ¿Por qué la respuesta al impulso es «finita»?»
En el caso común, la respuesta al impulso es finita porque no hay realimentación en el FIR. La falta de retroalimentación garantiza que la respuesta al impulso será finita. Por lo tanto, el término «respuesta al impulso finita» es casi sinónimo de «sin retroalimentación».
Sin embargo, si se emplea la retroalimentación pero la respuesta al impulso es finita, el filtro sigue siendo un FIR. Un ejemplo es el filtro de media móvil, en el que la enésima muestra anterior se resta (se retroalimenta) cada vez que entra una nueva muestra. Este filtro tiene una respuesta al impulso finita aunque utilice retroalimentación: después de N muestras de un impulso, la salida siempre será cero.
1.4 ¿Cómo se pronuncia «FIR»?»
Algunas personas dicen las letras F-I-R; otras lo pronuncian como si fuera un tipo de árbol. Nosotros preferimos el árbol. (La diferencia es si se habla de un filtro F-I-R o de un filtro FIR.)
1.5 ¿Cuál es la alternativa a los filtros FIR?
Los filtros DSP también pueden ser de «Respuesta al Impulso Infinita» (IIR). (Ver dspGuru’s IIR FAQ.) Los filtros IIR utilizan la retroalimentación, por lo que cuando se introduce un impulso la salida teóricamente suena indefinidamente.
1.6 ¿Cómo se comparan los filtros FIR con los filtros IIR?
Cada uno tiene ventajas y desventajas. En general, sin embargo, las ventajas de los filtros FIR superan a las desventajas, por lo que se utilizan mucho más que los IIR.
1.6.1 ¿Cuáles son las ventajas de los filtros FIR (en comparación con los filtros IIR)?
En comparación con los filtros IIR, los filtros FIR ofrecen las siguientes ventajas:
- Pueden diseñarse fácilmente para ser de «fase lineal» (y normalmente lo son). En pocas palabras, los filtros de fase lineal retrasan la señal de entrada pero no distorsionan su fase.
- Son fáciles de implementar. En la mayoría de los microprocesadores DSP, el cálculo del FIR puede realizarse mediante un bucle de una sola instrucción.
- Son adecuados para aplicaciones multivelocidad. Por multitasa, nos referimos a la «decimación» (reducción de la tasa de muestreo), a la «interpolación» (aumento de la tasa de muestreo), o a ambas. Tanto si se deciman como si se interpolan, el uso de filtros FIR permite omitir algunos de los cálculos, lo que proporciona una importante eficiencia computacional. Por el contrario, si se utilizan filtros IIR, cada salida debe ser calculada individualmente, incluso si esa salida será descartada (por lo que la retroalimentación se incorporará al filtro).
- Tienen propiedades numéricas deseables. En la práctica, todos los filtros DSP deben implementarse utilizando aritmética de precisión finita, es decir, un número limitado de bits. El uso de la aritmética de precisión finita en los filtros IIR puede causar problemas significativos debido al uso de la retroalimentación, pero los filtros FIR sin retroalimentación normalmente pueden implementarse utilizando menos bits, y el diseñador tiene menos problemas prácticos que resolver relacionados con la aritmética no ideal.
- Pueden implementarse utilizando aritmética fraccionaria. A diferencia de los filtros IIR, siempre es posible implementar un filtro FIR utilizando coeficientes con magnitudes inferiores a 1,0. (La ganancia global del filtro FIR puede ajustarse a su salida, si se desea). Esta es una consideración importante cuando se utilizan DSPs de punto fijo, porque hace que la implementación sea mucho más sencilla.
1.6.2 ¿Cuáles son las desventajas de los filtros FIR (comparados con los filtros IIR)?
Comparados con los filtros IIR, los filtros FIR tienen a veces la desventaja de que requieren más memoria y/o cálculos para conseguir una determinada característica de respuesta del filtro. Además, ciertas respuestas no son prácticas para implementar con filtros FIR.
1.7 ¿Qué términos se utilizan para describir los filtros FIR?
- Respuesta al impulso – La «respuesta al impulso» de un filtro FIR es en realidad sólo el conjunto de coeficientes FIR. (Si se pone un «impulso» en un filtro FIR que consiste en una muestra «1» seguida de muchas muestras «0», la salida del filtro será el conjunto de coeficientes, ya que la muestra 1 pasa por cada coeficiente a su vez para formar la salida.)
- Tap – Un «tap» FIR es simplemente un par coeficiente/retardo. El número de taps FIR, (a menudo designado como «N») es una indicación de 1) la cantidad de memoria requerida para implementar el filtro, 2) el número de cálculos requeridos, y 3) la cantidad de «filtrado» que el filtro puede hacer; en efecto, más taps significa más atenuación de banda de parada, menos ondulación, filtros más estrechos, etc.
- Multiplicar-Acumular (MAC) – En un contexto FIR, un «MAC» es la operación de multiplicar un coeficiente por la correspondiente muestra de datos retardados y acumular el resultado. Los FIR suelen requerir una MAC por cada toma. La mayoría de los microprocesadores DSP implementan la operación MAC en un solo ciclo de instrucción.
- Banda de transición – La banda de frecuencias entre los bordes de la banda pasante y la banda de parada. Cuanto más estrecha sea la banda de transición, más taps serán necesarios para implementar el filtro. (Una banda de transición «pequeña» resulta en un filtro «agudo».)
- Línea de retardo – El conjunto de elementos de memoria que implementan los elementos de retardo «Z^-1» del cálculo FIR.
- Buffer circular – Un buffer especial que es «circular» porque el incremento al final hace que se envuelva hasta el principio, o porque el decremento desde el principio hace que se envuelva hasta el final. Los búferes circulares son a menudo proporcionados por los microprocesadores DSP para implementar el «movimiento» de las muestras a través de la línea de retardo FIR sin tener que mover literalmente los datos en la memoria. Cuando se añade una nueva muestra al buffer, ésta sustituye automáticamente a la más antigua.