对QAM调制的误符号率性能进行MATLAB仿真

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

对QAM调制的误符号率性能进行仿真,并与理论曲线对比。原理图:程序流程图:相关公式:Y总点数为NncnsrsrcAmsAmc4比特符号4比特符号均匀随机数M=16的QAM信号选择器高斯随机数高斯随机数比较差错计数器检测器相同不同N产生随机数QAM信号选择加入噪声信号检测与原始值对比循环结束计数器加1计算误符号率210avEd,8avEsnr,203(log)4(1)avbMMEPQMN程序1.Qam_test.m绘制误符号率理论曲线;调用cm_sm41.m绘制仿真曲线。clearclcSNRindB1=-5:1:15;SNRindB2=-5:0.1:15;M=16;k=log2(M);fori=1:length(SNRindB1)smld_err_prb(i)=cm_sm41(SNRindB1(i));endfori=1:length(SNRindB2)SNR=exp(SNRindB2(i)*log(10)/10);theo_err_prb(i)=4*0.5*erfc(sqrt(3*k*SNR/(2*(M-1))));endsemilogy(SNRindB1,smld_err_prb,'*');gridon;holdon;semilogy(SNRindB2,theo_err_prb);2.gauss.m产生均值为0,方差可调,具有两个返回值的高斯噪声function[gsrv1,gsrv2]=gauss(sgma_in)ifnargin==0,%如果没有输入实参,则均值为0,标准差为1。(awgn)mean=0;sgma=1;elseifnargin==1,%如果输入实参为1个参数,则均值为0,标准差为输入实参。mean=0;sgma=sgma_in;end;u=rand;z=sgma*(sqrt(2*log(1/(1-u))));u=rand;gsrv1=mean+z*cos(2*pi*u);gsrv2=mean+z*sin(2*pi*u);3.cm_sm41.m点数N:10000;产生随机数;QAM信号选择;加入高斯噪声;判决;对比;统计差错率。function[p]=cm_sm41(snr_in_dB)%CM_SM41findstheprobabilityoferrorforthegivenN=10000;d=1;%min.distancebetweensymbolsEav=10*d^2;%energypersymbol根据星座图算。snr=10^(snr_in_dB/10);%SNRperbit(given)sgma=sqrt(Eav/(8*snr));%noisevarianceM=16;%Generationofthedatasourcefollows.fori=1:N,temp=rand;%auniformR.V.between0and1dsource(i)=1+floor(M*temp);%anumberbetween1-16,uniformend;%Mappingtothesignalconstellationfollows.mapping=[-3*d3*d;-d3*d;d3*d;3*d3*d;-3*dd;-dd;dd;3*dd;-3*d-d;-d-d;d-d;3*d-d;-3*d-3*d;-d-3*d;d-3*d;3*d-3*d];fori=1:N,qam_sig(i,:)=mapping(dsource(i),:);end;%receivedsignalfori=1:N,[n(1)n(2)]=gauss(sgma);r(i,:)=qam_sig(i,:)+n;end;%detectionanderrorprobabilitycalculationnumoferr=0;fori=1:N,%Metriccomputationfollows.forj=1:M,metrics(j)=(r(i,1)-mapping(j,1))^2+(r(i,2)-mapping(j,2))^2;%与每个点的距离。end;[min_metricdecis]=min(metrics);%返回最小值及位置,找出距离最小的点的位置。if(decis~=dsource(i))%dsource1-16。与原位置对比。numoferr=numoferr+1;end;end;p=numoferr/(N);实验结果:

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功