Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

buttord

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

説明

[n,Wn] = buttord(Wp,Ws,Rp,Rs) では、通過帯域リップルが Rp dB 以下で、阻止帯域で少なくとも Rs dB の減衰量を持つデジタル バタワース フィルターの最小次数 n が返されます。WpWs はそれぞれ、フィルターの通過帯域と阻止帯域のエッジ周波数で、0 ~ 1 に正規化されます。ここで 1 は πラジアン/サンプルに相当します。また、対応するカットオフ周波数 Wn のスカラー (またはベクトル) も返されます。バタワース フィルターを設計するには、出力引数 nWnbutter の入力引数として使用します。

[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s') では、アナログ バタワース フィルターの最小次数 n およびカットオフ周波数 Wn が求められます。1 秒あたりのラジアンを単位として周波数 WpWs を指定します。通過帯域または阻止帯域を無限大にできます。

すべて折りたたむ

1000Hz でサンプリングされたデータに対し、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))

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Frequency (Hz), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title n = 5 Butterworth Lowpass Filter, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

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

Wp = [100 200]/500;
Ws = [50 250]/500;
Rp = 3;
Rs = 40;
[n,Wn] = buttord(Wp,Ws,Rp,Rs)
n = 8
Wn = 1×2

    0.1951    0.4080

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

[z,p,k] = butter(n,Wn);
sos = zp2sos(z,p,k);

freqz(sos,128,1000)
title(sprintf('n = %d Butterworth Bandpass Filter',n))

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Frequency (Hz), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title n = 8 Butterworth Bandpass Filter, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

入力引数

すべて折りたたむ

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

  • WpWs が両方ともスカラーで、Wp < Ws である場合は、buttord はローパス フィルターの次数とカットオフ周波数を返します。フィルターの阻止帯域の範囲は Ws ~ 1、通過帯域の範囲は 0 ~ Wp です。

  • WpWs が両方ともスカラーで、Wp > Ws である場合は、buttord はハイパス フィルターの次数とカットオフ周波数を返します。フィルターの阻止帯域の範囲は 0 ~ Ws、通過帯域の範囲は Wp ~ 1 です。

  • WpWs が両方ともベクトルで、Ws によって指定される区間に Wp によって指定される区間が含まれる場合は (Ws(1) < Wp(1) < Wp(2) < Ws(2))、buttord はバンドパス フィルターの次数とカットオフ周波数を返します。フィルターの阻止帯域の範囲は 0 ~ Ws(1) および Ws(2) ~ 1 です。通過帯域の範囲は Wp(1)Wp(2) です。

  • WpWs が両方ともベクトルで、Wp によって指定される区間に Ws によって指定される区間が含まれる場合は (Wp(1) < Ws(1) < Ws(2) < Wp(2))、buttord はバンドストップ フィルターの次数とカットオフ周波数を返します。フィルターの阻止帯域の範囲は Ws(1)Ws(2) です。通過帯域の範囲は 0 ~ Wp(1) かつ Wp(2) ~ 1 です。

データ型: single | double

メモ

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

阻止帯域コーナー周波数。0 ~ 1 の値をもつスカラーまたは 2 要素ベクトルとして指定されます。ここで、1 は正規化されたナイキスト周波数 π ラジアン/サンプルに対応します。

データ型: single | double

通過帯域リップル。スカラーとして dB 単位で指定します。

データ型: single | double

阻止帯域の減衰量。スカラーとして dB 単位で指定します。

データ型: single | double

出力引数

すべて折りたたむ

最小フィルター次数。整数スカラーとして返されます。

カットオフ周波数。スカラーまたはベクトルとして返されます。

アルゴリズム

buttord の次数予測式は、アナログ領域において、アナログとデジタルの両方で動作します。デジタルの場合は、周波数パラメーターが s 領域に変換され、次数と固有振動数が推定されます。その後、関数によって z 領域への逆変換が行われます。

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

参照

[1] Rabiner, Lawrence R., and Bernard Gold. Theory and Application of Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1975.

拡張機能

バージョン履歴

R2006a より前に導入