ドキュメンテーション

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

移動平均過程の自己相関

この例では、フィルター処理によってホワイト ノイズ過程に自己相関を発生させる方法を説明します。乱数信号に自己相関を発生させる場合、乱数信号の周波数成分を操作します。移動平均フィルターでは、信号の高周波数成分が減衰されるため、信号は事実上平滑化されます。

3 点移動平均フィルターのインパルス応答を作成します。上記のフィルターで N(0,1) ホワイト ノイズ列をフィルター処理します。再現性のある結果を得るために、乱数発生器を既定の状態に設定します。

h = 1/3*ones(3,1);
rng default
x = randn(1000,1);
y = filter(h,1,x);

サンプルのバイアス付き自己相関を 20 ラグまで求めます。サンプルの自己相関を理論上の自己相関とともにプロットします。

[xc,lags] = xcorr(y,20,'biased');
stem(lags,xc,'markerfacecolor',[0 0 1])
Xc = zeros(size(xc));
Xc(19:23) = [1 2 3 2 1]/9*var(x);
hold on
stem(lags,Xc,'color',[1 0 0],'marker','none','linewidth',2)
legend('Sample autocorrelation','Theoretical autocorrelation', ...
    'Location','NorthEast'), legend boxoff
hold off

サンプルの自己相関は、詳細な部分では一致しませんが、理論上の自己相関の一般的な形式を捕らえています。

この場合、フィルターによりラグが [-2,2] の部分にだけ有意な自己相関が生じていることは明白です。列の絶対値は、この範囲の外側ではすぐにゼロに減衰します。

周波数成分が影響を受けたことを確認するには、元の信号およびフィルター処理後の信号のパワー スペクトル密度のウェルチ推定をプロットします。

[pxx,wx] = pwelch(x);
[pyy,wy] = pwelch(y);
plot(wx/pi,20*log10(pxx),wy/pi,20*log10(pyy))
legend('Original sequence','Filtered sequence', ...
    'Location','SouthWest'), grid
xlabel 'Normalized Frequency (\times\pi rad/sample)'
ylabel 'Power/frequency (dB/rad/sample)'
title 'Welch Power Spectral Density Estimate'

ホワイト ノイズは移動平均フィルターによって "色付け" されています。

外部の Web サイトに移動

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