帕克斯-麦克莱伦算法(英语:Parks–McClellan algorithm),为一个用以设计优化有限脉冲响应滤波器(finite impulse response filter)的迭代算法,由James McClellan和Thomas Parks于1972年的著作中提出。
此算法的主要精神,在于利用迭代的方式最小化滤波器在通带(pass band)和止带(stop band)的最大误差,因此有时也称为最小化最大误差算法(Mini-max filter design)。由于帕克斯-麦克莱伦算法也属于Remez-exchange algorithm为了设计有限脉冲响应滤波器而产生的一种变形,因此也有人以Remez-exchange algorithm代称。
有限脉冲响应滤波器(finite impulse response filter)利用有限的点数来表示滤波器的脉冲响应,对于N点有限脉冲响应滤波器
有限脉冲响应滤波器的优点在于脉冲响应是有限的,使得设计上较为简单。然而如何在有限的点数下,设计出效果最近似于理想目标的滤波器,则是帕克斯-麦克莱伦算法所欲解决的问题。
对于滤波器设计,帕克斯-麦克莱伦算法的精神在于最小化最大误差。在忽略通带与止带之间转换带(transition band)的情况下,最小化通带与止带的最大误差:
其中为设计滤波器的频率响应,F为正规化频率(normalized frequency),则为理想目标滤波器的频率响应。
滤波器设计时,可利用weighting function将较重要的频带比重放大。如此一来,在利用帕克斯-麦克莱伦算法设计滤波器时,则会较重视比重较大频带的误差。
若在加入weighting function情况下,可将帕克斯-麦克莱伦算法一般化。此时的最大误差则可表示为:
下面的文章将说明如何以该算法设计优化滤波器,假设
此算法共分为6个步骤: