一个问题,最近提出了关于公园-麦克莱伦和一些评论指出,在公园,麦克莱伦维基百科文章的状态,
... Parks-McClellan算法是Remez算法或Remez交换算法的变体。
性能上有区别吗?是remez
在八度等同于Matlab的功能函数firpm
?
一个问题,最近提出了关于公园-麦克莱伦和一些评论指出,在公园,麦克莱伦维基百科文章的状态,
... Parks-McClellan算法是Remez算法或Remez交换算法的变体。
性能上有区别吗?是remez
在八度等同于Matlab的功能函数firpm
?
Answers:
Remez交换算法是一种通用的迭代过程,可以在意义上最佳地近似任何函数(即,给出最佳的最坏情况近似值,换句话说,将最大误差或minmax最小化)。Parks-McClellan算法(PM)是Remez交换算法的一种变体,专门用于FIR滤波器。在您引用的Wiki文章中:
托马斯[公园]从休斯敦开车去普林斯顿参加会议。在会议上,他听见了Ed Hofstetter关于新型FIR滤波器设计算法(最大纹波算法)的演讲。他将Hofstetter,Oppenheim和Siegel的论文带回休斯敦,考虑使用Chebyshev逼近理论设计FIR滤波器的可能性。他听说用Hofstetter算法实现的方法与Remez交换算法相似,因此决定寻求使用Remez交换算法的途径。
无需赘述,两种算法之间的主要区别在于Remez交换算法(RE)为您提供了设计最佳滤波器的条件(具体请参见此处的#3):错误的加权大小必须相等,并且符号交替出现)。RE执行迭代过程以计算满足上述条件的多项式系数(可以映射为FIR滤波器系数),即“替代定理”。RE中的“ E”是过程的一部分,其中迭代过程中使用的误差最大值被新的最大值代替,新的最大值接近最佳值。PM使用Tchebyshev多项式将多项式系数转换为控制一系列余弦函数的系数,这些余弦函数直接转换为对称FIR系数。
谈到关于remez
Octave中的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.