16-QAM(binary+gray) MATLAB仿真+BER计算+星座图结果展示

本文详细介绍了使用MATLAB进行16-QAM调制解调的仿真过程,包括数据流处理、噪声添加、星座图绘制、BER计算,并展示了不同Eb/N0下的仿真结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MATLAB仿真实现步骤

1.产生二进制数据流

2.将二进制数据转换为整型数据(qammod函数默认输入整型数据)

3.16-QAM调制

4.加AWGN

5.绘制加AWGN前后的星座图

6.16-QAM解调

7.将整型输出数据转换为二进制数据

8.计算BER

二、MATLAB仿真代码

M=16
k=log2(M)
n=30000
sps=1
rng default
datain=randi([0 1],n*k,1);
datasymbolsin=bit2int(datain,k)
datamod=qammod(datasymbolsin,M,'bin')
datamodG=qammod(datasymbolsin,M)
Ebn0=5
snr=convertSNR(Ebn0,'ebno',SamplesPerSymbol=sps,BitsPerSymbol=k)
receivedsignal=awgn(datamod,snr,"measured")
receivedsignalg=awgn(datamodG,snr,"measured")
splotfig=scatterplot(receivedsignal,1,0,'y.')
hold on
scatterplot(datamod,1,0,'k*',splotfig)
title('binary consellation')
splotfig2=scatterplot(receivedsignalg,1,0,'g.')
hold on
scatterplot(datamodG,1,0,'k*',splotfig2)
title('gray consellation')
datasymbolsout=qamdemod(receivedsignal,M,'bin')
datasymbolsoutg=qamdemod(receivedsignalg,M)
dataout=int2bit(datasymbolsout,k)
dataoutg=int2bit(datasymbolsoutg,k)
[numerros,ber]=biterr(datain,dataout)
fprintf('\nThe binary coding error rate is %5.2e,based on %d errors.\n',ber,numerros)
[numerrosg,berg]=biterr(datain,dataoutg)
fprintf('\nThe gray coding error rate is %5.2e,based on %d errors.\n',berg,numerrosg)

三、MATLAB仿真结果星座图展示:

(1)当Eb/n0=5时:

(2)当Eb/n0=20时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值