ドキュメンテーション

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

armcov

自己回帰全極モデル パラメーター — 修正共分散法

構文

a = armcov(x,p)
[a,e] = armcov(x,p)

説明

a = armcov(x,p) は、修正共分散法を使用して p 次の自己回帰 (AR) モデルを入力信号 x に近似させます。この入力信号は、ホワイト ノイズを入力して得られる AR システムからの出力です。この方法では、最小二乗という意味で前方および後方予測誤差が最小になります。出力配列 a には AR システム パラメーター A(z) の正規化された推定が z の降べきの順に含まれています。a の列数は p + 1 です。x がベクトルの場合、a は行ベクトルになります。a が行列の場合、a の n 行目に並ぶ係数は x の n 列目をモデル化します。

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

すべて折りたたむ

多項式係数のベクトルを使用し、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 = armcov(y,4)
arcoeffs = 1×5

    1.0000   -2.7741    3.8404   -2.6841    0.9360

毎回入力ノイズの分散を変えながら過程の実現を 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)] = armcov(y,4);
end

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

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

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

Y = filter(1,A,realiz);

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

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

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

詳細

すべて折りたたむ

AR(p) モデル

y(n) を広義定常性ランダム過程とします。これは分散 e をもつホワイト ノイズ入力をシステム関数 A(z) でフィルターすることにより得られます。Py(e)y(n) のパワー スペクトル密度である場合は、以下のようになります。

Py(ejω)=e|A(ejω)|2=e|1+k=1pa(k)ejωk|2.

この方法では、入力データは全極モデルにより特徴付けられるため、モデルの次数 p を正しく選択することが重要になります。

参考

| | | | |

R2006a より前に導入