Signal Processing Toolbox    
ellip

楕円フィルタの設計

表示

詳細

ellipは、ディジタルおよびアナログのローパス、ハイパス、バンドパス、およびバンドストップ楕円フィルタを設計します。楕円フィルタは、ButterworthフィルタやChebyshevフィルタより鋭いロールオフ特性を示しますが、通過帯域と遮断帯域の両方で等リップルをもちます。一般に、楕円フィルタは、任意のフィルタタイプの中で、最小の次数で与えられる性能仕様を満たします。

ディジタル領域

[b,a] = ellip(n,Rp,Rs,Wn) は、カットオフ周波数Wnをもち、通過帯域にRp dBのリップルをもち、また通過帯域のピーク値からRs dB低い遮断帯域をもつn次のローパスディジタル楕円フィルタを設計します。これは、フィルタ係数を、長さ(n+1)の行ベクトルbおよびaに、zの次数の降順に出力します。

カットオフ周波数は、通過帯域のエッジで、フィルタのゲイン応答が -Rp dBとなる周波数です。ellipでは、カットオフ周波数Wnは、0と1の間の数です。ここで、1はサンプリング周波数の1/2(Nyquist周波数)です。通過帯域リップルの値Rpを小さくしても、あるいは遮断帯域の減衰量Rsを大きくしても、遷移幅は広くなります(ロールオフ特性が浅くなります)。

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

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

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

[z,p,k] = ellip(n,Rp,Rs,Wn) または、[z,p,k] = ellip(n,Rp,Rs,Wn,'ftype') は、零点と極を長さn の列ベクトルzpに、また利得をスカラkにそれぞれ出力します。

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

[A,B,C,D] = ellip(n,Rp,Rs,Wn) または、

[A,B,C,D] = ellip(n,Rp,Rs,Wn,'ftype') 、ここで、ABC、およびDは、

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

アナログ領域

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

カットオフ周波数は、通過帯域のエッジで、フィルタのゲイン応答が-Rp dBとなる周波数です。ellipのカットオフ周波数Wnは、0より大きくなければなりません。

Wnw1 w2である2要素ベクトルの場合、ellip(n,Rp,Rs,Wn,'s')は、通過帯域w1 < w2をもつ2*n 次のバンドパスアナログフィルタを出力します。

[b,a] = ellip(n,Rp,Rs,Wn,'ftype','s') は、ハイパスフィルタまたはバンドストップフィルタを設計します。

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

[z,p,k] = ellip(n,Rp,Rs,Wn,'s') または、

[z,p,k] = ellip(n,Rp,Rs,Wn,'ftype','s') は、零点と極を長さnまたは2*nの列ベクトルzpに、また利得をスカラkにそれぞれ出力します。

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

[A,B,C,D] = ellip(n,Rp,Rs,Wn,'s') または、

[A,B,C,D] = ellip(n,Rp,Rs,Wn,'ftype','s') ここで、ABC、および D は、

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

例題

サンプリング周波数1000 Hzのデータに対して、300 Hzのカットオフ周波数をもち、通過帯域に3 dBのリップル、また遮断帯域に50 dBの減衰をもつ6次のローパス楕円フィルタを設計します。

フィルタの周波数応答は、つぎのようになります。

つぎに、100〜200 Hzの通過帯域をもつ20次のバンドパス楕円フィルタを設計し、そのインパルス応答をプロットします。

制限

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

アルゴリズム

楕円フィルタの設計は、Butterworth、Chebyshev I型およびII型、ならびに楕円フィルタの設計の中で最も難しく、計算能力を必要とします。ellipは、つぎの5つのステップのアルゴリズムを使用します。

  1. 関数ellipap を使って、ローパスアナログプロトタイプの極、零点、および利得を求めます。
  2. 極、零点、および利得を状態空間(State space)型に変換します。
  3. 状態空間(State space)変換を使って、ローパスフィルタを希望するカットオフ周波数をもつバンドパス、ハイパス、またはバンドストップフィルタに変換します。
  4. ディジタルフィルタ設計の場合、ellipは、bilinearを使って、プリワーピング周波数をもつ双1次変換によりアナログフィルタをディジタルフィルタに変換します。周波数を慎重に調整することにより、アナログフィルタとディジタルフィルタが、Wnあるいはw1w2で、同一の周波数応答をもつことが保証されます。
  5. 必要に応じて、状態空間(State space)フィルタを伝達関数または零点-極-利得型に逆変換します。

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


 dpsssave ellipap