Remez exchange和Parks-McClellan滤波器设计有什么区别?


Answers:


8

Remez交换算法是一种通用的迭代过程,可以在意义上最佳地近似任何函数(即,给出最佳的最坏情况近似值,换句话说,将最大误差或minmax最小化)。Parks-McClellan算法(PM)是Remez交换算法的一种变体,专门用于FIR滤波器。在您引用的Wiki文章中:L

托马斯[公园]从休斯敦开车去普林斯顿参加会议。在会议上,他听见了Ed Hofstetter关于新型FIR滤波器设计算法(最大纹波算法)的演讲。他将Hofstetter,Oppenheim和Siegel的论文带回休斯敦,考虑使用Chebyshev逼近理论设计FIR滤波器的可能性。他听说用Hofstetter算法实现的方法与Remez交换算法相似,因此决定寻求使用Remez交换算法的途径。

无需赘述,两种算法之间的主要区别在于Remez交换算法(RE)为您提供了设计最佳滤波器的条件(具体请参见此处的#3):错误的加权大小必须相等,并且符号交替出现)。RE执行迭代过程以计算满足上述条件的多项式系数(可以映射为FIR滤波器系数),即“替代定理”。RE中的“ E”是过程的一部分,其中迭代过程中使用的误差最大值被新的最大值代替,新的最大值接近最佳值。PM使用Tchebyshev多项式将多项式系数转换为控制一系列余弦函数的系数,这些余弦函数直接转换为对称FIR系数。


谈到关于remezOctave中的firpm函数和MATLAB中的函数的问题,我相信它们是相同的。MATLAB曾经有一个remez,后来逐渐淘汰了firpm。八度可能仍然坚持前者。help remez在MATLAB R2011b中输入以下内容:

REMEZ Parks-McClellan最佳等波纹FIR滤波器设计。

REMEZ is obsolete.  REMEZ still works but may be removed in the future.
Use FIRPM instead.

See also FIRPM.

我推断MathWorks将名称remez更改为firpm,因为它不是通用的Remez求解器,而是Remez方法的PM化身。
Mark Borgerding 2011年

@MarkBorgerding我相信这确实是名称更改的原因。但是,人们经常互换使用这两个术语仍然很常见。
Lorem Ipsum

2
我认为一个正确的说法是:所有Parks-McClellan实现都是Remez Exchange实现,但事实并非如此。关于过滤器设计,我认为它们可以互换使用。就像(将)FFT称为DFT一样。
Mark Borgerding 2011年

firgr(在MATLAB中)呢?
daurnimator 2011年

@daurnimator呢?
Lorem Ipsum
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.