Main Content

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

polystab

構文

b = polystab(a)

説明

polystab では、単位円に対して多項式が安定化されます。これによって、1 より大きい根が単位円の内側に射影されます。

b = polystab(a) では、安定化された多項式を含む行ベクトル b が返されます。a は、通常 z 領域における多項式係数ベクトルです。

A(z)=a(1)+a(2)z1++a(m+1)zm.

すべて折りたたむ

ウィンドウ法を使用して、正規化されたカットオフ周波数 0.4π ラジアン/サンプルをもつ 25 次の FIR フィルターを設計します。フィルターが最小位相でなく線形位相をもっているかどうかを確認します。

h = fir1(25,0.4);

h_linphase = islinphase(h)
h_linphase = logical
   1

h_minphase = isminphase(h)
h_minphase = logical
   0

polystab を使用して、線形位相フィルターを最小位相フィルターに変換します。フィルターの位相応答をプロットします。

hmin = polystab(h)*norm(h)/norm(polystab(h));

hmin_linphase = islinphase(hmin)
hmin_linphase = logical
   0

hmin_minphase = isminphase(hmin)
hmin_minphase = logical
   1

hfvt = fvtool(h,1,hmin,1,'Analysis','phase');
legend(hfvt,'h','hmin')

Figure Figure 1: Phase Response contains an axes object. The axes object with title Phase Response, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Phase (radians) contains 2 objects of type line. These objects represent h, hmin.

2 つのフィルター処理が同じ振幅応答をもつことを検証します。

hfvt = fvtool(h,1,hmin,1);
legend(hfvt,'h','hmin')

Figure Figure 2: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains 2 objects of type line. These objects represent h, hmin.

アルゴリズム

polystab では、多項式の根が求められ、単位円の外側に見つかった根が単位円の内側に写像されます。

v = roots(a);
vs = 0.5*(sign(abs(v)-1)+1);
v = (1-vs).*v + vs./conj(v);
b = a(1)*poly(v);

バージョン履歴

R2006a より前に導入

参考