2015-10-05 98 views
1

我不是在做信號處理。但在我的領域中,我將使用數據矩陣的譜密度。我在非常詳細的層面上感到非常困惑。如何計算數據使用矩陣的譜密度matlab

%matrix H is given. 
corr=xcorr2(H); %get the correlation 
spec=fft2(corr); % Wiener-Khinchin Theorem 

在matlab中,xcorr2會計算這個矩陣的相關函數。滯後將從-N+1N-1。所以如果矩陣H的尺寸是N by N,那麼尺寸corr將是2N-1 by 2N-1。對於離散數據,我應該使用corrcorr的一半?

另一個問題是我認爲維納欽欽定理基本上是用於連續函數的。我一直認爲Discretized FT是近似於Continuous FT,或者你可以說它是一個計算工具Continuous FT。如果你在功能'fft'中使用matlab編譯,你應該把最終結果除以\delta x

任何知道這個區域的靈魂都可以與我分享一些matlab代碼嗎?

回答

1

基本上,通過離散FT近似連續FT與通過有限和近似積分相同。

我們先討論一維情況,然後討論二維情況。我們來看看Wiener-Kinchin定理(例如here)。

它指出:

「對於離散時間情況下,具有離散值x [n]的,該函數的功率譜密度是:

其中

是x [n]的自相關函數。「

1)可以已經是總和是從-infty採取+ infty看到S(F)

2)現在考慮了Matlab FFT的計算 - 可以看見(命令「修改FFT」在Matlab中),它被定義爲:

X(k) =  sum_{n=1}^N x(n)*exp(-j*2*pi*(k-1)*(n-1)/N), 1 <= k <= N. 

這是你想要以計算頻率f的功率譜密度做什麼。

請注意,對於連續函數,S(f)將是一個連續函數。對於離散函數,S(f)將是離散的。

現在我們知道了所有這一切,它可以很容易地擴展到2D情況。的確,fft2的結構與2D情況下Wiener-Kinchin定理的右側結構相匹配。

雖然,有必要將結果除以NxM,其中N是x中採樣點的數量,M是y中採樣點的數量。