AWGN 信道 QPSK 调制误码性能分析的 MATLAB 仿真基本流程。
M 进制 PSK 调制解调
% M 进制 PSK 调制参数设置
M = 4; % PSK 进制数
N = 200000; % 仿真点数
A = M - 1; % PSK 调制数据的最大幅值
data = randi([0, A], N, 1); %产生随机信号
% M 进制 PSK 调制
modData = pskmod(data, M);
% M 进制 PSK 解调
rxData = pskdemod(rxSig, M);
AWGN 信道
% 信噪比为 SNR 的 AWGN信道,'measured'代表加入噪声前测量信号能量
rxSig = awgn(modData, SNR, 'measured');
误码率
% 统计误码比特数以及误码率
[err_bit, err_rate] = biterr(data, rxData);
完整代码
clear;
close all;
% M 进制 PSK 调制参数设置
M = 4; % PSK 进制数
N = 200000; % 仿真点数
A = M - 1; % PSK 调制数据的最大幅值
data = randi([0, A], N, 1); %产生随机信号
% 信噪比变化范围
SNR = 0:1:10;
% M 进制 PSK 调制
modData = pskmod(data, M);
% 在不同信噪比下进行仿真
for i = 1:length(SNR)
% AWGN信道,'measured'代表加入噪声前测量信号能量
rxSig = awgn(modData, SNR(i), 'measured');
% M 进制 PSK 解调
rxData = pskdemod(rxSig, M);
% 统计误码比特数以及误码率
[err_bit(i), err_rate(i)] = biterr(data, rxData);
end
% 绘制误比特率与信噪比曲线,纵轴为对数尺度
semilogy(SNR./log2(M) ,err_rate,'r*-');
title('QPSK 在 AWGN 信道下误比特率分析');
xlabel('Eb/N0(dB)');ylabel('BER');
axis([0 6 1e-4 1]);