1. 程式人生 > >譜分析:互譜密度

譜分析:互譜密度

cpsd 使用welch方法計算互功率譜密度

1Pxy=cpsd(X,Y)返回使用welch方法計算的兩個離散時間序列訊號的互譜功率密度Pxy,
預設引數中,X和Y會被分成八段,每段重複50%,每段通過漢明窗加窗,同時計算八個加權的譜密度並做平均。可以使用“Help pwelch”和“Help cpsd” 來檢視完整的細節
X和Y可以是向量或者二維的矩陣。如果它們都是矩陣,他們必須有相同的尺寸。CPSD會按照列的維度計算,即Pxy(:,n)=cpsd(X(:,n),Y(:,n)).如果其中一個是矩陣另一個是向量的話,這個向量會被轉變成一個列向量,並且進行擴充套件。因此,輸入都必須有相同數目的列。
Pxy是單位頻率能量的譜分佈。對於實訊號,cpsd反饋的是單邊的互譜密度;對於複數訊號,它返回的是雙邊的互譜密度。注意這裡單邊的互譜密度包含了輸入訊號的全部能量。
Pxy=CPSD(X,Y,window),當window是一個向量時,將x和y的每一列分成由Pxy = cpsd(X,Y,WINDOW), 每一塊兒的向量長度和視窗數相同的不重合的區域。如果視窗是一個整數,那麼每一列會被分割成和window數一樣長的區段,每一個區段都會使用漢明窗進行加窗。如果視窗引數是空的,則會將x和y分割成八個區域,並使用漢明窗進行加窗。
Pxy=cpsd(x,y,wiodow,noverlap)使用noverlap引數 控制每個區段之間重複的樣本數。
Noverlap 必須是一個小於視窗長度的整數,如果視窗數是一個向量的話。如果是一個標量的話,則必須比視窗小。預設的Noverlap等於50%。
【Pxy,W】=cpsd(x,y,window,noverlap,nfft)確定了用了計算CPSD的FFT的點數。對於每一個實訊號,Pxy的長度為(NFFT/2+1),如果NFFT是偶數。如果NFFT是奇數則長度為(NFFT+1)/2.對於覆信號,Pxy長度始終為NFFT。如果NFFT被設定為空,則NFFT點數或者是256或者是比x和y大的最小的2的冪。 如果NFFT比每段的資料都長,則會對資料段進行補零操作。如果資料段比NFFT點數大,則會使用wrapped使得資料的長度等於NFFT。這個產生了正確的FFT點數,在NFFT比區段長度短時。W是記載了歸一化後psd計算頻率點的向量。W是單位角度每樣本數。對於實訊號,W擴張至【0,pi】這個區間當NFFT點數是偶數的時候,【0,pi)當NFFT是奇數的時候。
對於複數訊號,w擴張至【0,2pi)這個區間。
[Pxy,W]=cpsd(X,Y,Window,Noverlap,W)計算在向量w中的標準角度頻率存在的雙邊互譜密度,w必須至少有兩個元素。
[Pxy,F]=cpsd(x,Y,window,noverlap,nfft,Fs)返回作為實際頻率函式的互譜密度。Fs是用HZ表示的取樣頻率。如果Hz數沒寫的話,則預設是1HZ.
F是儲存Pxy計算點的頻率向量(單位為Hz)。對於實訊號,F會擴張到間隔[0,Fs/2]當NFFT
是偶數的時候,擴張到[0,Fs/2),當NFFT是奇數的時候。對於複數訊號,F
則擴張至[0,Fs).
[Pxy,F]=cpsd(X,Y,window,noverlap,F,Fs)計算儲存在頻率向量F中存放的點的互譜密度。F必須使用至少兩個元素來表示,單位是HZ
[…]=cpsd(…,Freqrange)返回在特定頻率範圍計算的互譜密度,使用的引數FREQrange限定的範圍。
‘onesided’-返回輸入的實訊號x和y的單邊的互譜密度。如果NFFT是偶數,Pxy的長度為NFFT/2+,計算的間隔為[0,pi].如果NFFT是奇數,Pxy的長度則為(NFFT+1)/2和同時在頻率範圍[0,pi]計算,當Fs被設定時,間隔為[0,fs/2]或者[0,Fs/2).
‘twosided’-返回雙邊的互譜密度訊號,對於實或者複數的輸入訊號x和y。Pxy有長度NFFT同時在頻率範圍[0,2

pi)內計算。當Fs被設定時,間隔為[0,Fs).
‘centered’-返回中心化的雙邊互譜密度對於實或者復的輸入訊號x和y。Pxy長度為NFFT同時在間隔(-pi,pi]進行計算。
如果不設定輸出引數,則畫出互譜密度(單位是分貝/每頻率)
例子

   Fs = 1000;   t = 0:1/Fs:.296;
       x = cos(2*pi*t*200)+randn(size(t));  % A cosine of 200Hz plus noise
       y = cos(2*pi*t*100)+randn(size(t));  % A cosine of 100Hz plus noise
       cpsd(x,y,[],[],[],Fs,'twosided');    % Uses default window, overlap & NFFT.