一. QAM16 / QAM64 / QAM256调制与解调 原理:
原理内容见网络资源及相关课本。
二. 仿真链路:
信道环境:高斯白噪声信道
仿真参数:略
仿真平台:matlab
仿真链路:源比特+QAM16 / QAM64 / QAM256调制+AWGN+QAM16 / QAM64 / QAM256解调+BER
%****************************************************************
% 内容概述:QAM(N)调制与QAM(N)解调链路
% 仿真链路:源比特-->QAM调制-->高斯白噪声信道-->
% QAM解调-->BER
% 创 建 人:LEE GANG
% 创建时间:2019年 3月9日
% 参考文献:网络资料
% 版权声明:不可随意复制、不可随意传播。
%****************************************************************
clc;
clear all;
close all;
%系统参数设计------------------------------
SourceBitlen = 16*6*1000;%输入源比特长度
SNR = 6:2:18;%%信噪比序列
BerEbNo = zeros(1,length(SNR));
for nEN=1:length(SNR)
Err_counter = 0;
for nframe=1:20
%输入源比特序列基带信号-------------------------------
SourceBit = gensrcbit(SourceBitlen);
% QAM 8/16/64/256调制---------------------------------
MM = 16;
x = qammodLJ(SourceBit,MM);
%scatterplot(x)
%高斯白噪声信道----------------------
soft_in = awgnChannel(x,SNR(nEN));
% scatterplot(soft_in)
% QAM解调---------------------------
[hard_bit soft_bit] = qamdemodLJ(soft_in,MM);
%误码率-----------------------------
errs = symerr(hard_bit,SourceBit);
Err_counter = Err_counter + errs;
Ber = Err_counter/nframe/SourceBitlen;
%disp(['-----SNR=',num2str(SNR(nEN)),',Frame=',num2str(nframe),',Errorbit=',num2str(errs)']);
end
BerEbNo(nEN) = Ber;
fprintf('EcNo:%1.2fdB,误码率:%8.4e,\n',SNR(nEN),Ber);
end
semilogy(SNR,BerEbNo,'b-v');
grid on;
xlabel('Ec/No[dB]');
ylabel('Bit Error Rate');
title('QAM(16/8/64/256)性能仿真误码率曲线');
[ 相应MATLAB仿真代码,C语言代码。咨询qq:1279682290 ]