Signal Processing Toolbox | ![]() ![]() |
表示
[b,a]=
ellip(n,Rp,Rs,Wn) [b,a]=
ellip(n,Rp,Rs,Wn,'ftype
') [b,a]=
ellip(n,Rp,Rs,Wn,'s') [b,a]=
ellip(n,Rp,Rs,Wn,'ftype
','s') [z,p,k]=
ellip(...) [A,B,C,D]=
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'
には、つぎの文字列が設定できます。
'high'
:カットオフ周波数Wn
をもつハイパスディジタルフィルタ'stop'
:Wn
が2要素ベクトルWn = [w1 w2]
の場合、2*n
次のバンドストップディジタルフィルタで 、遮断帯域は、w1
< w2
となります。設定する出力引数の数により、ellip
は種々の形式のフィルタを実現します。零点-極-ゲイン型を得るには、つぎのように3つの出力引数を使用します。
[z,p,k] = ellip(n,Rp,Rs,Wn)
または、[z,p,k] = ellip(n,Rp,Rs,Wn,'
ftype
')
は、零点と極を長さn
の列ベクトルz
とp
に、また利得をスカラk
にそれぞれ出力します。
状態空間(State space)型を得るには、つぎのように4つの出力引数を使用します。
[A,B,C,D] = ellip(n,Rp,Rs,Wn)
または、
[A,B,C,D] = ellip(n,Rp,Rs,Wn,'
、ここで、ftype
')
A
、B
、C
、およびD
は、
アナログ領域
は、カットオフ周波数Wnをもつ[b,a]
= ellip(n,Rp,Rs,Wn,'s')
n
次のローパスアナログ楕円フィルタを設計し、フィルタ係数を、長さ(n + 1
)の行ベクトルb
およびa
に、sの次数の降順に出力します。
カットオフ周波数は、通過帯域のエッジで、フィルタのゲイン応答が-Rp
dBとなる周波数です。ellip
のカットオフ周波数Wn
は、0より大きくなければなりません。
Wn
がw1
< 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
の列ベクトルz
とp
に、また利得をスカラ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')
A
、B
、C
、および D
は、
例題
サンプリング周波数1000 Hzのデータに対して、300 Hzのカットオフ周波数をもち、通過帯域に3 dBのリップル、また遮断帯域に50 dBの減衰をもつ6次のローパス楕円フィルタを設計します。
[b,a] =
ellip(6,3,50,300/500);
freqz(b,a,512,1000) title('n=6 Lowpass Elliptic Filter')
つぎに、100〜200 Hzの通過帯域をもつ20次のバンドパス楕円フィルタを設計し、そのインパルス応答をプロットします。
n=
10; Rp=
0.5; Rs=
20; Wn=
[100 200]/500; [b,a]=
ellip(n,Rp,Rs,Wn); [y,t]=
impz(b,a,101); stem(t,y) title('Impulse Response of n=10 Elliptic Filter')
制限
高次フィルタでは、状態空間(State space)型が数値的に最も正確であり、ついで、零点-極-利得型が正確です。伝達関数係数型は最も精度が劣り、15次程度のフィルタ次数でも数値的な問題が生じる可能性があります。
アルゴリズム
楕円フィルタの設計は、Butterworth、Chebyshev I型およびII型、ならびに楕円フィルタの設計の中で最も難しく、計算能力を必要とします。ellip
は、つぎの5つのステップのアルゴリズムを使用します。
ellipap
を使って、ローパスアナログプロトタイプの極、零点、および利得を求めます。
ellip
は、bilinear
を使って、プリワーピング周波数をもつ双1次変換によりアナログフィルタをディジタルフィルタに変換します。周波数を慎重に調整することにより、アナログフィルタとディジタルフィルタが、Wn
あるいはw1
とw2
で、同一の周波数応答をもつことが保証されます。
参考
|
Besselアナログフィルタの設計 |
|
Butterworthアナログおよびディジタルフィルタの設計 |
|
Chebyshev I型フィルタの設計(通過帯域リップル) |
|
Chebyshev II型フィルタの設計(遮断帯域リップル) |
|
楕円アナログローパスフィルタのプロトタイプ |
|
楕円フィルタの次数選択 |
![]() | dpsssave | ellipap | ![]() |