Diseño de filtros
En un FIR diseñado con ventanas, agregar coeficientes no mejora el rechazo: con la ventana de Hamming queda en 53 dB con 21 coeficientes o con 101. Lo que cambia es el ancho de la transición.
01De la especificación a los coeficientes
Diseñar un filtro digital es recorrer un camino fijo: partir de la plantilla (bandas, atenuaciones, frecuencia de muestreo), elegir entre FIR o IIR, calcular los coeficientes con un método de aproximación, elegir la estructura, cuantizar los coeficientes al formato del procesador y verificar que el filtro cuantizado todavía cumple. Casi todos los pasos los hace hoy un programa, pero elegir el método y juzgar el resultado exige entender qué hace cada uno.
02FIR por el método de ventanas
El pasabajos ideal de frecuencia de corte \( f_c \) (en fracción de \( f_s \)) tiene una respuesta al impulso infinita, con la forma de un seno cardinal. El método de ventanas la recorta a \( N \) muestras, centradas, y la multiplica por una ventana que suaviza los extremos:
| Ventana | Atenuación mínima en el rechazo | Ancho de transición aproximado |
|---|---|---|
| Rectangular | 21 dB | \( 0{,}9/N \) |
| Hann | 44 dB | \( 3{,}1/N \) |
| Hamming | 53 dB | \( 3{,}3/N \) |
| Blackman | 74 dB | \( 5{,}5/N \) |
La ventana fija la atenuación; el largo \( N \), el ancho de la transición. La ventana de Kaiser tiene un parámetro que permite elegir la atenuación en forma continua, con fórmulas empíricas para el largo necesario.
Un pasabajos FIR de fase lineal. Elegís la frecuencia de corte, el número de coeficientes y la ventana. Arriba, los coeficientes; abajo, el módulo de la respuesta en dB de 0 a \( f_s/2 \), con la atenuación mínima medida en la banda de rechazo.
03Otros métodos para FIR
El muestreo en frecuencia fija la respuesta deseada en puntos equiespaciados y obtiene los coeficientes con una DFT inversa. El algoritmo de Parks-McClellan busca el FIR de menor largo que cumple la plantilla, con el error repartido en ondulaciones iguales en las dos bandas: es el diseño óptimo, y el que usan los programas por omisión. Para la misma especificación, suele necesitar bastantes menos coeficientes que el método de ventanas.
04IIR a partir de filtros analógicos
Los IIR se diseñan casi siempre partiendo de un filtro analógico —Butterworth, Chebyshev, elíptico— y transformándolo al plano z. La transformación más usada es la bilineal, que lleva todo el eje \( j\omega \) a la circunferencia unitaria una sola vez, sin aliasing:
La invarianza al impulso, la alternativa, muestrea la respuesta al impulso del analógico: conserva la forma en el tiempo pero sufre aliasing, y solo sirve para pasabajos y pasabanda bien limitados.
05Herramientas y verificación
En Python, el módulo scipy.signal tiene firwin (ventanas), remez
(Parks-McClellan) y butter, cheby1 y ellip con transformación bilineal, y
devuelve los IIR directamente como secciones de segundo orden. Octave y MATLAB tienen funciones equivalentes. La
verificación final se hace siempre con los coeficientes ya cuantizados al formato del procesador: un IIR que
cumple con coeficientes de 64 bits puede no cumplir, o volverse inestable, con 16.
06En el laboratorio
Diseñar con firwin el mismo pasabajos con las cuatro ventanas y comparar sus respuestas con las del
laboratorio.
Cargar los coeficientes de un FIR de 31 coeficientes en punto fijo de 16 bits en un microcontrolador, filtrar una señal del ADC y medir la respuesta con un generador y un osciloscopio.
Diseñar un Butterworth de orden 4 para 1 kHz con 8 kHz de muestreo, con y sin predistorsión, y medir dónde queda el corte en cada caso.
07Errores frecuentes
- Aumentar N esperando más atenuación. La atenuación la fija la ventana; N solo angosta la transición.
- Olvidar la predistorsión en la bilineal. El corte queda más abajo de lo diseñado.
- Verificar con coeficientes en doble precisión. El filtro real usa los cuantizados.
- Especificar la frecuencia de corte en hertz en una función que la espera normalizada. Cada herramienta usa su convención: fracción de \( f_s \), de \( f_s/2 \) o radianes por muestra.
08Autoevaluación
¿Qué ventana conviene para 50 dB de rechazo?
Hamming, que da unos 53 dB; Hann no alcanza.
¿Cuántos coeficientes necesita un FIR con ventana de Hamming y 0,05 fs de transición?
\( N \approx 3{,}3/0{,}05 = 66 \): 67, para que sea impar.
¿A qué frecuencia analógica se diseña un corte digital de 2 kHz con 10 kHz de muestreo?
\( f_a = (f_s/\pi)\tan(\pi f_d/f_s) = (10\,000/\pi)\tan(0{,}2\pi) \approx 2{,}31 \) kHz.
¿Qué ventaja tiene Parks-McClellan sobre las ventanas?
Cumple la misma plantilla con menos coeficientes, porque reparte el error en forma óptima.
09Para ampliar
- Alan V. Oppenheim y Ronald W. Schafer. Discrete-Time Signal Processing. 3.ª ed., Pearson, 2010. Los métodos de diseño de FIR e IIR con su justificación teórica, incluidas la ventana de Kaiser y la bilineal.
- Richard G. Lyons. Understanding Digital Signal Processing. 3.ª ed., Prentice Hall, 2010. El diseño de filtros explicado con ejemplos y con los errores que se cometen en la práctica.
- John G. Proakis y Dimitris G. Manolakis. Tratamiento digital de señales. 4.ª ed., Pearson, 2007. Los métodos de diseño con muchos ejercicios resueltos, en castellano.