Matlab 您所在的位置:网站首页 方位角仰角画星座图怎么画 Matlab

Matlab

2023-07-29 18:45| 来源: 网络整理| 查看: 265

本博客环境为Matlab2018 ,软件版本不同可能会有些出入,需要稍作修改。

16QAM调制与解调 仿真要求 用基带等效的方式仿真16-QAM在AWGN信道下的误码率和误比特率性能,并与理论值相比较。

代码如下:

clear all;clc; nsymbol= 100000;%一共有十万个符号 M=16;%阶数,表示16QAM graycode=[0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10];%格雷映射,十进制表示 EsN0=5:20;%符号比,单位db snr1=10.^(EsN0/10);%将db转为非线性的方式 msg=randi([0,15],1,nsymbol);%随机产生0-15的符号,乘nsymbol得到原始数据 msg1=graycode(msg+1);%格雷映射 msgmod=qammod(msg1,M);%调用qammod函数,得到调制后的符号 scatterplot(msgmod);%画出星座点图 spow=norm(msgmod).^2/nsymbol;%a+bj取模的平方,即功率;功率除以整个符号得到平均功率 for i= 1:length(EsN0) sigma=sqrt(spow/(2*snr1(i))); rx=msgmod+sigma*(randn(1,length(msgmod))+1i*randn(1,length(msgmod))); %星座点图乘以随机长度高斯白噪声 y=qamdemod(rx,M);%转为对应的点 decmsg=graycode(y+1);%格雷逆映射 [err1 ,ber(i)]=biterr(msg,decmsg,log2(M)); [err2,ser(i)]=symerr(msg,decmsg);%比较符号误差 end p4=2*(1-1/sqrt(M))*qfunc(sqrt(3*snr1/(M-1)));%误码率 ser1=1-(1-p4).^2; ber1=1/log2(M)*ser1;%误比特率 figure() %ber仿真值,ser比特仿真值,ber1理论误比特率,ser1理论误码率 semilogy(EsN0,ber,'o' ,EsN0,ser,'*',EsN0,ser1,'-',EsN0,ber1,'-.'); title('16QAM-AWGN') xlabel('Es/N0');ylabel('SER AND BER'); legend('ber simulation','ser simulation','ser theory' ,'ber theory');

仿真结果如下所示: 星座点图如下图所示: 在这里插入图片描述

仿真与理论的误码率和误比特率性能曲线比较: 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有