请写出BPSK和QPSK调制在AWGN信道下的SNR-BER误码率性能评估的matlab代码
时间: 2023-03-08 14:02:18 浏览: 238
以下是matlab代码来评估BPSK和QPSK调制在AWGN信道下的SNR-BER误码率性能:N=10000; %设定总的比特数
SNR_dB = [-10:2:20]; %设定SNR范围
M = 2; %BPSK
for i = 1:length(SNR_dB)
SNR = 10^(SNR_dB(i)/10); %SNR转换为线性值
noise_var = 1/(2*SNR); %计算噪声方差
noise_std = sqrt(noise_var); %噪声标准差%产生BPSK数据流
data = randi([0 M-1],1,N); %随机产生0、1数据流
mod_data = pskmod(data,M); %BPSK调制%产生噪声
noise = noise_std*randn(1,N); %产生高斯噪声%加噪
rec_data = mod_data + noise; %接收端接收到的信号%接收端BPSK解调
demod_data = pskdemod(rec_data,M); %BPSK解调%计算误码率
[num(i),ratio(i)] = biterr(data,demod_data); %计算误码率
end%计算QPSK
M2 = 4;
for i = 1:length(SNR_dB)
SNR = 10^(SNR_dB(i)/10);
noise_var = 1/(2*SNR);
noise_std = sqrt(noise_var);%产生QPSK数据流
data2 = randi([0 M2-1],1,N);
mod_data2 = pskmod(data2,M2);%产生噪声
noise2 = noise_std*randn(1,N);%加噪
rec_data2 = mod_data2 + noise2;%接收端QPSK解调
demod_data2 = pskdemod(rec_data2,M2);%计算误码率
[num2(i),ratio2(i)] = biterr(data2,demod_data2);
end%绘制图形
figure
semilogy(SNR_dB,ratio,'b-*');
hold on
semilogy(SNR_dB,ratio2,'r-o');
xlabel('SNR(dB)');
ylabel('BER');
legend('BPSK','QPSK');
阅读全文