Signal Processing Toolbox | ![]() ![]() |
複数帯域フィルタのための条件付き最小2乗FIRフィルタの設計
表示
b=
fircls(n,f,amp,up,lo) fircls(n,f,amp,up,lo,'design_flag
')
詳細
b
は、長さ =
fircls(n,f,amp,up,lo)
n+1
の線形位相FIRフィルタb
を生成します。このフィルタの周波数-ゲイン特性は、ベクトルf
とamp
によって与えられる特性と一致します。
f
は、0〜1の範囲の遷移周波数のベクトルで、1はサンプリング周波数の1/2(Nyquist周波数)です。f
の最初の点は0、最後の点は1でなければなりません。周波数点は、昇順でなければなりません。amp
は、区分的に一定の希望する周波数応答の振幅を表すベクトルです。amp
の長さは、応答の帯域数と等しく、length(f)-1
です。 up
とlo
は、amp
と同じ長さをもつベクトルです。これらは、各帯域内の周波数応答の上限と下限を定義します。 fircls
は、ナイキスト周波数で、通過帯域をもつ仕様に対して、偶数のフィルタ次数を常に使います。これは、奇数次数のために、ナイキスト周波数での周波数応答はゼロになるからです。奇数値 n
を設定すると、fircls
は、1を加えて実現します。
fircls(n,f,amp,up,lo,'
により、フィルタ設計をモニターすることができます。ここで、design_flag
')
design_flag
には、つぎの文字列が設定できます。
trace
:各繰り返しで、設計誤差に関するテキストでの表示plots
:フィルタの全帯域での大きさの応答を示すプロットと各サブ帯域での大きさの応答を示すズームプロットとの間での選択。プロットは、すべて、各繰り返しの段階で実行されます。both
:テキスト表示とプロット共に表示例題
n=
50; f=
[0 0.4 0.8 1]; amp=
[0 1 0]; up=
[0.02 1.02 0.01]; lo=
[-0.02 0.98 -0.01]; b=
fircls(n,f,amp,up,lo,'plots'); % ゲイン応答をプロット
注意
通常、遮断帯域の下側の値は負として設定されます。遮断帯域において、lo を0に設定することにより、非負の周波数応答振幅を得ることができます。このようなフィルタをスペクトル的に因数分解して、最小位相のフィルタを得ることができます。 |
アルゴリズム
このアルゴリズムは、各繰り返しでLagrange乗数とKuhn-Tuckerの条件を使用する、複数交換アルゴリズム(Multiple exchange algorithm)です。
参考
|
ローパスおよびハイパス線形位相FIRフィルタのための条件付き最小2乗フィルタの設計 |
|
条件付き最小2乗線形位相FIRフィルタの設計 |
|
Parks-McClellan最適FIRフィルタの設計 |
参考文献
[1] Selesnick, I.W., M. Lang, and C.S. Burrus, "Constrained Least Square Design of FIR Filters without Specified Transition Bands," Proceedings of the IEEE Int. Conf. Acoust., Speech, Signal Processing, Vol. 2 (May 1995), pp. 1260-1263.
[2] Selesnick, I.W., M. Lang, and C.S. Burrus. "Constrained Least Square Design of FIR Filters without Specified Transition Bands." IEEE Transactions on Signal Processing, Vol. 44, No. 8 (August 1996).
![]() | fir2 | fircls1 | ![]() |