Signal Processing Toolbox    
besself

Besselアナログフィルタの設計

表示

詳細

besselfは、ローパス、バンドパス、ハイパス、およびバンドストップアナログBesselフィルタを設計します。アナログBesselフィルタには、通過帯域全体に渡り、ほとんど一定の群遅延をもつという特徴があるため、通過帯域において、フィルタ処理された信号の波形が保持されます。ディジタルBesselフィルタには、この特性がないため、besselfは、ディジタルBesselフィルタの設計はサポートしていません。

[b,a] = besself(n,Wn) は、カットオフ周波数Wnをもつn 次のローパスアナログフィルタを設計します。これは、フィルタ係数を長さn+1の行ベクトルbおよびaに、sの次数の降順に出力します。

カットオフ周波数は、フィルタのゲイン応答が急激に減衰し始める周波数です。besselfの場合には、カットオフ周波数Wnは、0より大きくなければなりません。besselfで設計したBesselフィルタのゲイン応答は、カットオフ周波数で、必ずsqrt(1/2)未満となり、次数nを大きくするとより小さくなります。

Wnが2要素ベクトル Wn = [w1 w2](ここで、w1 w2)の場合、besself(n,Wn) は、通過帯域w1 <   <  w2をもつ2*n次のバンドパスアナログフィルタを出力します。

[b,a] = besself(n,Wn,'ftype') は、ハイパスフィルタ、または、バンドストップフィルタを設計します。ここで、'ftype'には、つぎの文字列を設定できます。

設定する出力引数の数により、besselfは種々の形式のアナログフィルタを実現します。零点-極-ゲイン型を得るには、つぎのように3つの出力引数を使用します。

[z,p,k] = besself(n,Wn) 、または、[z,p,k] = besself(n,Wn,'ftype') は、零点と極を長さn、または、2*nの列ベクトルzおよびp に、またゲインをスカラk にそれぞれ出力します。

状態空間型を得るには、つぎのように4つの出力引数を使用します。

[A,B,C,D] = besself(n,Wn) または

[A,B,C,D] = besself(n,Wn,'ftype') ここで、ABC、および D は、つぎの型になります。

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

例題

10,000ラジアン/秒以上の周波数を抑制する5次アナログローパスBesselフィルタを設計し、freqsを用いてフィルタの周波数応答をプロットします。

制限

ローパスBesselフィルタは、ローパスButterworthフィルタと同様に単調減少するゲイン応答をもちます。Butterworth、Chebyshev、および楕円フィルタと比較すると、Besselフィルタは、最も緩やかなロールオフをもち、減衰仕様を満たすのに最も高い次数が必要となります。

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

アルゴリズム

besselfは、つぎの4つのステップのアルゴリズムを実行します。

  1. 関数besselapを使って、ローパスアナログプロトタイプの極、零点、およびゲインを求めます。
  2. 極、零点、およびゲインを状態空間型に変換します。
  3. 状態空間変換を使って、ローパスフィルタを希望するカットオフ周波数をもつバンドパス、ハイパス、またはバンドストップフィルタに変換します。
  4. 必要に応じて、状態空間フィルタを伝達関数または零点-極-ゲイン型に逆変換します。

参考
besselap
Besselアナログローパスフィルタのプロトタイプ
butter
Butterworthアナログおよびディジタルフィルタの設計
cheby1
Chebyshev I型フィルタの設計(通過帯域リップル)
cheby2
Chebyshev II型フィルタの設計(遮断帯域リップル)
ellip
楕円フィルタの設計


 besselap bilinear