俺言語。

自分にしか理解できない言語で書かれた備忘録

フィルタ設計方法・手順

  1. フィルタのパラメータをbuttord関数で算出

    buttord

    バタワース フィルターの次数とカットオフ周波数

    構文

    [n,Wn]=buttord(Wp,Ws,Rp,Rs)
    [n,Wn]=buttord(Wp,Ws,Rp,Rs,'s')

    説明

    buttord では、一連のフィルター設計仕様を満たすために必要な、デジタルまたはアナログ楕円フィルターの最小次数が計算されます。

    デジタル領域

    [n,Wn] = buttord(Wp,Ws,Rp,Rs) では、通過帯域で Rp dB 以下の通過帯域リップル、阻止帯域で Rs dB 以上の減衰量をもつデジタル バタワース フィルターの最小次数 n が返されます。また、対応するカットオフ周波数 Wnスカラー (またはベクトル) も返されます。これらの出力引数 nWn は、関数 butter で使用します。

    次の表を参考にして、阻止帯域と通過帯域を指定する入力引数を選択します。

    阻止帯域と通過帯域のフィルター パラメーターの説明

    パラメーター説明

    Wp

    通過帯域コーナー周波数 Wp は、0 ~ 1 の値をもつスカラーまたは 2 要素ベクトルです。ここで、1 は正規化されたナイキスト周波数 π (サンプルあたりのラジアン単位) に対応します。

    Ws

    阻止帯域コーナー周波数 Ws は、0 ~ 1 の値をもつスカラーまたは 2 要素ベクトルです。ここで、1 は正規化されたナイキスト周波数に対応します。

    Rp

    デシベルを単位とする通過帯域リップル

    Rs

    デシベルを単位とする阻止帯域の減衰量。この値は、阻止帯域における通過帯域からの減衰量をデシベルで表しています。

  2. butter関数でフィルタを設計(初期化?)

    上記で算出されたパラメータでフィルタを設計
     [b,a]=butter(n,Wn)
  3. 必要であれば位相ずれゼロのfiltfilt関数を使う

    2.の戻り値を引数で使う
    y = filtfilt(b,a,x)