Signal Processing Toolbox    
remezord

Parks-McClellan最適FIRフィルタの次数推定

表示

詳細

[n,fo,ao,w] = remezord(f,a,dev) は、入力仕様f, a, devを満足して、関数remezで使用する近似次数、正規化された周波数帯域エッジ、周波数帯域での振幅、重みを求めます。

remezは、結果として得られる次数n、周波数ベクトルfo、振幅応答ベクトルao、および重みwを使って、remezordの入力引数f, a, devによって与えられる仕様を近似的に満たすフィルタbを設計します。

[n,fo,ao,w] = remezord(f,a,dev,fs) は、サンプリング周波数fsを設定します。fsは、1 HzのNyquist周波数を意味する2 Hzにデフォルト設定されます。これを使って、特定のアプリケーションのサンプリング周波数にスケーリングした帯域エッジを設定することができます。

remezordは、次数nを低めに推定することがあります。フィルタが仕様を満たしていない場合、n+1n+2などの高めの次数を試してみてください。

c = remezord(f,a,dev,fs,'cell') では、その要素がremezへのパラメータであるセル配列を設定します。

例題

500 Hzの通過帯域カットオフ周波数と600  Hzの遮断帯域カットオフ周波数をもち、2000 Hzのサンプリング周波数、遮断帯域に少なくとも40 dBの減衰、また通過帯域に3 dB未満のリップルをもつ最小次数のローパスフィルタを設計します。

フィルタは、遮断帯域の減衰と通過帯域のリップルの仕様で、わずかに仕様を満たしていません。nの代わりに、n+1を使って計算すると、希望の振幅特性が得られます。

1500 Hzの通過帯域カットオフ周波数と2000 Hzの遮断帯域カットオフ周波数をもち、8000 Hzのサンプリング周波数、0.1の最大遮断帯域振幅誤差、および0.01の最大通過帯域振幅誤差(リップル)をもつローパスフィルタを設計します。

これは、つぎの表現と等価です。

アルゴリズム

remezordは、参考文献[1]に記述されているアルゴリズムを使用します。この方法は、0またはNyquist周波数(fs/2)近くの帯域エッジでは不正確です。

参考
buttord
Butterworthフィルタの次数選択
cheb1ord
Chebyshev I型フィルタの次数選択
cheb2ord
Chebyshev II型フィルタの次数選択
ellipord
楕円フィルタの次数選択
kaiserord
Kaiserウィンドウを使ったfir1のパラメータ推定
remez
Parks-McClellan最適FIRフィルタの設計

参考文献

[1] Rabiner, L.R., and O. Herrmann, "The Predictability of Certain Optimum Finite Impulse Response Digital Filters," IEEE Trans. on Circuit Theory, Vol. CT-20, No. 4 (July 1973), pp. 401-408.

[2] Rabiner, L.R., and B. Gold. Theory and Application of Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1975, pp. 156-157.


 remez resample