poly2rc
予測フィルター多項式の反射係数への変換
構文
k = poly2rc(a)
[k,r0] = poly2rc(a,efinal)
説明
k = poly2rc(a)
では、予測フィルター多項式 a
が、対応するラティス構造の反射係数に変換されます。a
は実数または複素数で、a(1)
は 0 にできません。a(1)
が 1
でない場合、poly2rc は a(1)
で予測フィルター多項式を正規化します。k
はサイズが length(a)-1
の行ベクトルです。
[k,r0] = poly2rc(a,efinal)
では、最終予測誤差 efinal
に基づいてゼロラグ自己相関 r0
が返されます。
例
制限
任意の i
に対して abs(k(i)) == 1
の場合、反射係数を求めることは、条件が適切に整っていない問題になります。この場合、poly2rc
ではいくつかの NaN
が返され、警告メッセージが表示されます。
ヒント
a
の根が、すべて単位円の内側にあるかどうかを簡単にすばやく確認するには、k
の各要素の大きさが 1 未満かどうかを確認します。
stable = all(abs(poly2rc(a))<1)
アルゴリズム
poly2rc
では、以下の再帰関係が実装されます。
この関係は、レビンソン再帰法 (参考文献[1]) に基づいています。この関係を実装するために、poly2rc
は a
の最初の要素を空行列とし、その後の要素を反転してループ状に上の計算を実行します。ループ i
を反復するごとに、この関数では以下のことが実行されます。
k(i)
をa(i)
と設定します。上記の 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 より前に導入