MIMO系统中STBC及分集合并技术仿真

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

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

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

资源描述

1/20MIMO系统中空时分组编码及分集合并技术仿真摘要:MIMO技术指在发射端和接收端分别使用多个发射天线和接收天线,使信号通过发射端与接收端的多个天线传送和接收,从而改善通信质量。本文首先介绍了Alamouti编码方案原理和Matlab程序实现过程。接着分别阐述了切换/选择(SS)合并、等增益合并(EGC)和最大比合并(MRC)三种分集合并技术的基本原理和Matlab程序实现过程。最后对比了Alamouti编码方案和1*2MRC方案的性能,同时对三种分集合并技术在不同接收天线的情况下的误码率性能做了比较分析。1Alamouti空时分组编码1.1Alamouti空时分组码原理空时分组码(STBC)技术涉及将待发送的比特组成一个数据分组。这个数据分组随后通过在时间和空间上的扩展发送出去,因此称为“空时”。此技术最早由Alamouti提出,在此技术中,有两根发射天线,且将输入符号分为大小为2的分组。Alamouti编码框图由图1所示:STTD编码器12dd112221sddSsdd图1Alamouti空时编码器原理框图每次编码时,取两个调制符号12dd为一个分组,并按如下矩阵映射到天线中112221sddSsdd(1)其中第一行符号112sdd对应着天线1的发射序列,第二行符号221sdd对应着天线2的发射序列。第一列表示第1个符号发射周期,第二列表示第2个符号发射周期。STTD编码器12dd译码器ˆd1h2hr图2编码器和译码器通信框图令1r和2r是在两个连续符号间隔内接收到的符号,给定如下,并假设11()()shthtT:111221rhdhdn(2)2/20*212212rhdhdn(3)现在我们假设信道已经通过某种可靠的方法估计出来,线性合并器利用连续的接收符号来联合估计发送符号:11122dhrhr(4)22112dhrhr(5)应用矩阵运算后,得到估计如下:2211111122ˆddhhhnhn(6)2222111221ˆddhhhnhn(7)从上述式子中我们可以看到,已经取得了信道的分集合并。1.2Matlab仿真程序a)发射机假设待编码的信息比特长度为N,采用BPSK调制,得到调制后的符号矩阵123Nddddd。data=rand(1,N)0.5;d=2*data-1;N个调制符号映射到天线上时矩阵为S,如下所示,所以下一步构建S矩阵:1234112214312NNNNNddddddsSsdddddd构建过程如下:S=zeros(2,N);S(:,1:2:end)=(1/sqrt(2))*reshape(d,2,N/2);13112242000000NNNdddsSsdddS(:,2:2:end)=(1/sqrt(2))*(kron(ones(1,N/2),[-1;1]).*flipud(reshape(conj(d),2,N/2)));1234112214312NNNNNddddddsSsddddddb)信道我们假设两个连续符号间隔内信道状态是保持不变的,即11()()shthtT,所以下一步构建h矩阵,即:3/2011331122442NNNNNhhhhhhhhhhhhh这里假设信道为瑞利信道:h=1/sqrt(2)*[randn(1,N)+j*randn(1,N)];h_reshape=kron(reshape(h,2,N/2),ones(1,2));11331122442_NNNNNhhhhhhhreshapehhhhhh噪声为高斯白噪声:n=1/sqrt(2)*[randn(1,N)+j*randn(1,N)];c)接收机经过信道后接收到的符号为:r=sum(h_reshape.*S,1)+10^(-EbN0_dB(i)/20)*n;123334111112221444312_.--NNNNNNNNNhreshapeShdhdhdhdhdhdhdhdhdhdhdhd12311122112212111111(._,1)-NNNNNNNNNNNNNrsumShreshapenrrrrhdhdnhdhdnhdhdnhdhdn接收机在合并接收到的信号时用到的等式为式(4)(5):11122dhrhr22112dhrhr则N个符号的估计值用矩阵形式可表示为:121111222112111111133111234122442142ˆˆˆˆ.NNNNNNNNNNNNNNNNNNNddddhrhrhrhrhrhrhrhrrrrrrrhhhhhhsumrrrrrrhhhh312,1_._,1NNNhhsumrreshapehrequire最终转化为矩阵r_reshape和h_require点乘运算,下面为两个矩阵的构造过程:r_reshape:r_reshape=kron(reshape(r,2,N/2),ones(1,2));4/2011331122442_NNNNNrrrrrrhreshaperrrrrrr_reshape(2,:)=conj(r_reshape(2,:));11331122442_NNNNNrrrrrrhreshaperrrrrrh_requireh_require=zeros(2,N);h_require(:,[1:2:end])=reshape(h,2,N/2);131242000_000NNNhhhhrequirehhhh_require(:,[2:2:end])=kron(ones(1,N/2),[1;-1]).*flipud(reshape(h,2,N/2));12341214312_NNNNNhhhhhhhrequirehhhhhhh_require(1,:)=conj(h_require(1,:));12341214312_NNNNNhhhhhhhrequirehhhhhh到此两个矩阵构建完成,N个符号的估计值可表示为:d_estimate=sum(h_require.*r_reshape,1);1211ˆˆˆˆ__._NNNdestimateddddrreshapehrequire然后对d_estimate的实部进行硬判决,即可得到原始data的估计值:data_estimate=real(d_estimate)0;接下来与原始产生的信息比特data进行比对,找到data和d_estimate对应列中数据不同的位置个数即为发生错误的个数:Num_error(i)=size(find([data-data_estimate]),2);误码率:BER=Num_error/N;2分集合并技术2.1切换/选择(SS)合并2.1.1原理SS合并最主要的思想就是在M个可用天线中选择一个最好的,并用于基带解调。这意味着,在这段时间内,有M-1个天线没有被使用。在给定M个接收天线时,所有M个天线都处于深衰落的概率是很小的。然而,当M值比较大时,却很有机会获得多个对解调来说5/20有用的天线,因此不使用这些有用的天线等于浪费潜在的性能提升。接收机接收机接收机12M逻辑(选择具有最大信号功率的天线)基带解调图3切换/选择分集方法假设Num_nRx=3,即接收端有3根天线。发送的调制符号为d,经过信道后3个天线接收到的符号分别为:111rhdn(8)222rhdn(9)333rhdn(10)2iiihhh,可以通过比较每一路的iihh,并选择最大的一路作为具有最大信号功率的天线,进而进一步估计信号。假设此时通过比较选择第2根天线,则可以将式(11)作为d的估计。22ˆ/drh(11)2.1.2Matlab仿真程序a)发射机同样假设待编码的信息比特长度为N,采用BPSK调制,得到调制后的符号矩阵123Nddddd。S_SS=kron(d,ones(Num_nRx,1));12312312_3_NNNumnRxNNddddSSSdddddddd6/20b)信道瑞利信道:h_SS=1/sqrt(2)*[randn(Num_nRx,N)+j*randn(Num_nRx,N)];1473225831369_3_NumnRxNNNNhhhhhSShhhhhhhh高斯白噪声:n_SS=1/sqrt(2)*[randn(Num_nRx,N)+j*randn(Num_nRx,N)];1473225831369_3_NumnRxNNNNnnnnnSSnnnnnnnnc)接收机经过信道后的接收符号可以用矩阵表示如下:r_SS=h_SS.*S_SS+10^(-EbN0_dB(i)/20)*n_SS;111244377323212225538831311332_3669933_NNNNNNNumnRxNNNNdhndhndhndhnrSSdhndhndhndhndhndhndhndhn对于每个符号传输过程,我们需要找到最大的2iiihhh。hPower=h_SS.*conj(h_SS);222214732222225831222_23693NumNNxNnRNhhhhhPowerhhhhhhhhhPower_Max=max(hPower,[],1);返回hPower每一列中最大的元素,假设这里我们已经找到每一列元素中的最大值:2222248311_NNhPowerMaxhhhhhPower_Max_expand=kron(ones(Num_nRx,1),hPower_Max);222224831222224831222224831___NumnRxNNNNhhhhhPowerMaxexpandhhhhhhhh通过比较矩阵hPower和hPower_Max_expand中的每一个元素,可以选择目标天线:7/20_0100__10110000NumnRxNhPowerhPowerMaxexpand通过上式可以看出,对于符号1d选择第2根天线,符号2d选择第一根天线,符号3d选择第2根天线。r_Select=r_SS(hPower==hPower_Max_expand);T12224431883131_NNNNrSelectdhndhndhndhnh_Select=h_SS(hPower==hPower_Max_expand);T214381_NNhSelecthhhhd_estimate_SS=(r_Select./h_Select)';矩阵r_Select点除h_Select即可得到d的估计值,接下来进行硬判决估计符号并计算误码率。data_estimate_SS=real(d_estimate_SS)0;Num_error_SS(i)=size(find([data-data_estimate_SS]),2);BER_SS=Num_error_SS/N;2.2等增益合并

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

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

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

×
保存成功