ドキュメンテーション

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

cpsd

クロス パワー スペクトル密度

構文

Pxy = cpsd(x,y)
Pxy = cpsd(x,y,window)
Pxy = cpsd(x,y,window,noverlap)
[Pxy,W] = cpsd(x,y,window,noverlap,nfft)
[Pxy,F] = cpsd(x,y,window,noverlap,nfft,fs)
[...] = cpsd(...,'twosided')
cpsd(...)

説明

Pxy = cpsd(x,y) では、スペクトル推定の平均修正ピリオドグラム法であるウェルチ法を使用して、離散時間信号 xy のクロス パワー スペクトル密度 Pxy が推定されます。クロス パワー スペクトル密度は、単位周波数あたりのパワーの分布で、以下のように定義されます。

Pxy(ω)=m=Rxy(m)ejωm.

相互相関列は、以下のように定義されます。

Rxy(m)=E{xn+myn}=E{xnynm},

ここで、xn と yn は、ともに定常的なランダム過程<n<であり、E {· } が予測される演算子です。

x および y が実数の場合、cpsd では片側 CPSD が返され、x または y が複素数の場合、両側 CPSD が返されます。

cpsd では、以下の既定値が使用されます。

パラメーター

説明

既定値

nfft

パワー スペクトル密度 (PSD) が推定される周波数を決定する FFT 長。

x および y が実数の場合の Pxy の長さは、nfft が偶数の場合は (nfft/2+1)、nfft が奇数の場合は (nfft+1)/2 です。x または y が複素数の場合、Pxy の長さは nfft になります。

nfft が信号長よりも長い場合、データにゼロが付加されます。nfft が信号長よりも短い場合は、長さが nfft と等しくなるようにセグメントが改行されます。

最大 256、あるいは x または y の各セクションの長さよりも大きい最小の 2 のべき乗

fs

サンプリング周波数

1

window

各セクションに使用するウィンドウ関数とサンプルの数

x および y の 8 等分のセクションを得る長さの周期ハミング ウィンドウ。

noverlap

セクションでオーバーラップするサンプル数

50% のオーバーラップを得る値

    メモ:   x または y 以外の任意の入力引数の既定値を指定するために、空行列 [] を使用できます。たとえば Pxy = cpsd(x,y,[],[],128) では、ハミング ウィンドウ、50% のオーバーラップを得る既定値の noverlap、および指定した 128 の nfft を使用します。

Pxy = cpsd(x,y,window) では、使用するウィンドウ関数を指定し、x および y を指定されたウィンドウ長のオーバーラップする区分に分割し、指定されたウィンドウを各区分に適用します。window にスカラーを提供した場合、Pxy ではこの値を長さとするハミング ウィンドウが使用されます。ベクトル x およびベクトル y は、この長さをもつ 8 つの均等な区分に分割されます。信号が 50% のオーバーラップで均等に区分できない場合は、信号の最後が切り取られます。

Pxy = cpsd(x,y,window,noverlap) では、noverlap サンプルは x のセクションをオーバーラップします。noverlapwindow の長さより小さい整数でなければなりません。

[Pxy,W] = cpsd(x,y,window,noverlap,nfft) では、指定した FFT 長 nfft を使用して CPSD が推定されます。また、CPSD が推定される位置での、正規化された周波数 (ラジアン/サンプル単位) のベクトル W が返されます。実信号に対する W の範囲は、nfft が偶数の場合は [0, π]、nfft が奇数の場合は [0, pi) です。複素数信号に対しては、W の範囲は [0, 2π) です。

[Pxy,F] = cpsd(x,y,window,noverlap,nfft,fs) では、Pxy が周波数の関数として返され、CPSD の推定が行われる周波数のベクトル F が返されます。fs は、Hz 単位で表されるサンプリング周波数です。実信号に対する F の範囲は、nfft が偶数の場合は [0, fs/2]、nfft が奇数の場合は [0, fs/2) です。複素数信号に対しては、F の範囲は [0, fs) です。

[...] = cpsd(...,'twosided') では、実数信号 xy の両側 CPSD が返されます。生成される Pxy の長さは nfft で、fs を指定しない場合その範囲は [0, 2π) です。fs を指定した場合、範囲は [0, fs) になります。1 つの実信号に対し 'onesided' を入力すると、既定の結果が生成されます。文字列 'onesided' または 'twosided' は、noverlap パラメーターの後ろの任意の場所に配置できます。

cpsd(...) は、現在の Figure ウィンドウに CPSD と周波数をプロットします。

すべて展開する

カラード ノイズ信号の CPSD

2 つのカラード ノイズ信号を生成し、その CPSD をプロットします。長さ 1024 の FFT と、500 の点からなるオーバーラップのない三角ウィンドウを指定します。

rng default
h = fir1(30,0.2,rectwin(31));
h1 = ones(1,10)/sqrt(10);
r = randn(16384,1);
x = filter(h1,1,r);
y = filter(h,1,x);
cpsd(x,y,triang(500),250,1024)

詳細

すべて展開する

アルゴリズム

cpsd では、ウェルチの平均ピリオドグラム法が使用されます。以下の参考文献の一覧を参照してください。

参考文献

[1] Rabiner, Lawrence R., and B. Gold. Theory and Application of Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1975, pp. 414–419.

[2] Welch, Peter D. “The Use of the Fast Fourier Transform for the Estimation of Power Spectra: A Method Based on Time Averaging Over Short, Modified Periodograms.” IEEE® Transactions on Audio and Electroacoustics, Vol. AU-15, June 1967, pp. 70–73.

[3] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999.

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