Remez exchangeとParks-McClellanフィルター設計の違いは何ですか?


21

質問は、最近パークス・マクレランに関する上がってきたコメントのいくつかがあることを指摘パークス・マクレラン上のWikipediaの記事は、述べて

... Parks-McClellanアルゴリズムは、RemezアルゴリズムまたはRemez交換アルゴリズムのバリエーションです。

パフォーマンスに違いはありますか?remezオクターブの関数はMatlab関数と同等firpmですか?

回答:


8

Remez交換アルゴリズムが最適で任意の関数を近似するための一般的な反復手順であるL感覚を(すなわち、最高の最悪の場合の近似を与えるか、言い換えれば、最大誤差やMINMAXを最小化します)。Parks-McClellanアルゴリズム(PM)は、特にFIRフィルターに適用されるRemez交換アルゴリズムのバリエーションです。引用したWiki記事から:

トーマス(パークス)は会議に出席するためにヒューストンからプリンストンまで車で行きました。会議で、彼は新しいFIRフィルター設計アルゴリズム(最大リップルアルゴリズム)についてのEd Hofstetterのプレゼンテーションを聞きました。彼は、Hofstetter、Oppenheim、Siegelの論文をヒューストンに持ち帰り、チェビシェフ近似理論を使用してFIRフィルターを設計する可能性について考えました。彼は、Hofstetterのアルゴリズムに実装されている方法がRemez交換アルゴリズムに似ていると聞き、Remez交換アルゴリズムを使用する経路を追求することにしました。

あまり詳しく説明しなくても、2つのアルゴリズムの主な違いは、Remez交換アルゴリズム(RE)が最適なフィルターを設計する条件を提供することです(具体的には、ここの#3を参照してください):エラーの重みは等しく、符号が交互でなければなりません)。REは、上記の基準( "Alternation Theorem")を満たす多項式係数(FIRフィルター係数にマップできる)を計算する反復手順を実装します。REの「E」は、反復手順で使用されるエラーの最大値が、最適値に近い新しい最大値に置き換えられる手順の一部です。PMは、チェビシェフ多項式を使用して、多項式係数を、対称FIR係数に直接変換される一連のコサイン関数を制御する係数に変換します。


remezOctaveのfirpm関数とMATLAB の関数についての質問にお答えすると、それらは同じだと思います。MATLABはかつてを持ちremez、これはのために段階的に廃止されましたfirpm。オクターブはおそらく前者に固執しています。help remezMATLAB 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ソルバーではなく、RemezメソッドのPMインカネーションであるため、Mathworksがremezという名前をfirpmに変更したと推測します。
マークボーガーディング

@MarkBorgerdingそれが実際に名前変更の理由だと思います。ただし、2つの用語を同じ意味で使用している人を見つけることは依然として一般的です。
Loremのイプサム

2
公平な声明は、すべてのParks-McClellan実装がRemez Exchange実装であると思いますが、その逆は当てはまりません。フィルター設計に関しては、交換可能に使用できると思います。FFTをDFTとして参照するようなものです。
マークボーガーディング

firgr(matlab)はどうですか?
daurnimator

@daurnimatorはどうですか?
Loremのイプサム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.