Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

yulewalk

再帰型デジタル フィルターの設計

説明

[b,a] = yulewalk(n,f,m) では、周波数振幅応答が f および m で与えられた値とほぼ一致する n 次の IIR フィルターがもつ伝達関数の係数が返されます。

すべて折りたたむ

正規化されたカットオフ周波数 0.6 をもつ 8 次のローパス フィルターを設計します。その周波数応答をプロットし、それに、対応する理想的フィルターの応答を重ね合わせます。

f = [0 0.6 0.6 1];
m = [1 1 0 0];

[b,a] = yulewalk(8,f,m);
[h,w] = freqz(b,a,128);

plot(w/pi,mag2db(abs(h)))
yl = ylim;
hold on
plot(f(2:3),yl,'--')
xlabel('\omega/\pi')
ylabel('Magnitude')
grid

遷移幅を広く指定することにより、阻止帯域の減衰量を増やします。

f = [0 0.55 0.6 0.65 1];
m = [1 1 0.5 0 0];

[b,a] = yulewalk(8,f,m);
h = freqz(b,a,128);

hold on
plot(w/pi,mag2db(abs(h)))
hold off
ylim(yl)

入力引数

すべて折りたたむ

フィルター次数。正の整数スカラーとして指定します。

データ型: single | double

周波数点。0 ~ 1 の範囲にある点のベクトルとして指定します。ここで、1 はナイキスト周波数、またはサンプル レートの半分に対応します。f の最初の点は 0、最後の点は 1 でなければなりません。中間の点はすべて増加する順でなければなりません。f は重複する周波数点をもつことが可能で、これは、周波数応答のステップに対応します。

例: [0 0.25 0.4 0.5 0.5 0.7 1] は、不規則にサンプリングされたナイキスト範囲を指定します。

データ型: single | double

振幅応答。f で指定した点における目的の応答を含むベクトルとして指定します。mf と同じ長さでなければなりません。

例: [0 1 1 1 0 0 0] は、バンドパス振幅応答を指定します。

データ型: single | double

出力引数

すべて折りたたむ

フィルター係数。行ベクトルとして返されます。出力されるフィルター係数は、以下のように z の降べきの順に並べられます。

B(z)A(z)=b(1)+b(2)z1++b(n+1)zna(1)+a(2)z1++a(n+1)zn.

ヒント

周波数応答を設定するときには、通過帯域から阻止帯域への急激な遷移を避けてください。最良のフィルター設計を得るには、遷移領域の勾配をいくつか試さなければならない場合もあります。

アルゴリズム

yulewalk では、指定した周波数応答に最小二乗近似を使用して、再帰型 IIR デジタル フィルターが設計されます。この関数は、時間領域の適合を行います。

  • 分母係数を計算するために、yulewalk では、指定した周波数応答の逆フーリエ変換によって計算された相関係数で拡張ユール・ウォーカー方程式を使用します。

  • 分子を計算するために、yulewalk は次の手順に従います。

    1. パワー周波数応答の加法分解に対応する分子多項式を計算します。

    2. 分子多項式および分母多項式に対応する完全な周波数応答を評価します。

    3. スペクトル因数分解法を使用して、フィルターのインパルス応答を求めます。

    4. このインパルス応答に対する最小二乗近似により、分子多項式を求めます。

参照

[1] Friedlander, B., and Boaz Porat. "The Modified Yule-Walker Method of ARMA Spectral Estimation." IEEE® Transactions on Aerospace Electronic Systems. Vol. AES-20, Number 2, 1984, pp. 158–173.

拡張機能

R2006a より前に導入