ドキュメンテーション

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

besself

ベッセル アナログ フィルターの設計

構文

[b,a] = besself(n,Wo)
[z,p,k] = besself(...)
[A,B,C,D] = besself(...)

説明

関数 besself は、ローパス アナログ ベッセル フィルターを設計します。このフィルターは、通過帯域全体でほぼ一定の群遅延をもつという特徴をもち、したがってフィルター処理後の信号波形を通過帯域で保持しています。関数 besself ではデジタル ベッセル フィルターの設計はサポートされません。

[b,a] = besself(n,Wo) により、n 次のローパス アナログ ベッセル フィルターを設計します。ここで、Wo はフィルターの群遅延が近似的に定数になる角周波数です。フィルターの次数 n が大きい場合は、周波数 Wo までの範囲で定数の近似がより近くなる群遅延が生成されます。

関数 besself は、フィルター係数を、長さ n+1 の行ベクトル b および a において、この伝達関数により導かれる s の係数とともに降べきの順で返します。

H(s)=B(s)A(s)=b(1)sn+b(2)sn1++b(n+1)a(1)sn+a(2)sn1++a(n+1).

[z,p,k] = besself(...) では、零点と極が長さ n または 2*n の列ベクトル zp に、ゲインがスカラー k に返されます。

[A,B,C,D] = besself(...) は、状態空間型のフィルター設計を返します。ここで、ABC および D は次のようになります。

x˙=Ax+Buy=Cx+Du.

ここで、u は入力、x は状態ベクトル、y は出力です。

すべて折りたたむ

最大 ラジアン/サンプルの定数近似群遅延をもつ 5 次のアナログ ローパス ベッセル フィルターを設計します。freqs を使用してフィルターの振幅および位相応答をプロットします。

[b,a] = besself(5,10000);
freqs(b,a)

次数 5 のアナログ ベッセル フィルターを設計します。bilinear を使用して、それをデジタル IIR フィルターに変換します。その周波数応答を表示します。

Fs = 100;                           % Sampling Frequency
[z,p,k] = besself(5,1000);          % Bessel analog filter design
[zd,pd,kd] = bilinear(z,p,k,Fs);    % Analog to digital mapping
sos = zp2sos(zd,pd,kd);             % Convert to SOS form
fvtool(sos)                         % Visualize the digital filter

制限

ローパス ベッセル フィルターの振幅応答は、ローパス バタワース フィルターと同様、単調減少します。バタワース、チェビシェフ、および楕円の各フィルターに比べ、ベッセル フィルターは最も緩やかなロールオフをもち、減衰仕様を満たすために最も高い次数を必要とします。

高次フィルターにおいては、状態空間型が数値的に最も正確であり、零点-極-ゲイン型がこれに続きます。伝達関数係数型は最も精度が劣り、15 次程度の低さのフィルター次数でも数値的な問題が生じる可能性があります。

アルゴリズム

関数 besself では、以下の 4 つのステップのアルゴリズムが実行されます。

  1. 関数 besselap を使用して、ローパス アナログ プロトタイプの極、零点、およびゲインを求めます。

  2. 極、零点、およびゲインを状態空間型に変換します。

  3. ローパス プロトタイプが設計仕様を満たすローパス フィルターに変換されます。

  4. 必要に応じて、状態空間フィルターを伝達関数、または、零点-極-ゲイン型に逆変換します。

参考文献

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

R2006a より前に導入

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