メインコンテンツ

fircls1

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

    説明

    b = fircls1(n,wo,dp,ds) では、長さ n + 1 の線形位相ローパス FIR フィルター b が生成されます。このフィルターの周波数振幅応答は、正規化カットオフ周波数 wo、通過帯域リップル dp、および阻止帯域リップル ds によって指定されたものと一致します。

    b = fircls1(n,wo,dp,ds,wt) は、フィルターの周波数振幅応答が次の区間に収まるように周波数 wt を指定します。

    • wt が通過帯域領域内にある場合、通過帯域領域に沿った [1-dp,1+dp]。

    • wt が阻止帯域領域内にある場合、阻止帯域領域に沿った [-ds,ds]。

    b = fircls1(n,wo,dp,ds,wp,ws,k) は、通過帯域エッジ周波数 wp、阻止帯域エッジ周波数 ws、および通過帯域対阻止帯域設計誤差比 k によって指定される L2 重み付け関数をもつ FIR フィルターを生成します。

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

    b = fircls1(___,designDisplay) は、フィルター設計の視覚的な表示オプションを指定します。

    すべて折りたたむ

    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  
    

    Figure contains 3 axes objects. Axes object 1 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 2 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 3 contains 2 objects of type line. One or more of the lines displays its values using only markers

    入力引数

    すべて折りたたむ

    フィルター次数。実数値の正の整数スカラーとして指定します。

    データ型: single | double

    正規化されたカットオフ周波数。01 の実数値の正のスカラーとして指定します。この際、1 はナイキスト周波数に対応します。

    データ型: single | double

    通過帯域リップル。実数値の正のスカラーとして指定します。通過帯域リップルは、1 を基準とした最大の通過帯域偏差です。

    メモ

    dp が小さく帯域が非常に狭いフィルターを設計する場合、仕様を満たす指定された次数のフィルターが存在しない可能性があります。このシナリオでは、関数は、仕様に可能な限り近い周波数振幅特性をもつフィルター設計を返します。この問題を解決するには、設計上の制約を緩和するか、フィルターの次数を増やします。

    データ型: single | double

    阻止帯域リップル。実数値の正のスカラーとして指定します。阻止帯域リップルは、0 を基準とした最大の阻止帯域偏差です。

    メモ

    ds が小さく帯域が非常に狭いフィルターを設計する場合、仕様を満たす指定された次数のフィルターが存在しない可能性があります。このシナリオでは、関数は、仕様に可能な限り近い周波数振幅特性をもつフィルター設計を返します。この問題を解決するには、設計上の制約を緩和するか、フィルターの次数を増やします。

    データ型: single | double

    正規化された帯域エッジ周波数。01 の実数値の正のスカラーとして指定します。この際、1 はナイキスト周波数に対応します。

    正規化された帯域エッジ周波数を指定すると、通過帯域または阻止帯域のエッジ要件を満たす次の 4 つのフィルター設計のいずれかを作成できます。

    • ローパス FIR フィルター:

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

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

    • ハイパス FIR フィルター:

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

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

    データ型: single | double

    L2 重み付け関数の通過帯域エッジ周波数。実数値のスカラーとして指定します。wp の値は通過帯域エッジの内側になければなりません。

    • ローパス フィルターの場合: wp<wo

    • ハイパス フィルターの場合: wp>wo

    実際の周波数応答振幅と望ましい周波数応答振幅をそれぞれ A(ω) および D(ω) とすると、通過帯域設計の L2 誤差は次のようになります。

    • ローパス フィルターの場合: ep=0wp|A(ω)D(ω)|2dω

    • ハイパス フィルターの場合: ep=wpπ|A(ω)D(ω)|2dω

    データ型: single | double

    L2 重み付け関数の阻止帯域エッジ周波数。実数値のスカラーとして指定します。wp の値は阻止帯域エッジの内側になければなりません。

    • ローパス フィルターの場合: ws>wo

    • ハイパス フィルターの場合: ws<wo

    実際の周波数応答振幅と望ましい周波数応答振幅をそれぞれ A(ω) および D(ω) とすると、阻止帯域設計の L2 誤差は次のようになります。

    • ローパス フィルターの場合: es=wsπ|A(ω)D(ω)|2dω

    • ハイパス フィルターの場合: es=0ws|A(ω)D(ω)|2dω

    データ型: single | double

    通過帯域対阻止帯域設計の L2 誤差比。実数値のスカラーとして指定します。エッジ周波数 wpws に基づいて得られた通過帯域設計と阻止帯域設計の L2 誤差をそれぞれ ep および es とすると、k の値は次のようになります。

    k=epes

    データ型: single | double

    フィルター設計の表示オプション。次のいずれかとして指定します。

    • "trace" — 各反復ステップで、設計誤差をテキストで表示します。

    • "plots" — フィルターの全帯域の振幅応答を示す一連のプロットと、各サブ帯域での振幅応答を示すズーム ビューを表示します。この関数は、各反復ステップですべてのプロットを更新します。プロットにおける O は新規反復の推定極値であり、X は前の反復の推定極値です。ここで、極値とはフィルターのリップルのピーク (最大値および最小値) です。

    • "both" — テキスト表示とプロットを共に表示します。

    データ型: char | string

    出力引数

    すべて折りたたむ

    フィルター係数。長さ n + 1 の行ベクトルとして返されます。

    アルゴリズム

    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 より前に導入

    参考

    | |