16QAM调制解调仿真目录

  • 一、仿真要求
  • 二、仿真方案详细设计
  • 三、仿真结果及结论
  • 四、仿真代码

一、仿真要求

1.用基带等效的方式仿真16-QAM在AWGN信道下的误码率和误比特率性能,并与理论值相比较;
2.高阶64QAM与低阶16QAM的性能比较。

二、仿真方案详细设计





三、仿真结果及结论

  • 仿真结果
    16QAM的星座点图

    64QAM的星座点图

    16QAM加噪声后的星座点图

    64QAM加噪声后的星座点图

    16-QAM载波调制信号在AWGN信道下的误比特率性能比较
  • 结论:由图可知,16QAM的误符号率和仿真理论误符号率完全拟合,16QAM的误比特率在性躁比越来越高情况下拟合情况和仿真理论误比特率越来越接近。

16和64QAM调制信号在AWGN信道的性能比较

  • 结论:由图可知,在同一个性躁比条件下,64QAM比16QAM的误码率更高,因此可以得出普遍的结论,阶数越高,误码率越高。

四、仿真代码

clc;clear all;close all;
nsymbol=100000;%表示一共有多少个符号,这里定义100000个符号
M=16;%M表示QAM调制的阶数,表示16QAM,16QAM采用格雷映射(所有星座点图均采用格雷映射)
N=64;
graycode=[0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10];%格雷映射编码规则
graycode1=[0 1 3 2 6 7 5 4 8 9 11 10 14 15 13 12 24 25 27 26 30 31 29 28 16 17 19 18 22 23 21 20 48 49 51 50 54 55 53 52 56 57 59 58 62 63 61 60 40 41 43 42 46 47 45 44 32 33 35 34 38 39 37 36];%格雷映射十进制的表示
EsN0=5:20;%信噪比范围
snr1=10.^(EsN0/10);%将db转换为线性值
msg=randi([0,M-1],1,nsymbol);%0到15之间随机产生一个数,数的个数为:1乘nsymbol,得到原始数据
msg1=graycode(msg+1);%对数据进行格雷映射
msgmod=qammod(msg1,M);%调用matlab中的qammod函数,16QAM调制方式的调用(输入0到15的数,M表示QAM调制的阶数)得到调制后符号scatterplot(msgmod);%调用matlab中的scatterplot函数,画星座点图
spow=norm(msgmod).^2/nsymbol;%取a+bj的模.^2得到功率除整个符号得到每个符号的平均功率
%64QAM
nsg=randi([0,N-1],1,nsymbol);
nsg1=graycode1(nsg+1);
nsgmod=qammod(nsg1,N);
scatterplot(nsgmod);%调用matlab中的scatterplot函数,画星座点图
spow1=norm(nsgmod).^2/nsymbol;for i=1:length(EsN0)sigma=sqrt(spow/(2*snr1(i)));%16QAM根据符号功率求出噪声的功率sigma1=sqrt(spow1/(2*snr1(i)));%64QAM根据符号功率求出噪声的功率rx=msgmod+sigma*(randn(1,length(msgmod))+1i*randn(1,length(msgmod)));%16QAM混入高斯加性白噪声rx1=nsgmod+sigma*(randn(1,length(nsgmod))+1i*randn(1,length(nsgmod)));%64QAM混入高斯加性白噪声y=qamdemod(rx,M);%16QAM的解调y1=qamdemod(rx1,N);%64QAM的解调decmsg=graycode(y+1);%16QAM接收端格雷逆映射,返回译码出来的信息,十进制decnsg=graycode1(y1+1);%64QAM接收端格雷逆映射[err1,ber(i)]=biterr(msg,decmsg,log2(M));%一个符号四个比特,比较发送端信号msg和解调信号decmsg转换为二进制,ber(i)错误的比特率[err2,ser(i)]=symerr(msg,decmsg);%16QAM求实际误码率[err1,ber1(i)]=biterr(nsg,decnsg,log2(N));[err2,ser1(i)]=symerr(nsg,decnsg);%64QAM求实际误码率
end
%16QAM
scatterplot(rx);%调用matlab中的scatterplot函数,画rx星座点图
p = 2*(1-1/sqrt(M))*qfunc(sqrt(3*snr1/(M-1)));
ser_theory=1-(1-p).^2;%16QAM理论误码率
ber_theory=1/log2(M)*ser_theory;%64QAM
scatterplot(rx1);
p1=2*(1-1/sqrt(N))*qfunc(sqrt(3*snr1/(N-1)));
ser1_theory=1-(1-p1).^2;%64QAM理论误码率
ber1_theory=1/log2(N)*ser1_theory;%得到误比特率%绘图
figure()
semilogy(EsN0,ber,"o", EsN0, ser, "*",EsN0, ser_theory, "-", EsN0, ber_theory, "-");
title("16-QAM载波调制信号在AWGN信道下的误比特率性能")
xlabel("EsN0");
ylabel("误比特率和误符号率");
legend("误比特率", "误符号率","理论误符号率","理论误比特率");
%阶数不同,16和64QAM调制信号在AWGN信道的性能比较
figure()
semilogy(EsN0,ser_theory,'o',EsN0,ser1_theory,'o');%ber ser比特仿真值 ser1理论误码率 ber1理论误比特率
title('16和64QAM调制信号在AWGN信道的性能比较');grid;
xlabel('Es/N0(dB)');%性躁比
ylabel('误码率');%误码率
legend('16QAM理论误码率','64QAM理论误码率');

