% File name:16QAM.m

clear all;

clc;

%/**************产生信源***************/

N=10000;

data=randint(1,4*N);

data_re=zeros(4,N);

Eav=10;

data_re=reshape(data,4,N);

%/**************符号映射***************/

% I_data=zeros(1,2*N);

% Q_data=zeros(1,2*N);

% I_data(1,:)=data(1:2:end);

% Q_data(1,:)=data(2:2:end);

data_mod=zeros(2,N);

for k=1:N

if (data_re(:,k)==[0 0 0 0]')

data_mod(:,k)=[-1 -1]';

elseif (data_re(:,k)==[0 0 0 1]')

data_mod(:,k)=[-1 -3]';

elseif (data_re(:,k)==[0 0 1 0]')

data_mod(:,k)=[-1 1]';

elseif (data_re(:,k)==[0 0 1 1]')

data_mod(:,k)=[-1 3]';

elseif (data_re(:,k)==[0 1 0 0]')

data_mod(:,k)=[-3 -1]';

elseif (data_re(:,k)==[0 1 0 1]')

data_mod(:,k)=[-3 -3]';

elseif (data_re(:,k)==[0 1 1 0]')

data_mod(:,k)=[-3 1]';

elseif (data_re(:,k)==[0 1 1 1]')

data_mod(:,k)=[-3 3]';

elseif (data_re(:,k)==[1 0 0 0]')

data_mod(:,k)=[1 -1]';

elseif (data_re(:,k)==[1 0 0 1]')

data_mod(:,k)=[1 -3]';

elseif (data_re(:,k)==[1 0 1 0]')

data_mod(:,k)=[1 1]';

elseif (data_re(:,k)==[1 0 1 1]')

data_mod(:,k)=[1 3]';

elseif (data_re(:,k)==[1 1 1 1]')

data_mod(:,k)=[3 3]';

elseif (data_re(:,k)==[1 1 1 0]')

data_mod(:,k)=[3 1]';

elseif (data_re(:,k)==[1 1 0 1]')

data_mod(:,k)=[3 -3]';

else

data_mod(:,k)=[3 -1]';

end

end

%/**************叠加噪声***************/

snr_in_dB=0:14;

snr=10.^(snr_in_dB/10);

h=waitbar(0,'Please wait for a moment...');

for l=1:length(snr_in_dB)

waitbar(l/length(snr_in_dB));

error_bit_num=0;

error_sym_num=0;

sigma=sqrt(Eav/(8*snr(l)));

I_noise=sigma*randn(1,N);

Q_noise=sigma*randn(1,N);

noise=[I_noise; Q_noise];

%     noise=[zeros(1,N); zeros(1,N)];

%     data_noise=awgn(data_mod,snr_in_dB,1);

data_noise=data_mod+noise;

%/**************接收判决***************/

for k=1:N

if (data_noise(1,k)>2 && data_noise(2,k)>2)

data_receive(:,k)=[1 1 1 1]';

elseif (data_noise(1,k)>2 && data_noise(2,k)<2 && data_noise(2,k)>0)

data_receive(:,k)=[1 1 1 0]';

elseif (data_noise(1,k)>2 && data_noise(2,k)>-2 && data_noise(2,k)<0)

data_receive(:,k)=[1 1 0 0]';

elseif (data_noise(1,k)>2 && data_noise(2,k)<-2)

data_receive(:,k)=[1 1 0 1]';

elseif (data_noise(1,k)>0 && data_noise(1,k)<2 && data_noise(2,k)>2)

data_receive(:,k)=[1 0 1 1]';

elseif (data_noise(1,k)>0 && data_noise(1,k)<2 && data_noise(2,k)>0 && data_noise(2,k)<2)

data_receive(:,k)=[1 0 1 0]';

elseif (data_noise(1,k)>0 && data_noise(1,k)<2 && data_noise(2,k)>-2 && data_noise(2,k)<0)

data_receive(:,k)=[1 0 0 0]';

elseif (data_noise(1,k)>0 && data_noise(1,k)<2 && data_noise(2,k)<-2)

data_receive(:,k)=[1 0 0 1]';

elseif (data_noise(1,k)>-2 && data_noise(1,k)<0 && data_noise(2,k)>2)

data_receive(:,k)=[0 0 1 1]';

elseif (data_noise(1,k)>-2 && data_noise(1,k)<0 && data_noise(2,k)>0 && data_noise(2,k)<2)

data_receive(:,k)=[0 0 1 0]';

elseif (data_noise(1,k)>-2 && data_noise(1,k)<0 && data_noise(2,k)>-2 && data_noise(2,k)<0)

data_receive(:,k)=[0 0 0 0]';

elseif (data_noise(1,k)>-2 && data_noise(1,k)<0 && data_noise(2,k)<-2)

data_receive(:,k)=[0 0 0 1]';

elseif (data_noise(1,k)<-2 && data_noise(2,k)>2)

data_receive(:,k)=[0 1 1 1]';

elseif (data_noise(1,k)<-2 && data_noise(2,k)>0 && data_noise(2,k)<2)

data_receive(:,k)=[0 1 1 0]';

elseif (data_noise(1,k)<-2 && data_noise(2,k)>-2 && data_noise(2,k)<0)

data_receive(:,k)=[0 1 0 0]';

else

data_receive(:,k)=[0 1 0 1]';

end

end

%/**************统计错误符号***************/

for p=1:N

if (data_receive(1,p)~=data_re(1,p) || data_receive(2,p)~=data_re(2,p) || data_receive(3,p)~=data_re(3,p) || data_receive(4,p)~=data_re(4,p))

error_sym_num=error_sym_num+1;

end

end

ser(l)=error_sym_num/N;

%/**************统计错误比特***************/

data_receive_re=reshape(data_receive,1,4*N);

error_bit_num=sum(abs(data_receive_re-data));

ber(l)=error_bit_num/(4*N);

end

close(h);

semilogy(snr_in_dB,ber,'*-');

grid on;

hold on;

semilogy(snr_in_dB,ser,'ro-');

legend('误比特率','误符号率');

xlabel('SNR(dB)');

ylabel('BER and SER');

title('16QAM 性能曲线');

基于matlab的16QAM调制解调仿真相关推荐

  1. matlab实现ofdm调制解调,基于MATLAB的OFDM调制解调仿真

    基于MATLAB的OFDM调制解调仿真 题目:基于 MATLAB的 OFDM调制解调仿真2009年 6 月 13 日目 录摘要 .IIAbstract IV第 1章 正交频分复用的来源 - 1 -1. ...

  2. 16QAM调制解调仿真(matlab,详细介绍仿真方案的设计、结果及结论、完整代码及注释)

    16QAM调制解调仿真目录 一.仿真要求 二.仿真方案详细设计 三.仿真结果及结论 四.仿真代码 一.仿真要求 1.用基带等效的方式仿真16-QAM在AWGN信道下的误码率和误比特率性能,并与理论值相 ...

  3. 基于matlab的16qam系统,基于MATLAB的16QAM通信系统的仿真精选.doc

    基于MATLAB的16QAM通信系统的仿真精选 基于MATLAB的16QAM通信系统的仿真 [摘要]随着现代通信技术的发展,特别是移动通信技术高速发展,频带利用率问题越来越被人们关注.在频谱资源非常有 ...

  4. 基于锁相环的调制解调仿真实现

    基于锁相环的调制解调仿真实现 论文+代码+实验结果下载地址:下载地址 摘要 随着现代集成电路技术的发展,锁相环已经成为集成电路设计中非常重要的一个部分,所以对锁相环的研究具有积极的现实意义.锁相环电路 ...

  5. 脉位调制解调 matlab,基于matlab的am调制解调

    基于matlab的am调制解调 基于 Matlab 的 AM 调制解调一.AM 的调制原理AM 是指对信号进行幅度调制 [2].一般做法是先在原信号上叠加一个直流信号,以保证信号 , 然后乘上一个高频 ...

  6. am解调matlab程序,基于Matlab的AM调制解调.doc

    学号20100602050101 密级 公 开 本科毕业论文 基于Matlab的AM调制解调 及抗噪性能分析 学 院 名 称: 专 业 名 称: 学 生 姓 名: 指 导 教 师: 讲师 二〇一四年五 ...

  7. MATLAB BPSK通信系统调制解调仿真原理及代码(二)

    此仿真是瑞丽衰落信道与高斯信道的仿真对比,高斯信道的原理及仿真代码前文已有讲述. 高斯信道下的原理及代码请见 MATLAB BPSK通信系统调制解调仿真原理及代码(一)_惜洛-Jankin的博客-CS ...

  8. 通信算法之十一:QPSK/DQPSK/OQPSK/BPSK/DBPSK/16QAM调制解调仿真链路

    一. QPSK 正交相移键控 (Quadrature Phase Shift Keying)简称"QPSK",是一种数字调制方式.它分为绝对相移和相对相移两种.由于绝对相移方式存在 ...

  9. 基于Matlab的DSB调制解调,课程设计(论文)-基于MATLAB的DSB调制与解调分析.doc

    目 录 前言2 1 DSB调制与解调原理3 1.1DSB调制原理3 1.2DSB解调原理与抗噪性能5 2 DSB调制解调分析的MATLAB实现7 2.1正弦波调制7 2.1.1调制信号幅度=0.8×载 ...

  10. 基于MATLAB的自适应调制解调通信系统的误码率仿真,对比BPSK,QPSK,16QAM,64QAM

    目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB核心程序 .......... ...

最新文章

  1. 机械转电子工程嵌入式方向靠谱吗?怎么上手学习?
  2. 【 MATLAB 】fliplr 函数介绍(从左到右翻转阵列)
  3. mysql中有哪些数值型函数_mysql数值型函数汇总
  4. 【SSH网上商城项目实战05】完成数据库的级联查询和分页
  5. AspectCore动态代理中的拦截器详解(一)
  6. 比较OpenDDR和WURFL
  7. eclipse mat 分析dump文件,打开文件报错,out of memeory
  8. 继续畅通工程(HDU-1879 )
  9. ICPC程序设计题解书籍系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
  10. Unity使用TextMeshPro显示字体
  11. qpsk频谱图matlab,QPSK调制得出的调制信号频谱波形多了一个点频信号
  12. 应聘阿里的前车之鉴:从被回绝的系列原因出发,解读应聘阿里注意事项
  13. A Question of Ingestion(Dp)
  14. [不变初心数(15分] 用数组存储不变的数最后对照即可
  15. 华为mate40pro和华为mate30pro的区别
  16. 十分钟实现鼠标悬停效果,CSS3悬停效果
  17. Mac OS X 系统更新升级包下载后的存储位置
  18. MagicaVoxel 0.99.1 使用说明
  19. 力扣—1818.绝对差值和
  20. EV SSL证书是什么意思?

热门文章

  1. PropertyUtils与BeanUtils区别
  2. latex附录中放python代码_LaTeX 里「添加程序代码」的完美解决方案
  3. 奇迹1.03H服务端开服架设文件Data文件详解
  4. 计算机如何恢复记事本,如何使用电脑桌面便签恢复误删除了的记事本数据内容?...
  5. 在Ubuntu上使用Netdata设置实时性能监控
  6. 如何正确的寻找电影资源
  7. android studio 融云SDK集成
  8. 网友发给我一个游戏钓鱼网站,我用python渗透了该网站所有信息!
  9. C语言回溯算法求幂集,回溯法与树的遍历 - 求幂集
  10. jmeter下载安装教程