2013-06-26 148 views
2

我必須分析一個已經用QPSK調製的信號,使用matlab,我似乎無法得到正確的結果。頻率功率與信號功率

我擁有:以已知頻率採樣的複雜信號。

我想要的是:某個頻率的功率比。所以如果信號的形式是a*cos(wt)+a*cos(2wt)那麼我應該得到0.5 for w0.5 for 2w

我不知道我的代碼問題在哪裏,但我得到的頻率功率比信號功率更高,如下圖所示(blue: signalPower,red: Fm)。

Signal power vs Frequency Power

這裏是我的代碼:

% Nsym : Number of symbol used for the detection 
% Ns : Number ofsamples per symbol 
% IQrx : Complex signal to analyse 
% Fmod : Modulation frequency 

Nt = Nsym*Ns; 
signalPower = zeros(1, length(IQrx)); 
Fp = zeros(1, length(IQrx)); 
Fm = zeros(1, length(IQrx)); 
for ii = 1:length(IQrx) 
    for jj = 0:Nt-1 
     if ii-jj > 0 && ii-jj <= length(IQrx) 
      signalPower(ii) = signalPower(ii) + ... 
       abs(IQrx(ii-jj))^2; 
      Fp(ii) = Fp(ii) + ... 
       IQrx(ii-jj) * ... 
       exp(1i*2*pi*Fmod*(ii-jj)/obj.Fs); 
      Fm(ii) = Fm(ii) + ... 
       IQrx(ii-jj) * ... 
       exp(-1i*2*pi*Fmod*(ii-jj)/obj.Fs); 
     end 
    end 
    Fp(ii) = abs(Fp(ii))^2; 
    Fm(ii) = abs(Fm(ii))^2; 
end 

編輯:正如在評論中要求我用的公式是: 考慮到我在去關心的時間窗口。

signalPower =總和(信號(I)^ 2)

Fp的= ABS(總和(信號* EXP(1I * 2 * PI FMOD(ⅰ)/obj.Fs)))^ 2

Fp的= ABS(總和(信號* EXP(-1i * 2 * PI FMOD(ⅰ)/obj.Fs)))^ 2

+0

看起來像是將信號與接收信號的幅度平方進行卷積並且還將接收到的信號與時域中的狄拉克三角形進行卷積,並將每個迴路的幅度平方進行卷積。你可以參考你用來確定光譜功率的公式嗎? – macduff

+0

@macduff我參考了你建議的公式! – Leo

+0

這真的屬於dsp.stackexchange.com –

回答

0

在我看來,

signalPower(ii) = signalPower(ii) + abs(IQrx(ii-jj))^2; 

應該是更象:

signalPower(ii) = signalPower(ii) + abs(IQrx(ii-jj)); 

你可能想嘗試的東西有點簡單,對於像信號功率:

PWT = X'* X; %時域功率

其中x是您窗口化的時間序列值。 (靈感來自this link)。