ドキュメンテーション

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

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

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

さまざまなタイプのフィルターを指定するには、次のガイドを参考にしてください。

フィルター タイプによる阻止帯域と通過帯域の仕様

フィルター タイプ

阻止帯域と通過帯域の条件

阻止帯域

通過帯域

ローパス

Wp < Ws、ともにスカラー

(Ws,1)

(0,Wp)

ハイパス

Wp > Ws、ともにスカラー

(0,Ws)

(Wp,1)

バンドパス

Ws で指定された区間は、Wp (Ws(1) < Wp(1) < Wp(2) < Ws(2)) で指定されたものを含みます。

(0,Ws(1)) および (Ws(2),1)

(Wp(1),Wp(2))

バンドストップ

Wp で指定された区間は、Ws (Wp(1) < Ws(1) < Ws(2) < Wp(2)) で指定されたものを含みます。

(Ws(1),Ws(2))

(0,Wp(1)) および (Wp(2),1)

フィルター仕様において、通過帯域/阻止帯域でのリップルが両側で等しくないバンドパス フィルター/バンドストップ フィルターが必要な場合は、この表の仕様に従ってローパス フィルターとハイパス フィルターを別々に設計し、2 つのフィルターをカスケードに結合します。

アナログ領域

[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s') では、アナログ バタワース フィルターの最小次数 n およびカットオフ周波数 Wn が求められます。上記の「阻止帯域と通過帯域のフィルター パラメーターの説明」の表の説明と同様に、周波数 WpWs を設定します。周波数をラジアン/秒で設定し、通過帯域または阻止帯域は無限大に設定にできるのは、この場合のみです。

上の「フィルター タイプによる阻止帯域と通過帯域の仕様」の表で説明したように、関数 buttord をローパス、ハイパス、バンドパス、およびバンドストップのフィルターに使用します。

すべて展開する

ローパス バタワース フィルター

1,000Hz でサンプルされたデータに対し、0 ~ 40 Hz の通過帯域でのリップルが 3 dB を超えず、阻止帯域の減衰量が少なくとも 60 dB のローパス フィルターを設計します。フィルターの次数とカットオフ周波数を求めます。

Wp = 40/500; Ws = 150/500;
[n,Wn] = buttord(Wp,Ws,3,60)
n =

     5


Wn =

    0.0810

2 次セクション型としてフィルターを指定し、周波数応答をプロットします。

[z,p,k] = butter(n,Wn);
sos = zp2sos(z,p,k);
freqz(sos,512,1000);
title(sprintf('n = %d Butterworth Lowpass Filter',n))

バンドパス バタワース フィルター

次に、60 ~ 200 Hz の通過帯域をもち、通過帯域のリップルが最大でも 3 dB、阻止帯域の減衰量が少なくとも 40 dB のバンドパス フィルターを設計します。サンプルレートを 1 kHz に指定します。通過帯域の両側で阻止帯域の幅を 50 Hz にします。フィルターの次数とカットオフ周波数を求めます。

Wp = [60 200]/500; Ws = [50 250]/500;
Rp = 3; Rs = 40;
[n,Wn] = buttord(Wp,Ws,Rp,Rs)
n =

    16


Wn =

    0.1198    0.4005

2 次セクション型としてフィルターを指定し、周波数応答をプロットします。

[z,p,k] = butter(n,Wn);
sos = zp2sos(z,p,k);
freqz(sos,128,1000)
title(sprintf('n = %d Butterworth Bandpass Filter',n))

詳細

すべて展開する

アルゴリズム

buttord の次数予測公式は、参考文献 [1] に記述されています。これは、アナログ領域において、アナログとデジタルの両方で動作します。デジタルの場合は、周波数パラメーターが s 領域に変換され、次数と固有周波数が推定され、その後 z 領域への逆変換が行われます。

buttord では、希望するフィルターの通過帯域周波数を 1 rad/s (ローパス フィルターおよびハイパス フィルターの場合)、または -1 および 1 rad/s (バンドパス フィルターおよびバンドストップ フィルターの場合) に変換することにより、まずローパス フィルターのプロトタイプを作成します。次に、阻止帯域仕様を満たすローパス フィルターに必要な最小次数が計算されます。

参考文献

[1] Rabiner, L. R., and B. Gold. Theory and Application of Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1975, p. 227.

この情報は役に立ちましたか?