用matlab绘制相干和非相干 FSK 信号的 PSD (载频 Fc=400kHz ,调制指数 h=1),使用pwelch函数
时间: 2024-02-01 08:13:09 浏览: 147
好的,我们可以按照以下步骤绘制相干和非相干 FSK 信号的 PSD:
1. 生成相干 FSK 信号和非相干 FSK 信号。
2. 使用 pwelch 函数计算 PSD。
3. 绘制 PSD 图形。
下面是示例代码:
```matlab
% 设置参数
fs = 2e6; % 采样频率
fc = 400e3; % 载频频率
h = 1; % 调制指数
nfft = 1024; % FFT 点数
t = 0:1/fs:1; % 时间向量
% 生成相干 FSK 信号
f1 = fc - h*fc;
f2 = fc + h*fc;
x_coh = cos(2*pi*f1*t).*(rand(size(t))>0.5) + cos(2*pi*f2*t).*(rand(size(t))<=0.5);
% 生成非相干 FSK 信号
x_noncoh = zeros(size(t));
for i=1:length(t)
if (rand() > 0.5)
x_noncoh(i) = cos(2*pi*f1*t(i));
else
x_noncoh(i) = cos(2*pi*f2*t(i));
end
end
% 计算 PSD
[pxx_coh,f_coh] = pwelch(x_coh,hamming(nfft),nfft/2,nfft,fs);
[pxx_noncoh,f_noncoh] = pwelch(x_noncoh,hamming(nfft),nfft/2,nfft,fs);
% 绘制 PSD 图形
figure;
plot(f_coh,10*log10(pxx_coh),'r','linewidth',2);
hold on;
plot(f_noncoh,10*log10(pxx_noncoh),'b','linewidth',2);
grid on;
xlabel('Frequency (Hz)');
ylabel('Power/Frequency (dB/Hz)');
legend('Coherent FSK','Non-coherent FSK');
title('PSD of Coherent and Non-coherent FSK Signals');
```
运行以上代码,即可得到相干和非相干 FSK 信号的 PSD 图形。
阅读全文