2013-06-26 113 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)。