16QAM调制解调仿真实验到这里基本就结束啦! ✨

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

  1. 16QAM调制解调系统误码率和星座图的matlab仿真

    目录 一.理论基础 二.核心程序 三.仿真结论 一.理论基础 16QAM全称是​正交幅度调制​,英文Quadrature Amplitude Modulation的缩略语简称,意思是正交幅度调制,是一 ...

  2. msk误码率 matlab仿真,GMSK调制解调的MATLAB仿真与误码率分析.pdf

    GMSK调制解调的MATLAB仿真与误码率分析 67 第34卷 第2期 <新疆师范大学学报>(自然科学版) Vol.34,No.2 2015年6月 Journal of Xinjiang ...

  3. ssb调制解调matlab仿真设计,单边带SSB调制解调的MATLAB仿真.doc

    单边带SSB调制解调的MATLAB仿真 预先设计的滤波器:LPF: HSSB: 1.调制程序function myfun()%采用滤波法产生SSB信号Fs=44100;%采样频率44100HZk1=i ...

  4. ssb调制解调matlab仿真设计,单边带SSB调制解调的MATLAB仿真

    单边带SSB调制解调的MATLAB仿真 预先设计的滤波器: LPF: HSSB: 1.调制程序 function myfun() %采用滤波法产生SSB信号 Fs=44100;%采样频率44100HZ ...

  5. dpsk调制matlab,2dpsk信号调制解调的matlab设计和仿真

    2dpsk信号调制解调的matlab设计和仿真 2DPSK调制与解调系统的仿真 摘 要 设计了差分编码移相键控(2DPSK) 调制解调系统的工作流程图,并利用 Matlab 软件对该系统的动态进行了模 ...

  6. qam已调信号matlab相干解调,16qam调制解调matlab

    (论文)题目 16QAM 的调制与解调 时间: 2012 年 12 月 19 日指导教师 主要研 究内容 基于 MatlabSimulink 的 16QAM 的调制与解调 研究方法 MatlabSim ...

  7. m基于MATLAB Simulink的16QAM调制解调系统仿真

    目录 1.算法概述 2.仿真效果预览 3.MATLAB程序 1.算法概述 16QAM全称正交幅度调制是英文Quadrature Amplitude Modulation的缩略语简称,意思是正交幅度调制 ...

  8. 【水声通信】使用Bellohop模型产生水声信道,采用相干检测的方法进行PSK、QAM调制解调【matlab代码】

    源码 https://blog.csdn.net/qq_44394952/article/details/124490764?spm=1001.2014.3001.5502 1.实验目的 (1)学习并 ...

  9. matlab 2ask解调程序,2ask调制解调系统matlab源程序.doc

    2ask调制解调系统matlab源程序.doc 2ASK 调制解调系统 MATLAB 源程序 %产生数字基带信号 figure( Name , 数字信号调制过程中波形及其频谱 , NumberTitl ...

最新文章

  1. 国产项目管理软件/敏捷开发工具
  2. python过去日期_利用python获取当前日期前后N天或N月日期的方法示例
  3. 百度AI实战营第二季:AI技术商业落地指南
  4. 实践作业4:Web测试实践(小组作业)每日任务记录3
  5. 自定义EL函数、自定义JSTL标签
  6. Deep Learning 【Nature review】
  7. 《Oracle高性能自动化运维》一一2.3 Library Cache
  8. 移动老总上厕所!!!让你爽歪歪!!
  9. Xcode 清除最近使用纪录
  10. Logstash filter 插件之 grok
  11. Linux 视频播放器
  12. 发那科机器人寄存器Ar_浅谈发那科机器人与TP参数之间的关系
  13. 8051RTX编程一例
  14. 头条限流是什么原因_头条号跨领域了,限流了,怎么补救!
  15. JIAR安装报错IRA Startup Failed
  16. 如何在VM16上安装虚拟机(win7)及联网
  17. 通过微博名查看id html,微博id在哪里查看?
  18. 我的理想计算机作文300字,我的理想作文300字(精选12篇)
  19. 【人才盘点九宫格】你还不来学一学人才九宫格,知道领导在做人才梯度结构盘点时把你划分为属于哪一类人才吗?
  20. VS2017序列号|Visual Studio 2017 激活码 序列号

热门文章

  1. 大数据爬虫基础(四)MAVEN的安装配置和使用(下)--JAVA简单爬虫
  2. 中国纺织业漂泊难定,如今向东南亚转移该担心还是惋惜?
  3. 自动化报表系统,帮你轻松搞定日报、周报、月报!
  4. 多层高速PCB设计学习笔记(五)四层板实战(下)之阻抗控制计算(SI9000)
  5. Linux系统vim命令总结
  6. 【UiPath2022+C#】UiPath控制流程概述
  7. 简单python项目实例-python实战项目
  8. Linux驱动-字符设备驱动
  9. HTTP 文件上传的基本原理
  10. C语言---队列(详解)---数据结构