用matlab绘制两幅BER图,分别为有噪声和无噪声时,bits_option三种情况的BER图
时间: 2024-03-10 07:45:58 浏览: 110
这里提供一个绘制AWGN信道下的BPSK调制的BER曲线的示例代码,其中bits_option有三种取值:1000、10000、100000。你可以根据这个代码编写自己的程序来绘制有噪声和无噪声时的BER图。
```matlab
SNR_dB = 0:1:10; % 信噪比范围
bits_option = [1000,10000,100000]; % 三种不同的数据位数
for j = 1:length(bits_option)
N = bits_option(j); % 当前数据位数
err = zeros(1,length(SNR_dB)); % 初始化误码率数组
for i = 1:length(SNR_dB)
SNR = 10^(SNR_dB(i)/10); % 将信噪比从dB转换为线性值
noise_std = sqrt(1/SNR); % 计算噪声标准差
tx_bits = randi([0,1],1,N); % 生成随机的发送比特
tx_symbols = 2*tx_bits-1; % BPSK调制
rx_symbols = tx_symbols + noise_std*randn(1,N); % 加上高斯白噪声
rx_bits = (rx_symbols > 0); % 二元判决
err(i) = sum(rx_bits ~= tx_bits)/N; % 计算误码率
end
semilogy(SNR_dB, err, 'LineWidth', 2, 'DisplayName', ['Bits = ', num2str(N)]); % 绘制误码率曲线
hold on;
end
xlabel('SNR (dB)');
ylabel('Bit Error Rate');
title('BPSK Modulation in AWGN Channel');
legend('show');
grid on;
```
这段代码会绘制出三条BER曲线,分别对应bits_option为1000、10000、100000时的情况。你可以根据自己的需要调整SNR范围和步长,以及其他参数。
阅读全文