MSK调制的频谱图和经过AWGN信道后的频谱图的仿真MATLAB代码
时间: 2024-05-04 17:19:07 浏览: 86
MSK调制matlab仿真
5星 · 资源好评率100%
以下是 MSK 调制信号的频谱图和经过 AWGN 信道后的频谱图的 MATLAB 仿真代码:
```matlab
%% MSK 调制信号的频谱图
% 设置参数
fc = 1000; % 载波频率
fm = 100; % 调制信号频率
fs = 10000; % 采样频率
T = 1/fs; % 采样时间间隔
N = 1000; % 采样点数
t = (0:N-1)*T; % 时间向量
% 生成调制信号
m = cos(2*pi*fm*t);
% MSK 调制
kf = 1/(2*T); % 调频系数
phi = pi/2; % 初始相位
for i=1:length(m)
if m(i) >= 0
f(i) = fc + kf*phi/(2*pi);
else
f(i) = fc - kf*phi/(2*pi);
end
phi = mod(phi + 2*pi*f(i)*T, 2*pi);
end
% 显示频谱图
figure;
[pxx, f] = pwelch(f, [], [], [], fs);
plot(f, 10*log10(pxx));
title('MSK 调制信号的频谱图');
xlabel('频率 / Hz');
ylabel('功率谱 / dB');
%% 经过 AWGN 信道后的频谱图
% 设置参数
SNR_dB = 10; % 信噪比(dB)
% 加入 AWGN
sigma = sqrt(1/(2*T*10^(SNR_dB/10))); % 噪声标准差
n = sigma*randn(size(f)); % 高斯白噪声
f_awgn = f + n; % 加噪声
% 显示频谱图
figure;
[pxx, f] = pwelch(f_awgn, [], [], [], fs);
plot(f, 10*log10(pxx));
title(['经过 AWGN 信道后的频谱图(SNR = ' num2str(SNR_dB) ' dB)']);
xlabel('频率 / Hz');
ylabel('功率谱 / dB');
```
运行代码后,将会分别显示 MSK 调制信号的频谱图和经过 AWGN 信道后的频谱图。
注意:代码中的 SNR_dB 参数可以调整信噪比大小,从而观察不同信噪比条件下的频谱图。
阅读全文