ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fircls1

制約付き最小二乗線形位相 FIR ローパスおよびハイパス フィルターの設計

構文

b = fircls1(n,wo,dp,ds)
b = fircls1(n,wo,dp,ds,'high')
b = fircls1(n,wo,dp,ds,wt)
b = fircls1(n,wo,dp,ds,wt,'high')
b = fircls1(n,wo,dp,ds,wp,ws,k)
b = fircls1(n,wo,dp,ds,wp,ws,k,'high')
b = fircls1(n,wo,dp,ds,...,'design_flag')

説明

b = fircls1(n,wo,dp,ds) では、ローパス FIR フィルター b が生成されます。ここで、n+1 はフィルター長、wo は 0 ~ 1 の間で指定する正規化されたカットオフ周波数 (1 はナイキスト周波数に対応)、dp は通過帯域での応答の 1 からの最大通過帯域偏差 (通過帯域リップル)、ds は阻止帯域での応答の 0 からの最大阻止帯域偏差 (阻止帯域リップル) です。

b = fircls1(n,wo,dp,ds,'high') では、ハイパス FIR フィルター b が生成されます。fircls1 では、ハイパス構成に対しては常に偶数のフィルター次数が使用されます。これは、次数が奇数の場合、ナイキスト周波数での周波数応答が 0 になるためです。n に奇数の値を指定した場合、fircls1 によりこの値に 1 が加算されます。

b = fircls1(n,wo,dp,ds,wt) および

b = fircls1(n,wo,dp,ds,wt,'high') では、周波数 wt を指定して、wt > wo の場合はそれを超える周波数、または、wt < wo の場合はそれ未満の周波数において、与えられた帯域基準を満たすことが保証されます。これは、通過帯域、または、阻止帯域のエッジの必要条件を満たすフィルターを設計する手助けになります。次の 4 とおりの場合があります。

  • ローパス:

    • 0 < wt < wo < 1: フィルターの振幅は、周波数範囲 0 < ω < wt で、1 からの偏差が dp の範囲内。

    • 0 < wo < wt < 1: フィルターの振幅は、周波数範囲 wt < ω < 1 で、0 からの偏差が ds の範囲内。

  • ハイパス:

    • 0 < wt < wo < 1: フィルターの振幅は、周波数範囲 0 < ω < wt で、0 からの偏差が ds の範囲内。

    • 0 < wo < wt < 1: フィルターの振幅は、周波数範囲 wt < ω < 1 で、1 からの偏差が dp の範囲内。

b = fircls1(n,wo,dp,ds,wp,ws,k) では、重み関数をもつローパス FIR フィルター b が生成されます。ここで、n+1 はフィルター長、wo は正規化されたカットオフ周波数、dp は通過帯域での応答の 1 からの最大通過帯域偏差 (通過帯域リップル)、ds は阻止帯域での応答の 0 からの最大阻止帯域偏差 (阻止帯域リップル) です。wp は L2 重み関数の通過帯域エッジ、ws は L2 重み関数の阻止帯域エッジで、wp < wo < ws を満たします。k は、(通過帯域 L2 誤差)/(阻止帯域 L2 誤差) の比です。

k=0wp|A(ω)D(ω)|2dωwzπ|A(ω)D(ω)|2dω

b = fircls1(n,wo,dp,ds,wp,ws,k,'high') では、重み関数をもつハイパス FIR フィルター b が生成されます。ここで、ws < wo < wp です。

b = fircls1(n,wo,dp,ds,...,'design_flag') では、フィルター設計の監視が可能になります。ここで、'design_flag' には、以下を設定できます。

  • 'trace' : 設計に使用する設計テーブルのテキストによる表示。

  • 'plots' : フィルターの振幅、群遅延、零点、および極のプロット。すべてのプロットは、各反復ステップにおいて更新されます。プロットにおける O は新規反復の推定極値であり、X は前の反復の推定極値です。ここで、極値とはフィルターのリップルのピーク (最大および最小) です。対応する O および X をもつリップルのみが等しくなります。

  • 'both' : テキスト表示とプロットを共に表示。

メモ:

dpds が小さい、非常に狭い帯域のフィルター設計では、仕様を満たす長さのフィルターが存在しない場合があります。

すべて折りたたむ

正規化されたカットオフ周波数 0.3 をもつ 55 次のローパス フィルターを設計します。0.02 の通過帯域リップルと 0.008 の阻止帯域リップルを指定します。帯域のプロットを表示します。

n = 55;
wo = 0.3;
dp = 0.02;
ds = 0.008;
b = fircls1(n,wo,dp,ds,'both');
    Bound Violation = 0.0870385343920  
    Bound Violation = 0.0149343456540  
    Bound Violation = 0.0056513587932  
    Bound Violation = 0.0001056264205  
    Bound Violation = 0.0000967624352  
    Bound Violation = 0.0000000226538  

    Bound Violation = 0.0000000000038  

範囲の違反は、設計が収束するときに行われる手順の反復を示します。フィルターの振幅応答を表示します。

fvtool(b)

アルゴリズム

fircls1 では、反復最小二乗アルゴリズムを使用して等リップル応答が求められます。このアルゴリズムは、各反復でラグランジュ乗数と Kuhn-Tucker の条件を使用する乗数交換アルゴリズムです。

参考文献

[1] Selesnick, I. W., M. Lang, and C. S. Burrus. “Constrained Least Square Design of FIR Filters without Specified Transition Bands.” Proceedings of the 1995 International Conference on Acoustics, Speech, and Signal Processing. Vol. 2, 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, Number 8, 1996, pp. 1879–1892.

拡張機能

参考

| |

R2006a より前に導入