16QAM仿真代码(matlab).docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
16QAM仿真代码(matlab)

% 16QAM 系统仿真function [ ber_AWGN,ber_Ray] = M16QAM()EbN0dB=1:3:30;EbN0dB1=1:10;N=4*100000;for ii=1:length(EbN0dB) sigma2(ii)=2.5/(2*4*(10^(EbN0dB(ii)/10))); sigma21(ii)=2.5/(2*4*(10^(EbN0dB1(ii)/10))); bits=randint(1,N); %调制 s=M16QAM_modulate(bits,length(bits(:))); % Rayleign信道干扰 noise=sqrt(sigma2(ii))*( randn(1,N/4)+ 1i*randn(1,N/4) ); h= sqrt(0.5)*(randn(1,N/4) + 1i*randn(1,N/4) ); receiver=s.*h+noise; %Rayleign 衰减信道 % 高斯信道干扰 noise1=sqrt(sigma21(ii))*( randn(1,N/4)+ 1i*randn(1,N/4) ); receiver1=s+noise1; %高斯信道 % 信道均衡 receiver = receiver./h; %解调并计算误码率 Rayleign信道 demodata = M16QAM_demodulate( receiver,length(receiver(:)) ); errCount=sum(abs(bits-demodata)); ber_Ray(ii)=errCount/N; %解调并计算误码率 高斯信道 demodata = M16QAM_demodulate( receiver1,length(receiver1(:)) ); errCount=sum(abs(bits-demodata)); ber_AWGN(ii)=errCount/N;endend% 16QAM 调制function [ s ] = M16QAM_modulate( bits,N)ii=0; for i=1:4:N ii=ii+1; if bits(i)==0bits(i+1)==0bits(i+2)==0bits(i+3)==0 s(ii)=sqrt(2)/2*exp(1i*pi/4); elseif bits(i)==1bits(i+1)==0bits(i+2)==0bits(i+3)==0 s(ii)=sqrt(2)/2*exp(1i*3*pi/4); elseif bits(i)==1bits(i+1)==0bits(i+2)==1bits(i+3)==0 s(ii)=sqrt(2)/2*exp(1i*5*pi/4); elseif bits(i)==0bits(i+1)==0bits(i+2)==1bits(i+3)==0 s(ii)=sqrt(2)/2*exp(1i*7*pi/4); elseif bits(i)==0bits(i+1)==1bits(i+2)==0bits(i+3)==0 s(ii)=sqrt(10)/2*exp(1i*atan(1/3)); elseif bits(i)==0bits(i+1)==0bits(i+2)==0bits(i+3)==1 s(ii)=sqrt(10)/2*exp(1i*atan(3)); elseif bits(i)==1bits(i+1)==0bits(i+2)==0bits(i+3)==1 s(ii)=sqrt(10)/2*exp(1i*(atan(1/3)+pi/2)); elseif bits(i)==1bits(i+1)==1bits(i+2)==0bits(i+3)==0 s(ii)=sqrt(10)/2*exp(1i*(pi-atan(1/3))); elseif bits(i)==1bits(i+1)==1bits(i+2)==1bits(i+3)==0 s(ii)=sqrt(10)/2*exp(1i*(atan(1/3)+pi)); elseif bits(i)==1bits(i+1)==0bits(i+2)==1bits(i+3)==1 s(ii)=sqrt(10)/2*exp(1i*(3*pi/2-atan(1/3))); elseif bits(i)==0bits(i+1)==0bits(i+2)==1bits(i+3)==1 s(ii)=sqrt(10)/2*exp(1i*(atan(1/3)+3*pi/2)); elseif bits(i)==0bits(i+1)==1bits(i+2)==1bits(i+3)==0 s(ii)=sqrt(10)/2*exp(1i*(2*pi-a

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档