主要内容

空间复用

该示例示出了空间复用方案,其中数据流被细分为独立的子流,每个子流用于所采用的每个发射天线。因此,这些方案提供复用增益,并且不需要如空时块编码所需的那样进行显式正交化。

然而,空间多路复用需要在接收器处使用强大的解码技术[1.],此示例突出显示了两种有序连续干扰消除(SIC)检测方案。这些方案类似于贝尔实验室最初的分层时空(BLAST)技术[2.], [3.].

出于公开的好处,该示例使用了基本的2x2 MIMO系统,该系统采用两个发射天线和两个接收天线。对于未编码的QPSK调制系统,它在独立的发射接收链路上采用平坦瑞利衰落。在接收端,我们假设完美的信道知识,没有对发射机的反馈,即开环空间信道多路复用系统。

该示例显示了两种具有符号消除的非线性干扰消除方法——迫零(ZF)和最小均方误差(MMSE),并将其性能与最大似然(ML)最优接收机进行了比较。

模拟

我们首先定义一些常见的模拟参数

N=2;%发射天线的数量M=2;%接收天线的数量EbNoVec=2:3:8;%Eb/No(单位:dB)modOrd=2;%星座大小=2^modOrd

并建立模拟。

%创建一个本地随机流,供随机数生成器用于%重复性。stream=RandStream(‘mt19937ar’);%创建PSK调制器和解调器系统对象pskModulator=通信pskModulator(...“调制顺序”,2^modOrd,...“相位偏移”, 0,...“比输入”,对);pskDemodulator=comm.pskDemodulator(...“调制顺序”,2^modOrd,...“相位偏移”, 0,...“比特输出”,对);%为3个不同的接收器创建错误率计算系统对象zfBERCalc=comm.ErrorRate;mmseBERCalc=comm.ErrorRate;mlBERCalc=comm.ErrorRate;%获取ML接收器的所有位和符号组合allBits=de2bi(0:2^(modOrd*N)-1,“左msb”)'; allTxSig=reformate(pskModulator(allBits(:),N,2^(modOrd*N));%预分配变量以存储速度的误码率结果[BER_ZF,BER_MMSE,BER_ML]=交易(零(长度(EbNoVec),3));

下面的模拟回路使用相同的数据和信道实现,同时评估三种接收机方案对于每个Eb/No值的误码率性能。出于模拟目的,使用较短范围的Eb/No值。使用相同代码的较大范围的结果将在后面给出。

