16QAM仿真代码(matlab).doc_第1页
16QAM仿真代码(matlab).doc_第2页
16QAM仿真代码(matlab).doc_第3页
16QAM仿真代码(matlab).doc_第4页
16QAM仿真代码(matlab).doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

% 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)=0&bits(i+1)=0&bits(i+2)=0&bits(i+3)=0 s(ii)=sqrt(2)/2*exp(1i*pi/4); elseif bits(i)=1&bits(i+1)=0&bits(i+2)=0&bits(i+3)=0 s(ii)=sqrt(2)/2*exp(1i*3*pi/4); elseif bits(i)=1&bits(i+1)=0&bits(i+2)=1&bits(i+3)=0 s(ii)=sqrt(2)/2*exp(1i*5*pi/4); elseif bits(i)=0&bits(i+1)=0&bits(i+2)=1&bits(i+3)=0 s(ii)=sqrt(2)/2*exp(1i*7*pi/4); elseif bits(i)=0&bits(i+1)=1&bits(i+2)=0&bits(i+3)=0 s(ii)=sqrt(10)/2*exp(1i*atan(1/3); elseif bits(i)=0&bits(i+1)=0&bits(i+2)=0&bits(i+3)=1 s(ii)=sqrt(10)/2*exp(1i*atan(3); elseif bits(i)=1&bits(i+1)=0&bits(i+2)=0&bits(i+3)=1 s(ii)=sqrt(10)/2*exp(1i*(atan(1/3)+pi/2); elseif bits(i)=1&bits(i+1)=1&bits(i+2)=0&bits(i+3)=0 s(ii)=sqrt(10)/2*exp(1i*(pi-atan(1/3); elseif bits(i)=1&bits(i+1)=1&bits(i+2)=1&bits(i+3)=0 s(ii)=sqrt(10)/2*exp(1i*(atan(1/3)+pi); elseif bits(i)=1&bits(i+1)=0&bits(i+2)=1&bits(i+3)=1 s(ii)=sqrt(10)/2*exp(1i*(3*pi/2-atan(1/3); elseif bits(i)=0&bits(i+1)=0&bits(i+2)=1&bits(i+3)=1 s(ii)=sqrt(10)/2*exp(1i*(atan(1/3)+3*pi/2); elseif bits(i)=0&bits(i+1)=1&bits(i+2)=1&bits(i+3)=0 s(ii)=sqrt(10)/2*exp(1i*(2*pi-atan(1/3); elseif bits(i)=0&bits(i+1)=1&bits(i+2)=0&bits(i+3)=1 s(ii)=sqrt(2)*3/2*exp(1i*pi/4); elseif bits(i)=1&bits(i+1)=1&bits(i+2)=0&bits(i+3)=1 s(ii)=sqrt(2)*3/2*exp(1i*3*pi/4); elseif bits(i)=1&bits(i+1)=1&bits(i+2)=1&bits(i+3)=1 s(ii)=sqrt(2)*3/2*exp(1i*5*pi/4); elseif bits(i)=0&bits(i+1)=1&bits(i+2)=1&bits(i+3)=1 s(ii)=sqrt(2)*3/2*exp(1i*7*pi/4); end endend% 16 QAM 解调function demodata = M16QAM_demodulate( receiver ,N)A=0 1 0 1; -1 0 0 1;-1 0 -1 0;0 1 -1 0; 1 inf 0 1;0 1 1 inf;-1 0 1 inf;-inf -1 0 1; -inf -1 -1 0;-1 0 -inf -1;0 1 -inf -1;1 inf -1 0; 1 inf 1 inf;-inf -1 1 inf;-inf -1 -inf -1;1 inf -inf -1;for k=1:N if (real(receiver(k)=A(1,1)&(real(receiver(k)=A(1,3)&(imag(receiver(k)=A(2,1)&(real(receiver(k)=A(2,3)&(imag(receiver(k)=A(3,1)&(real(receiver(k)=A(3,3)&(imag(receiver(k)=A(4,1)&(real(receiver(k)=A(4,3)&(imag(receiver(k)=A(5,1)&(real(receiver(k)=A(5,3)&(imag(receiver(k)=A(6,1)&(real(receiver(k)=A(6,3)&(imag(receiver(k)=A(7,1)&(real(receiver(k)=A(7,3)&(imag(receiver(k)=A(8,1)&(real(receiver(k)=A(8,3)&(imag(receiver(k)=A(9,1)&(real(receiver(k)=A(9,3)&(imag(receiver(k)=A(10,1)&(real(receiver(k)=A(10,3)&(imag(receiver(k)=A(11,1)&(real(receiver(k)=A(11,3)&(imag(receiver(k)=A(12,1)&(real(receiver(k)=A(12,3)&(imag(receiver(k)=A(13,1)&(real(receiver(k)=A(13,3)&(imag(receiver(k)=A(14,1)&(real(receiver(k)=A(14,3)&(imag(receiver(k)=A(15,1)&(real(recei

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论