ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

levinson

レビンソン・ダービン再帰法

構文

a = levinson(r)
a = levinson(r,n)
[a,e] levinson(r,n)
[a,e,k] levinson(r,n)

説明

レビンソン・ダービン再帰法は、設定された確定的な自己相関列をもつ全極 IIR フィルターを求めるためのアルゴリズムです。この再帰法は、フィルター設計、コード化、スペクトル推定などで使用されています。levinson で生成されるフィルターは、最小位相となります。

a = levinson(r) は、自己相関列 として r をもつ length(r)-1 次の自己回帰線形過程の係数が求められます。r は、実数または複素数の確定的な自己相関列です。r が行列の場合、levinson では r の各列の係数が求められ、a の行に返されます。n=length(r)-1 は、分母多項式 A(z) の既定の次元、すなわち、a = [1 a(2) ... a(n+1)] です。フィルター係数は、以下のように z–1 の次数の降順で順序付けられます。

H(z)=1A(z)=11+a(2)z1++a(n+1)zn

a = levinson(r,n) では、次数 n の自己回帰モデルの係数が返されます。

[a,e] levinson(r,n) では、次数 n の予測誤差 e が返されます。

[a,e,k] levinson(r,n) では、反射係数 k が長さ n の行ベクトルとして返されます。

    メモ:   k は、a 係数の計算中に内部的に計算されます。このため、k を同時に返す方が、tf2latc を使用して ak に変換するよりも効率的です。

詳細

すべて展開する

アルゴリズム

levinson では、対称 Toeplitz 連立一次方程式を解けます。

[r(1)r(2)*r(n)*r(2)r(1)r(n1)*r(n)r(2)r(1)] [a(2)a(3)a(n+1)]=[r(2)r(3)r(n+1)]

ここで、r = [r(1)  ... r(n+1)] は入力自己相関ベクトルであり、r(i)* は r(i) の複素共役を表します。入力 r は、自己相関係数のベクトルで、ラグ 0 は最初の要素 r(1) です。このアルゴリズムは、O(n2) フロップを必要とし、n が大きい場合には、MATLAB®\ コマンドより、はるかに効率的です。ただし、関数 levinson ではできるだけ高速に演算を行うために、低次の場合には \ を使用しています。

参考文献

[1] Ljung, L., System Identification: Theory for the User, Prentice-Hall, 1987, pp. 278-280.

この情報は役に立ちましたか?