写一个绘制三条BER曲线MATLAB代码
时间: 2023-12-06 12:45:45 浏览: 79
MATLAB绘制B样条曲线代码
以下是一个绘制三条BER曲线的MATLAB代码示例:
```matlab
% 设定参数
SNR = -5:0.5:10; % 信噪比范围
M = [2, 4, 8]; % 调制阶数
BER = zeros(length(M), length(SNR)); % 初始化BER矩阵
% 计算BER值
for i = 1:length(M)
for j = 1:length(SNR)
% 生成随机数据
data = randi([0 M(i)-1], [1 10000]);
% 进行调制
modulated_data = qammod(data, M(i));
% 添加噪声
noisy_data = awgn(modulated_data, SNR(j));
% 进行解调
demodulated_data = qamdemod(noisy_data, M(i));
% 计算BER
[~, BER(i,j)] = biterr(data, demodulated_data);
end
end
% 绘制BER曲线
figure;
semilogy(SNR, BER(1,:), '-o');
hold on;
semilogy(SNR, BER(2,:), '-x');
semilogy(SNR, BER(3,:), '-s');
legend('QPSK', '16-QAM', '64-QAM');
xlabel('SNR (dB)');
ylabel('BER');
title('BER Performance of QAM Modulation');
```
该代码生成了三个不同调制阶数(QPSK,16-QAM和64-QAM)的BER曲线,并在同一张图中绘制。您可以根据需要更改参数来绘制不同的曲线。
阅读全文