ドキュメンテーション

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

corrmtx

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

構文

X = corrmtx(x,m)
X = corrmtx(x,m,'method')
[X,R] = corrmtx(...)

説明

X = corrmtx(x,m) は、X'X が長さ n のデータ ベクトル x に対する自己相関行列の (バイアス付き) 推定となるような、(n + m) 行 (m + 1) 列の方形テプリッツ行列 X を返します。m は入力 x の長さより厳密に小さい正の整数でなければなりません。

X = corrmtx(x,m,'method') では、以下のように 'method' で指定されるメソッドに従って、行列 X が計算されます。

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

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

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

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

  • 'modified': X は 2(n – m) 行 (m + 1) 列の修正方形テプリッツ行列です。m 次の予測誤差モデルを基に、前方および後方予測誤差の推定を使用して導出された、長さ n のデータ ベクトル x に対する自己相関の推定を生成します。

[X,R] = corrmtx(...) は、X'*X として計算された (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)')

アルゴリズム

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

X=[x(1)0x(m+1)x(1)x(nm)x(m+1)x(n)x(nm)0x(n)]

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

  • 'autocorrelation' — (既定) X = X であるため上記になります。

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

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

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

  • 'modified'X は、以下に示す 2(n – m) 行 (m + 1) 列の行列 Xmod となります。

    Xmod=[x(m+1)x(1)x(nm)x(m+1)x(n)x(nm)x(1)x(m+1)x(m+1)x(nm)x(nm)x(n)]

参照

[1] Marple, S. Lawrence. Digital Spectral Analysis. Englewood Cliffs, NJ: Prentice-Hall, 1987.

拡張機能

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

R2006a より前に導入