メインコンテンツ

poly2rc

予測フィルター多項式の反射係数への変換

説明

k = poly2rc(a) は、予測フィルター係数のベクトル a から得られたラティス構造反射係数のベクトル k を返します。

[k,r0] = poly2rc(a,eFinal) は、最終予測誤差 eFinal に基づいて、ゼロラグ自己相関 r0 も返します。

すべて折りたたむ

予測フィルター多項式 a と最終予測誤差 efinal が指定された場合に、それに対応するラティス構造の反射係数、およびゼロラグ自己相関を求めます。

a = [1.0000 0.6149 0.9899 0.0000 0.0031 -0.0082];
efinal = 0.2;
[k,r0] = poly2rc(a,efinal)
k = 5×1

    0.3090
    0.9801
    0.0031
    0.0081
   -0.0082

r0 = 
5.6032

入力引数

すべて折りたたむ

予測フィルター係数。ベクトルとして指定します。

メモ

a の値には次の制限があります。

  • a(1) を 0 にすることはできません。

  • a(1)1 と等しくない場合、poly2rc 関数は予測フィルター多項式を a(1) で正規化します。

データ型: single | double
複素数のサポート: あり

最終予測誤差パワー。スカラーとして指定します。

データ型: single | double
複素数のサポート: あり

出力引数

すべて折りたたむ

反射係数のリスト。長さ p の列ベクトルとして返されます。ここで、p+1a の要素数です。

ゼロラグ自己相関。スカラーとして返されます。

制限

任意の i に対して abs(k(i)) == 1 の場合、反射係数を求めることは、条件が適切に整っていない問題になります。この場合、poly2rc はいくつかの NaN を返し、警告メッセージを表示します。

ヒント

a の根が、すべて単位円の内側にあるかどうかを簡単にすばやく確認するには、k のすべての要素の大きさが 1 未満かどうかを確認します。

stable = all(abs(poly2rc(a))<1)

アルゴリズム

poly2rc 関数は、次の再帰的関係を実装します。

k(n)=an(n)an1(m)=an(m)k(n)an(nm)1k(n)2,m=1,2,,n1

この関係は、レビンソン再帰法 (参考文献[1]) に基づいています。poly2rc は、この関係を実装するため、a の最初の要素を破棄した後、これを逆の順序でループ処理します。ループ i を反復するごとに、この関数では以下のことが実行されます。

  1. k(i)a(i) と設定します。

  2. 上記の 2 番目の関係をベクトル a の 1 ~ i の要素に適用します。

    a = (a-k(i)*fliplr(a))/(1-k(i)^2);
    

参照

[1] Kay, Steven M. Modern Spectral Estimation. Englewood Cliffs, NJ: Prentice-Hall, 1988.

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入