频率检测

信息处理 matlab 频率 调制 功率谱密度 qpsk
2022-02-03 22:29:03

是)我有的:

Fs由 QPSK 调制Fmod和一些加性高斯白噪声组成的采样数字信号。

我想要的是:

modPower/signalPower

背后的想法是我想检测通道上的 Fmod 是否有通信,或者是否只有噪音。

我做什么:

在观察窗口上n我计算:

signalPower=i=1ns(i)2
modPowerCos=i=1ns(i)cos(2πFmodi/Fs)
modPowerSin=i=1ns(i)sin(2πFmodi/Fs)
modPower=modPowerCos2+modPowerSin2
ratio=modPower/signalPower

我的代码:

% Ns = Number of samples per symbol
% Nsyn = Number of symbols of the window
% Nt = Length of the window
% Fmod = Modulation Frequency
% Fs = Sampling Frequency
Nt = Nsym*Ns;
signalPower = zeros(1, length(obj.signal));     % Signal Powe
modPowerCos = zeros(1, length(obj.signal));     % Fmod cos correlation
modPowerSin = zeros(1, length(obj.signal));     % Fmod sin correlation
for ii = obj.Ns:length(obj.signal)
    for jj = 0:Nt-1
        if ii-jj > 0 && ii-jj <= length(obj.IQrx)
            signalPower(ii) = signalPower(ii) + ...
                obj.signal(ii-jj)^2;
            modPowerCos(ii) = modPowerCos(ii) + ...
                obj.signal(ii-jj) * ...
                cos(2*pi*Fmod*(ii-jj)/Fs);
            modPowerSin(ii) = modPowerSin(ii) + ...
                obj.signal(ii-jj) * ...
                sin(2*pi*Fmod*(ii-jj)/Fs);
        end
    end
    modPowerCos(ii) = abs(modPowerCos(ii));
    modPowerSin(ii) = abs(modPowerSin(ii));
end

我的问题:

我发现一个比率高于1,我认为它来自错误的公式,但我不知道是哪一个。

例子:

在下图中,蓝色是计算的信号功率signalPower,而洋红色是计算的 Fmod 功率modPowerCos + modPowerSin你可以看到它modPower高于signalPower,这让我很烦恼。

Fmod 功率与信号功率

1个回答

你的计算能力方法有问题。如果将信号功率计算为

Ps=i=1nsi2

然后数量

(i=1nsicos(2πifm/fs))2 and (i=1nsisin(2πifm/fs))2

不能以相关(即使在您的程序中您计算的是幅度而不是问题中显示的平方)。Ps

我认为你试图做的是解调 QPSK 信号并测量解调信号的功率。但是,您执行此操作的方式存在两个问题。首先,您必须通过取平方和而不是平方和来计算幂。其次,需要对正余弦相乘后的信号进行低通滤波,因为正余弦相乘不仅将频谱下移到直流,而且调制频率也达到了两倍,你需要去掉后半部分。

到目前为止,我所说的只是对我认为您正在尝试做的事情以及为什么它不起作用的解释。实现相同的更简单的方法是将具有中心频率的带通滤波器应用于信号,测量输出功率,并将其与总信号功率相关联。fmPs