2

matlab を使用して QPSK で変調された信号を分析する必要がありますが、うまくいかないようです。

私が持っているもの:既知の周波数でサンプリングされた複雑な信号。

私が欲しいもの:特定の周波数の電力比。したがって、信号が次の形式の場合は、 anda*cos(wt)+a*cos(2wt)を取得する必要が0.5 for wあり0.5 for 2wます。

blue: signalPower私のコードのどこに問題があるのか​​ わかりませんが、以下のグラフ( 、 )でわかるように、信号電力よりも高い周波数電力が得られますred: Fm

信号電力と周波数電力

そして、ここに私のコードがあります:

% 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 = 合計 ( signal(i)^2 )

Fp = abs( sum( signal * exp(1i*2*pi Fmod (i)/obj.Fs) ) )^2

Fp = abs( sum( signal * exp(-1i*2*pi Fmod (i)/obj.Fs) ) )^2

4

1 に答える 1