%设置一个图形以可视化BER结果图=图;网格在…上; 持有在…上;ax=图电流轴;ax.YScale=“日志”;xlim([EbNoVec(1)-0.01 EbNoVec(end)];ylim([1e-3 1]);xlabel(‘Eb/No(dB)’);伊莱贝尔(“伯尔”);无花果=“关”;图1=“兹布弗”;图名称=“空间多路复用”;头衔(“2x2非编码QPSK系统”);套(图,“DefaultLegendAutoUpdate”,“关”);%在选定的EbNo点上循环对于idx=1:长度(EbNoVec)%重置错误率计算系统对象重置(zfBERCalc);重置(mmseBERCalc);重置(mlBERCalc);%根据每个独立传输链路的EbNo计算SNRsnrIndB=EbNoVec(idx)+10*log10(modOrd);snrLinear=10^(0.1*snrIndB);虽然(b_ZF(idx,3)<1e5)和&(b_MMSE(idx,2)<100)||...(beru-ZF(idx,2)<100)|(beru-ML(idx,2)<100))%创建随机位向量进行调制msg=randi(流[01],[N*modOrd,1]);%调制数据txSig=pskModulator(msg);%具有独立链路的平坦瑞利衰落信道rayleighChan=(randn(stream,M,N)+1i*randn(stream,M,N))/sqrt(2);%为褪色的数据添加噪波rxSig=awgn(rayleighChan*txSig,snrIndB,0,流);%ZF-SIC接收机r=rxSig;H=rayleighChan;%假设信道估计是完美的%初始化estZF=0(N*modOrd,1);orderVec=1:N;k=N+1;%启动ZF调零循环对于n=1:n%收缩H以消除最后解码符号的效果H=H(:,[1:k-1,k+1:end]);%相应地收缩序向量orderVec=orderVec(1[1:k-1,k+1:end]);%选择要解码的下一个符号G=(H'*H)\eye(N-N+1);%与inv(H'*H)相同,但速度更快[~,k]=min(diag(G));symNum=orderVec(k);%硬解码所选符号decBits=pskDemodulator(G(k,:)*H'*r);estZF(modOrd*(symNum-1)+(1:modOrd))=decBits;%从r中减去最后一个解码符号的效果如果n终止终止%MMSE-SIC接收机r=rxSig;H=rayleighChan;%初始化estMMSE=0(N*modOrd,1);orderVec=1:N;k=N+1;%启动MMSE调零循环对于n=1:nh=H(:,[1:k-1,k+1:end]);orderVec=orderVec(1[1:k-1,k+1:end]);%顺序算法(矩阵G计算)是唯一的区别%使用ZF-SIC接收机G=(H'*H+((N-N+1)/snrLinear)*eye(N-N+1))\eye(N-N+1);[~,k]=min(diag(G));symNum=orderVec(k);decBits=pskDemodulator(G(k,:)*H'*r);estMMSE(modOrd*(symNum-1)+(1:modorder))=decBits;如果n终止终止%最大似然接收机r=rxSig;H=rayleighChan;[~,k]=min(sum(abs(repmat(r[1,2^(modOrd*N)])-H*allTxSig.^2));estML=allBits(:,k);%更新误码率BER_ZF(idx,:)=zfBERCalc(msg,estZF);BER_MMSE(idx,:)=MMSEBEERCALC(msg,estMMSE);BER_ML(idx,:)=mlBERCalc(msg,estML);终止%绘图结果符号学(EbNoVec(1:idx),beru-ZF(1:idx,1),“r*”,...EbNoVec(1:idx),BER_MMSE(1:idx,1),“波”,...EbNoVec(1:idx),BER_ML(1:idx,1),“gs”);传奇(“ZF-SIC”,“MMSE-SIC”,“ML”);现在;终止%划清界限符号学(EbNoVec,BER_ZF(:,1),“r-”,...埃布诺维奇,伯努姆赛(:,1),“b-”,...埃布诺韦克,伯努姆(:,1),“g-”); 持有;

我们观察到,ML接收机的性能最好,其次是MMSE-SIC和ZF-SIC接收机,如图所示[4.]。就接收机复杂度而言,ML随发射天线数量呈指数增长,而ZF-SIC和MMSE-SIC是线性接收机,结合了连续干扰消除。可在中找到用于降低复杂度的优化ZF-SIC和MMSE-SIC算法[5.].

接下来将显示比较三种方案的更大范围Eb/No值的模拟结果。这些曲线允许您测量从BER曲线斜率获得的分集顺序。

无花果(“spatMuxResults.fig”);

进一步探索的一些领域是,在有信道估计和无信道估计的情况下,对更多的天线尝试这些方法。

选定的参考资料

  1. George Tsoulos主编,“无线通信的MIMO系统技术”,华润出版社,佛罗里达州博卡拉顿,2006年。

  2. G.J.Foschini,“使用多天线时衰落环境中无线通信的分层空时体系结构”,《贝尔系统技术期刊》,1996年,第1期,第41-59页。

  3. P.W.Wolniansky,G.J.Foschini,G.D.Golden,R.A.Valenzuela,“V-BLAST:通过富散射无线信道实现极高数据速率的架构”,1998年URSI信号、系统和电子国际研讨会,1998年9月29日至10月2日,第295-300页。

  4. 李克强,黄海昌,A.Lozano,G.J.Foschini,“使用多元件阵列的系统的降低复杂度检测算法”,IEEE®全球电信会议,2000年,第2卷,2000年11月27日至12月1日,第1072-76页。

  5. Shang和Xa.-G.Xia,“具有最佳有序SIC检测的V-BLAST快速递归算法”,IEEE Trans.无线通信,第8卷,第6期,第2860-2865页,2009年6月。