Algoritmo de diseño de filtros Parks-McClellan


El algoritmo de Parks-McClellan , publicado por James McClellan y Thomas Parks en 1972, es un algoritmo iterativo para encontrar el filtro de respuesta de impulso finito (FIR) de Chebyshev óptimo . El algoritmo Parks-McClellan se utiliza para diseñar e implementar filtros FIR eficientes y óptimos. Utiliza un método indirecto para encontrar los coeficientes de filtro óptimos.

El objetivo del algoritmo es minimizar el error en las bandas de paso y parada utilizando la aproximación de Chebyshev. El algoritmo Parks-McClellan es una variación del algoritmo de intercambio de Remez , con el cambio de que está diseñado específicamente para filtros FIR. Se ha convertido en un método estándar para el diseño de filtros FIR.

En la década de 1960, los investigadores del campo del diseño de filtros analógicos utilizaban la aproximación de Chebyshev para el diseño de filtros. Durante este tiempo, era bien sabido que los mejores filtros contienen una característica de equiripulación en su magnitud de respuesta de frecuencia y el filtro elíptico (o filtro Cauer) era óptimo con respecto a la aproximación de Chebyshev. Cuando comenzó la revolución de los filtros digitales en la década de 1960, los investigadores utilizaron una transformada bilineal para producir filtros elípticos digitales de respuesta de impulso infinito (IIR). También reconocieron el potencial de diseñar filtros FIR para lograr la misma tarea de filtrado y pronto se inició la búsqueda del filtro FIR óptimo utilizando la aproximación de Chebyshev. [1]

Era bien sabido tanto en matemáticas como en ingeniería que la respuesta óptima exhibiría un comportamiento de ondulaciones equitativas y que el número de ondulaciones podría contarse utilizando la aproximación de Chebyshev. En el período comprendido entre 1962 y 1971 se llevaron a cabo varios intentos de producir un programa de diseño para el filtro FIR de Chebyshev óptimo. [1] A pesar de los numerosos intentos, la mayoría no tuvo éxito, generalmente debido a problemas en la implementación algorítmica o la formulación de problemas. Otto Herrmann, por ejemplo, propuso un método para diseñar filtros de ondulación equitativa con bordes de banda restringidos. [1]Este método obtuvo una respuesta de frecuencia de equiripulación con el número máximo de ondulaciones resolviendo un conjunto de ecuaciones no lineales. Otro método introducido en ese momento implementó una aproximación óptima de Chebyshev, pero el algoritmo se limitó al diseño de filtros de orden relativamente bajo. [1]

Similar al método de Herrmann, Ed Hofstetter presentó un algoritmo que diseñó filtros FIR con tantas ondulaciones como fuera posible. Esto se conoce como el algoritmo Maximal Ripple. El algoritmo Maximal Ripple impuso una condición de error alterno mediante interpolación y luego resolvió un conjunto de ecuaciones que la solución alterna tenía que satisfacer. [1] Una limitación notable del algoritmo Maximal Ripple fue que los bordes de la banda no se especificaron como entradas para el procedimiento de diseño. Más bien, la frecuencia inicial establecida { ω i } y la función deseada D ( ω i) definió implícitamente la banda de paso y parada. A diferencia de los intentos anteriores de diseñar un filtro óptimo, el algoritmo Maximal Ripple utilizó un método de intercambio que intentaba encontrar el conjunto de frecuencias { ω i } donde el mejor filtro tenía sus ondulaciones. [1] Por lo tanto, el algoritmo Maximal Ripple no fue un diseño de filtro óptimo, pero tuvo un impacto bastante significativo en cómo se formularía el algoritmo de Parks-McClellan.


Bandas de paso y parada de un filtro diseñado por el algoritmo de Parks-McClellan
El eje y es la respuesta de frecuencia H (ω) y el eje x son las diversas frecuencias en radianes, ω i . Se puede observar que las dos frecuencias marcados en el eje x, ω p y ω s . ω p indica la frecuencia de corte de la banda de paso y ω s indica la frecuencia de corte de la banda de parada. La trama similar a la ondulación en la parte superior izquierda es la ondulación de la banda de paso y la ondulación en la parte inferior derecha es la ondulación de la banda de parada. Las dos líneas punteadas en la parte superior izquierda del gráfico indican el δ p y las dos líneas punteadas en la parte inferior derecha indican el δs . Todas las demás frecuencias enumeradas indican las frecuencias extremas del gráfico de respuesta de frecuencia. Como resultado, hay seis frecuencias extremas, y luego agregamos las frecuencias de banda de paso y de banda de parada para dar un total de ocho frecuencias extremas en el gráfico.