ドキュメンテーション

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

aryule

自己回帰全極モデル パラメーター — ユール・ウォーカー法

構文

a = aryule(x,p)
[a,e] = aryule(x,p)
[a,e,rc] = aryule(x,p)

説明

a = aryule(x,p) は、入力配列 x の次数 p のモデルに対応する正規化された自己回帰 (AR) パラメーターを返します。x がベクトルなら、出力配列 a は行ベクトルです。x が行列の場合、a の n 行目に並ぶパラメーターは x の n 列目をモデル化します。ap + 1 個の列をもちます。px の要素 (つまり行) の数よりも小さくなければなりません。

[a,e] = aryule(x,p) では、ホワイト ノイズ入力の推定分散 e が返されます。

[a,e,rc] = aryule(x,p) では、rc に反射係数が返されます。

すべて折りたたむ

多項式係数のベクトルを使用し、1024 サンプルのホワイト ノイズをフィルター処理することで AR(4) を生成します。再現可能な結果が必要な場合は、乱数発生器をリセットします。ユール・ウォーカー法を使用して係数を推定します。

rng default

A = [1 -2.7607 3.8106 -2.6535 0.9238];

y = filter(1,A,0.2*randn(1024,1));

arcoeffs = aryule(y,4)
arcoeffs = 1×5

    1.0000   -2.7262    3.7296   -2.5753    0.8927

毎回入力ノイズの分散を変えながら過程の実現を 50 件作成します。ユール・ウォーカー法により推定した分散を実際の値と比較します。

nrealiz = 50;

noisestdz = rand(1,nrealiz)+0.5;

randnoise = randn(1024,nrealiz);

for k = 1:nrealiz
    y = filter(1,A,noisestdz(k) * randnoise(:,k));
    [arcoeffs,noisevar(k)] = aryule(y,4);
end

plot(noisestdz.^2,noisevar,'*')
title('Noise Variance')
xlabel('Input')
ylabel('Estimated')

aryule のマルチチャネル構文を使用して手順を繰り返します。

realiz = bsxfun(@times,noisestdz,randnoise);

Y = filter(1,A,realiz);

[coeffs,variances] = aryule(Y,4);

hold on
plot(noisestdz.^2,variances,'o')

q = legend('Single channel loop','Multichannel');
q.Location = 'best';

多項式係数のベクトルを使用し、1024 サンプルのホワイト ノイズをフィルター処理することで AR(2) を生成します。再現可能な結果が必要な場合は、乱数発生器をリセットします。

rng default

y = filter(1,[1 -0.75 0.5],0.2*randn(1024,1));

ユール・ウォーカー法を使用して、AR(10) モデルを過程にあてはめます。反射係数を出力してプロットします。

[ar_coeffs,NoiseVariance,reflect_coeffs] = aryule(y,10);

stem(reflect_coeffs)
axis([-0.05 10.5 -1 1])
title('Reflection Coefficients by Lag')

反射係数は、ラグ 2 後にゼロに減衰します。これは、AR(10) モデルが、データの時間依存性をかなり過大に推定していることを示します。

詳細

すべて折りたたむ

AR(p) モデル

p 次の AR モデルにおいて、現在の出力は、それ以前の p の出力とホワイト ノイズ入力の線形結合になります。p の過去の出力に重み付けを行うことで、自己回帰の平均二乗の予測誤差が最小になります。y(n) が出力の現在の値で、x(n) がゼロ平均ホワイト ノイズ入力の場合、AR(p) モデルは次のようになります。

k=0pa(k)y(nk)=x(n).

反射係数

反射係数は、–1 でスケーリングした部分自己相関係数です。反射係数では、間にある k - 1 回のステップに基づく予測を差し引いた後の、y(n)y(n - k) 間の時間依存性が示されます。

アルゴリズム

関数 aryule は、サンプル自己相関列のバイアス付き推定にレビンソン・ダービン再帰法を使用して、パラメーターを計算します。

参照

[1] Hayes, Monson H. Statistical Digital Signal Processing and Modeling.New York: John Wiley & Sons, 1996.

R2006a より前に導入