MATLAB AWGN信道 M-ary PSK 误码性能

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]);

你可能感兴趣的:(通信原理)