Main Content

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

corrmtx

自己相関行列の推定に使用するデータ行列

説明

H = corrmtx(x,m) は、HH が入力ベクトル x に対する自己相関行列のバイアス付き推定となるような、(n+m)-by-(m+1) の方形テプリッツ行列 H = H を返します。n は x の長さであり、m は予測モデルの次数であり、HH の共役転置です。

H = corrmtx(x,m,method) では、method で指定されるメソッドにしたがって、行列 H が計算されます。

[H,r] = corrmtx(___) は、上記の任意の構文に対して、HH として計算された (m + 1) 行 (m + 1) 列の自己相関行列の推定 r も返します。

すべて折りたたむ

ホワイト ガウス ノイズに含まれる 3 つの複素指数で構成された信号を生成します。'modified' メソッドを使用して、データおよび自己相関行列を計算します。

n = 0:99;
s = exp(i*pi/2*n)+2*exp(i*pi/4*n)+exp(i*pi/3*n)+randn(1,100);
m = 12;
[X,R] = corrmtx(s,m,'modified');

自己相関行列の実数部と虚数部をプロットします。

[A,B] = ndgrid(1:m+1);
subplot(2,1,1)
plot3(A,B,real(R))
title('Re(R)')
subplot(2,1,2)
plot3(A,B,imag(R))
title('Im(R)')

入力引数

すべて折りたたむ

入力データ。ベクトルとして指定します。

予測モデルの次数。正の実数の整数として指定します。

行列の計算法。'autocorrelation''prewindowed''postwindowed''covariance'、または 'modified' として指定します。

  • 'autocorrelation': (既定) H(n + m)-by-(m + 1) の方形テプリッツ行列です。m 次の予測モデルを基に、処理の "最初にウィンドウが適用された" データと "最後にウィンドウが適用された" データを使用して導出された、長さ n のデータ ベクトル x に対する自己相関の推定を生成します。この行列は、ユール・ウォーカー法を使用して自己回帰パラメーター推定を実行するのに使用できます。詳細については、aryule を参照してください。

  • 'prewindowed': Hn-by-(m + 1) の方形テプリッツ行列です。m 次の予測モデルを基に、処理の "最初にウィンドウが適用された" データを使用して導出された、長さ n のデータ ベクトル x に対する自己相関の推定を生成します。

  • 'postwindowed': Hn-by-(m + 1) の方形テプリッツ行列です。m 次の予測モデルを基に、処理の "最後にウィンドウが適用された" データを使用して導出された、長さ n のデータ ベクトル x に対する自己相関の推定を生成します。

  • 'covariance': H(n – m)-by-(m + 1) の方形テプリッツ行列です。m 次の予測モデルを基に、処理に "ウィンドウが適用されていない" データを使用して導出された、長さ n のデータ ベクトル x に対する自己相関の推定を生成します。この行列は、共分散法を使用して自己回帰パラメーター推定を実行するのに使用できます。詳細については、arcov を参照してください。

  • 'modified': H2(n – m)-by-(m + 1) の修正方形テプリッツ行列です。m 次の予測モデルを基に、前方予測誤差および後方予測誤差の推定を使用して導出された、長さ n のデータ ベクトル x に対する自己相関の推定を生成します。この行列は、修正共分散法を使用して自己回帰パラメーター推定を実行するのに使用できます。詳細については、armcov を参照してください。

出力引数

すべて折りたたむ

データ行列。返された値は自己相関行列の推定に使用されます。H のサイズは method で指定される行列の計算法によって異なります。

バイアス付き自己相関行列。(m + 1) 行 (m + 1) 列の方形テプリッツ行列として返されます。

アルゴリズム

関数 corrmtx で計算されるテプリッツ データ行列は、選択したメソッドによって異なります。自己相関 (既定) 法により決定される行列は次のとおりです。

H=1n[x(1)000x(2)x(1)00x(3)x(2)00x(m)x(m1)x(1)0x(m+1)x(m)x(2)x(1)x(m+2)x(m+1)x(3)x(2)x(n1)x(n2)x(nm)x(nm1)x(n)x(n1)x(nm+1)x(nm)0x(n)x(nm+2)x(nm+1)00x(n1)x(n2)00x(n)x(n1)000x(n)].

この行列で、m は corrmtx への入力引数 m と同じで、n は length(x) になります。この行列の変動値を使って返される、各メソッドの corrmtx の出力 H は次のとおりです。

  • 'autocorrelation' — (既定) H = H

  • 'prewindowed'HH の n 行 (m + 1) 列の部分行列で、最初の行が [x(1) … 0]、最後の行が [x(n) … x(n – m)] です。

  • 'postwindowed'HH の n 行 (m + 1) 列の部分行列で、最初の行が [x(m + 1) … x(1)]、最後の行が [0 … x(n)] です。

  • 'covariance'HH の(n - m) 行 (m + 1) 列の部分行列で、最初の行が [x(m + 1) … x(1)]、最後の行が [x(n) … x(n – m)] です。

  • 'modified'H は次で定義される 2(n – m)-by-(m + 1) の行列 Hmod です。

    Hmod=12(nm)[x(m+1)x(1)x(n)x(nm)x(1)x(m+1)x(nm)x(n)].

参照

[1] Marple, S. Lawrence. Digital Spectral Analysis: With Applications. Prentice-Hall Signal Processing Series. Englewood Cliffs, N.J: Prentice-Hall, 1987.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

R2006a より前に導入