Main Content

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

buttap

バタワース フィルターのプロトタイプ

説明

[z,p,k] = buttap(n) では、n 次のバタワース アナログ ローパス フィルターのプロトタイプの極とゲインが返されます。

すべて折りたたむ

9 次のバタワース アナログ ローパス フィルターを設計します。その振幅応答と位相応答を表示します。

[z,p,k] = buttap(9);          % Butterworth filter prototype
[num,den] = zp2tf(z,p,k);     % Convert to transfer function form
freqs(num,den)                % Frequency response of analog filter

Figure contains 2 axes objects. Axes object 1 with xlabel Frequency (rad/s), ylabel Phase (degrees) contains an object of type line. Axes object 2 with xlabel Frequency (rad/s), ylabel Magnitude contains an object of type line.

入力引数

すべて折りたたむ

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

出力引数

すべて折りたたむ

システムの零点。行列として返されます。z は、列に分子の零点を含みます。z は、零点がないため空行列となります。

システムの極。列ベクトルとして返されます。p は、伝達関数の分母係数の極位置を含みます。

システムのゲイン。スカラーとして返されます。k は、各分子伝達関数のゲインを含みます。

アルゴリズム

関数 buttap は、長さ n の列ベクトル p に極を、スカラー k にゲインをそれぞれ返します。z は、零点がないため空行列となります。伝達関数は、次のように表されます。

H(s)=z(s)p(s)=k(sp(1))(sp(2))(sp(n))

z = [];
p = exp(sqrt(-1)*(pi*(1:2:2*n-1)/(2*n)+pi/2)).';
k = real(prod(-p));

メモ

関数 buttap では MATLAB® で零点、極、ゲイン (z, p, and k) が返されます。ただし、buttap では生成された C/C++ コードは、零点 z が常に空行列のため、極 p とゲイン k のみが返されます。

バタワース フィルターは、通過帯域で振幅応答が最大フラットとなり、全体的に単調であるという特徴をもちます。ローパスの場合、振幅の二乗応答の最初の 2n-1 次導関数が、ω = 0 においてゼロとなります。振幅の二乗応答関数は、次のようになります。

|H(ω)|2=11+(ω/ω0)2n

これは、左半平面で円周上に等間隔の極をもつ伝達関数と一致します。カットオフ角周波数 ω0 での振幅応答は、フィルターの次数とは関係なく常に 1/2 です。結果が正規化されるように、buttap では ω0 が 1 に設定されます。

参照

[1] Parks, T. W., and C. S. Burrus. Digital Filter Design. New York: John Wiley & Sons, 1987.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入