基于Matlab的MIMO通信系统仿真_第1页
基于Matlab的MIMO通信系统仿真_第2页
基于Matlab的MIMO通信系统仿真_第3页
基于Matlab的MIMO通信系统仿真_第4页
基于Matlab的MIMO通信系统仿真_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

基于Matlab的MIMO通信系统仿真北京邮电大学基于Matlab的MIMO通信系统仿真 专业:信息工程 班级:2011211126 姓名: 学号: 目录TOC\o"1-3"\h\u一、概述 二、基本原理1、基本流程2、MIMO原理核心思想:时间上空时信号处理同空间上分集结合。

时间上空时通过在发送端采用空时码实现:

空时分组、空时格码,分层空时码。

空间上分集通过增加空间上天线分布实现。此举可以把原来对用户来说是有害的无线电波多径传播转变为对用户有利。

MIMO系统模型:

MIMO信道模型分集与复用根据各根天线上发送信息的差别,MIMO可以分为发射分集技术和空间复用技术。发射分集:在不同的天线上发射包含同样信息的信号(信号的具体形式不一定完全相同),达到空间分集的效果,起到抗衰落的作用典型代表:空时块码(STBC)空间复用:在不同的天线上发射不同的信息,获得空间复用增益,从而大大提高系统的容量和频谱利用率典型代表:分层空时码空时块码Alamouti提出了采用两个发射天线和一个接收天线的系统可以得到采用一个发射天线两个接收天线系统同样的分集增益。将每k个输入字符映射为一个矩阵,矩阵的每行对应在p个不同的时间间隔里不同天线上所发送的符号。2*2举例:三、仿真设计1、流程图2、主要模块及参数3、信源产生产生独立等概二进制信源Matlab函数:randsrc()编码块长度:40-6114(3GPPTS36.212Table5.1.3-3)推荐值:320,1024,2560,5120利用randsrc()随机产生0与1的数,利用公式将其变成1与-1,即产生信源。4、信道编码Option1:卷积码(3GPPTS25.2124.2.3.1)根据要求,卷积码编码器为(3,1,8)编码器,G0=(001101111)转换为八进制为557;G1=(010110011)转换为八进制为663;G1=(011001001)转换为八进制为711.卷积码记忆长度为9.5、调制调制模块基本要求:QPSKQPSK调制的函数可以利用matlab函数库自带的QPSK函数进行编写。但是由于QPSK是M=4进行映射的,所以将随机产生的信源利用reshape函数变成两列,即00映射成,01映射成,10映射成,11映射成。解调时利用matlab自带的demodulate函数。6、AWGN信道Matlab实现:randn()信噪比与AWGN噪声的关系:由于信源经过QPSK调制,相当于在两条坐标轴的平面(一条实数轴,一条虚数轴)每一个方向都有随机的高斯白噪声分布,然后各自乘以相应的幅度,将得出的噪声加入QPSK调制的信号里,得到的便是经过AWGN信道的信号。7、输出统计误码率统计输出:横坐标-SNREb/N0(Eb/N0vsEs/N0?)纵坐标-BER(误比特率),BLER(误块率)画图:semilogy(x,y)程序块设计代码[1]、MIMO:SNR_dB=0:1:30;%信噪比范围LOOP=500;%%信源产生%fori=1:length(SNR_dB)snr=10^(SNR_dB(i)/10);%信噪比转换sgma=sqrt(8/snr/3);%噪声方差error0=0;error1=0;error2=0;error3=0;fora=1:LOOPN=2560;%仿真序列长度S=randsrc(1,N,[0,1]);%二进制序列信源产生n个随机数%%有信道编码%S00=convolutionalcode(S);%QPSK调制s=QPSK(S00);s0=zeros(1,3*N/4);%将调制后的信息奇偶拆分成两个信息以进行MIMO发射s1=zeros(1,3*N/4);forb1=1:2:(3*N/2)s0(ceil(b1/2))=s(b1);s1(ceil(b1/2))=s(b1+1);endN1=size(s0,2);%有信道编码(2发2收)h0=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));%设置信道冲激响应h1=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));h2=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));h3=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));%接收到的信号(冲激响应与发送序列卷积)R0=h0.*s0+h1.*s1;%接收信号矢量(不含高斯噪声)R1=-conj(s1).*h0+h1.*conj(s0);%移动通信P166R2=h2.*s0+h3.*s1;R3=-conj(s1).*h2+h3.*conj(s0);%通过AWGN信道加入噪声后的冲击序列r0=(R0+sgma.*(randn(1,N1)+1i*randn(1,N1)));%接收信号矢量(有噪声)r1=(R1+sgma.*(randn(1,N1)+1i*randn(1,N1)));r2=(R2+sgma.*(randn(1,N1)+1i*randn(1,N1)));r3=(R3+sgma.*(randn(1,N1)+1i*randn(1,N1)));s_0=conj(h0).*r0+h1.*conj(r1)+conj(h2).*r2+h3.*conj(r3);%STBC空时译码s_1=conj(h1).*r0-h0.*conj(r1)+conj(h3).*r2-h2.*conj(r3);forl0=1:3*N/4%将接收到的信号合并Y0(2*l0-1)=s_0(l0);Y0(2*l0)=s_1(l0);endy0=DEQPSK(Y0);%QPSK解调m0=viterbi(y0);%维特比译码[n0,e0]=biterr(m0,S);%计算误比特率error0=error0+n0;%有信道编码2发1收hr0=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));%瑞利信道函数hr1=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));Rr0=hr0.*s0+hr1.*s1;%接收信号矢量(不含高斯噪声)Rr1=-conj(s1).*hr0+hr1.*conj(s0);rN0=(Rr0+sgma.*(randn(1,N1)+1i*randn(1,N1)));%接收信号矢量(含复高斯噪声)rN1=(Rr1+sgma.*(randn(1,N1)+1i*randn(1,N1)));sr_0=conj(hr0).*rN0+hr1.*conj(rN1);%STBC空时译码sr_1=conj(hr1).*rN0-hr0.*conj(rN1);forl1=1:3*N/4%将接收到的信号合并Y1(2*l1-1)=sr_0(l1);Y1(2*l1)=sr_1(l1);endy1=DEQPSK(Y1);%QPSK解调m1=viterbi(y1);%维特比译码[n1,e1]=biterr(m1,S);%计算误比特率error1=error1+n1;%%无信道编码%sn=QPSK(S);%QPSK调制forb2=1:2:(N/2)%将调制后的信息奇偶拆分成两个信息以进行MIMO发射sn0(ceil(b2/2))=sn(b2);sn1(ceil(b2/2))=sn(b2+1);endN2=size(sn0,2);%无信道编码(2发2收)hn0=sqrt(0.5).*(randn(1,N2)+1i.*randn(1,N2));%瑞利信道函数hn1=sqrt(0.5).*(randn(1,N2)+1i.*randn(1,N2));hn2=sqrt(0.5).*(randn(1,N2)+1i.*randn(1,N2));hn3=sqrt(0.5).*(randn(1,N2)+1i.*randn(1,N2));Rn0=hn0.*sn0+hn1.*sn1;%接收信号矢量(无噪声)Rn1=-conj(sn1).*hn0+hn1.*conj(sn0);Rn2=hn2.*sn0+hn3.*sn1;Rn3=-conj(sn1).*hn2+hn3.*conj(sn0);rn0=(Rn0+sgma.*(randn(1,N2)+1i*randn(1,N2)));%接收信号矢量(有噪声)rn1=(Rn1+sgma.*(randn(1,N2)+1i*randn(1,N2)));rn2=(Rn2+sgma.*(randn(1,N2)+1i*randn(1,N2)));rn3=(Rn3+sgma.*(randn(1,N2)+1i*randn(1,N2)));sn_0=conj(hn0).*rn0+hn1.*conj(rn1)+conj(hn2).*rn2+hn3.*conj(rn3);sn_1=conj(hn1).*rn0-hn0.*conj(rn1)+conj(hn3).*rn2-hn2.*conj(rn3);forl2=1:N/4%将接收到的信号合并Y2(2*l2-1)=sn_0(l2);Y2(2*l2)=sn_1(l2);endy2=DEQPSK(Y2);%QPSK解调y2=y2';[n2,e2]=biterr(y2,S);%计算误比特率error2=error2+n2;%无信道编码(2发1收)hN0=sqrt(0.5).*(randn(1,N2)+1i.*randn(1,N2));%瑞利信道函数hN1=sqrt(0.5).*(randn(1,N2)+1i.*randn(1,N2));RN0=hN0.*sn0+hN1.*sn1;%发射序列与接收序列的卷积RN1=-conj(sn1).*hN0+hN1.*conj(sn0);rN0=(RN0+sgma.*(randn(1,N2)+1i*randn(1,N2)));%接收信号矢量(有噪声)rN1=(RN1+sgma.*(randn(1,N2)+1i*randn(1,N2)));sN_0=conj(hN0).*rN0+hN1.*conj(rN1);sN_1=conj(hN1).*rN0-hN0.*conj(rN1);forl3=1:N/4%将接收到的信号合并Y3(2*l3-1)=sN_0(l3);Y3(2*l3)=sN_1(l3);endy3=DEQPSK(Y3);%QPSK解调y3=y3';[n3,e3]=biterr(y3,S);%计算误比特率error3=error3+n3;endBER0(i)=error0/(LOOP*N);BER1(i)=error1/(LOOP*N);BER2(i)=error2/(LOOP*N);BER3(i)=error3/(LOOP*N);endsemilogy(SNR_dB,BER0,'-b+');holdon;semilogy(SNR_dB,BER1,'r');gridon;semilogy(SNR_dB,BER2,'--g');gridon;semilogy(SNR_dB,BER3,'-.k');gridon;legend('2Tx2R:卷积信道编码','2Tx1R有信道编码','2Tx2R无信道编码','2Tx1R无信道编码');xlabel('SNR/dB');ylabel('BER');[2]、viterbifunctiondecodingsequence=viterbi(m)trel=poly2trellis(9,[557,663,711]);tblen=7;%卷积码记忆深度decodingsequence=vitdec(m,trel,tblen,'trunc','hard');decodingsequence=decodingsequence';[3]、QPSKfunctionmodulatingsignal=QPSK(s)s=s';H=modem.pskmod('M',4,'InputType','Bit');modulatingsignal=modulate(H,s);modulatingsignal=modulatingsignal';[4]、DEQPSKfunctiondemodulatingsignal=DEQPSK(s)h=modem.pskdemod('M',4,'OutputType','Bit');s=s';demodulatingsignal=demodulate(h,s);[5]、convolutionalcode%卷积码编码器%msg信号%constrainlength约束长度(寄存器数目加一)%codegenerator冲击响应g(转换成八进制)functioncode=convolutionalcode(msg)constrainlength=9;trel=poly2trellis(constrainlength,[557,663,711]);code=convenc(msg,trel);仿真结果分析1、仿真图结果分析由误码率仿真图看

温馨提示

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

评论

0/150

提交评论