フィルタ設計方法・手順
- フィルタのパラメータを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 のスカラー (またはベクトル) も返されます。これらの出力引数 n と Wn は、関数 butter で使用します。
次の表を参考にして、阻止帯域と通過帯域を指定する入力引数を選択します。
阻止帯域と通過帯域のフィルター パラメーターの説明
パラメーター 説明 Wp
通過帯域コーナー周波数 Wp は、0 ~ 1 の値をもつスカラーまたは 2 要素ベクトルです。ここで、1 は正規化されたナイキスト周波数 π (サンプルあたりのラジアン単位) に対応します。
Ws
阻止帯域コーナー周波数 Ws は、0 ~ 1 の値をもつスカラーまたは 2 要素ベクトルです。ここで、1 は正規化されたナイキスト周波数に対応します。
Rp
Rs
- butter関数でフィルタを設計(初期化?)
上記で算出されたパラメータでフィルタを設計
[b,a]=butter(n,Wn) - 必要であれば位相ずれゼロのfiltfilt関数を使う
2.の戻り値を引数で使う
y = filtfilt(b,a,x)