该示例显示了天线互耦如何影响多输入多输出(MIMO)信道上正交空时分组码(OSTBC)传输的性能。发射机和接收机各有两个偶极子天线元件。在不同的相关和耦合情况下绘制了误码率与信噪比曲线。要运行此示例,您需要天线工具箱™.
在2x2准静态频率平坦瑞利信道上模拟了QPSK调制的Alamouti OSTBC[[1]].该系统在2.4 GHz下工作。模拟的信噪比范围为0至10 dB。
fc=2.4e9;%中心频率Nt=2;%发送天线的数量Nr=2;%接收天线的数量blkLen=2;%Alamouti码块长度信噪比=0:10;%信噪比范围最大值=3e2;%最大错误数maxNumBits=5e4;%最大位数
创建用于执行QPSK调制和解调、Alamouti编码和组合、AWGN信道以及BER计算的对象。
qpskMod=通信qpskMod调制器;QPSK解调器=通信QPSK解调器;Alamoutience=comm.ostbc编码器(...“Numtransmitatenenas”、Nt);alamoutiDec = comm.OSTBCCombiner (...“Numtransmitatenenas”,新界,...“numreceiveantens”,Nr);awgnChanNC=comm.AWGNChannel(...%对于无联轴器的情况“噪音法”,“信噪比”,...“SignalPower”, 1); berCalcNC=通信错误率;%对于无联轴器的情况%互耦情况下的克隆对象awgnChanMC=克隆(awgnChanNC);berCalcMC=克隆(berCalcNC);
发射(Tx)和接收(Rx)侧均使用两元件谐振偶极子阵列。在Tx时,偶极子间隔半个波长。在Rx,间距是波长的十分之一。
TXSPACE=0.5;RXSPACGE=0.1;lambda=physconst(“光速”) / fc;antElement =偶极子(...“长度”,lambda/2,...“宽度”,λ/100);txArray=linearray(...“元素”,安特莱恩,...“NumElements”,新界,...“ElementSpacing”txSpacing *λ);rxArray = linearArray (...“元素”,安特莱恩,...“NumElements”,Nr,...“ElementSpacing”,rxspacking*lambda);
耦合矩阵根据阵列的电路模型计算,如下所示:[[2]].对发射和接收阵列进行s参数计算,并由此导出阵列的阻抗矩阵表示。
txMCMtx=helperCalculateCouplingMatrix(txArray,fc,[1 Nt]);rxMCMtx=helperCalculateCouplingMatrix(rxArray,fc,[1 Nr]);
发射和接收空间相关矩阵捕获信道的传播环境。在没有耦合的情况下,假设Tx处的两个元素不相关,Rx处的两个元素具有高相关性。整个信道的组合/总体相关矩阵是其Kronecker乘积。
txCorrMtx=眼睛(2);rxCorrMtx=[10.9;0.91];combCorrMtx=克朗(txCorrMtx,rxCorrMtx);
对于耦合,我们在[[3]]通过将Tx和Rx相关矩阵与相应的耦合矩阵进行前后相乘来修改Tx和Rx相关矩阵。在相关性和耦合可以独立建模的假设下,这是有效的。
txMCCorrMtx=txMCMtx*txCorrMtx*txMCMtx';rxmcccorrmtx=rxMCMtx*rxCorrMtx*rxMCMtx';
将空间相关性与耦合相结合克朗(TXMCORR,rxMCCorr)
。或者,我们可以将Tx/Rx耦合矩阵视为“吸收”到Tx/Rx相关矩阵中,并导出组合相关矩阵,如下所示:
txSqrtCorrMtx=txMCMtx*sqrtm(txCorrMtx);rxSqrtCorrMtx=rxMCMtx*sqrtm(rxCorrMtx);combMCCorrMtx=kron(txSqrtCorrMtx,rxSqrtCorrMtx);combMCCorrMtx=combMCCorrMtx*combMCCorrMtx';
创建两个comm.MIMOChannel对象以模拟有耦合和无耦合的2x2 MIMO信道。在每种情况下分配组合的空间相关矩阵最大档位
属性设置为0以建模准静态通道。
mimoChanNC=通信MIMOChannel(...%对于无联轴器的情况“最大换档速度”, 0,...“空间相关规范”,“合并”,...“空间相关矩阵”,combCorrMtx,...“路径增益输出端口”,对);%互耦情况下的克隆对象mimoChanMC=clone(mimoChanNC);mimoChanMC.SpatialCorrelationMatrix=combMCCorrMtx;
模拟QPSK调制的Alamouti码的每个SNR值,有天线耦合和没有天线耦合。在每次迭代中,通过MIMO信道模拟一个Alamouti码。为了模拟准静态信道,我们重置了comm.MIMOChannel
对象获取每次代码传输(迭代)的一组新的信道增益。
%设置图形以可视化BER结果h1=图形;网格在;持有在;ax=gca;ax.YScale=“日志”;xlim([snr(1),snr(end)];ylim([1e-31]);xlabel(‘信噪比(dB)’); 伊拉贝尔(“伯尔”); h1.数字=“关”; h1.姓名=“正交空时分组编码”;h1。渲染器=“兹布弗”;标题(' alamouti编码2x2系统-高耦合,高相关');s=rng(108);%重复性[berNC,berMC]=交易(零(3,长度(snr));%循环信噪比值对于idx=1:长度(snr)AWGNChanc.snr=snr(idx);awgnChanMC.SNR=SNR(idx);复位(berCalcNC);重置(berCalcMC);虽然最小值(berNC(2,idx),berMC(2,idx))<=maxnumers&(berNC(3,idx)<=maxNumBits)%生成随机数据txData=randi([03],blkLen,1);%执行QPSK调制和Alamouti编码txSig=Alamoutince(qpskMod(txData));%直通MIMO信道重置(mimoChanNC);重置(mimoChanMC);[chanOutNC,estChanNC]=mimoChanNC(txSig);[chanOutMC,estChanMC]=mimoChanMC(txSig);%添加AWGNrxSigNC=awgnChanNC(chanOutNC);rxSigMC=awgnChanMC(chanOutMC);%使用已知信道状态信息执行Alamouti解码decSigNC = alamoutiDec(rxSigNC, squeeze(estChanNC)); / /压缩decSigMC = alamoutiDec(rxSigMC,挤压(estChanMC));%执行QPSK解调rxDataNC = qpskDemod (decSigNC);rxDataMC = qpskDemod (decSigMC);%更新系统berNC(:,idx)=berCalcNC(txData,rxDataNC);berMC(:,idx)=berCalcMC(txData,rxDataMC);结束%绘图结果符号学(snr(1:idx),berNC(1,1:idx),“r*”); 符号学(snr(1:idx),berMC(1,1:idx),“波”);传奇({“无耦合信道”,“带耦合的通道”}); 现在抽;结束%执行曲线拟合fitBERNC=berfit(信噪比,berNC(1,:);fitBERMC=berfit(信噪比,berMC(1,:);符号学(信噪比,fitBERNC,“r”,snr,fitBERMC,“b”);传奇({“无耦合信道”,“带耦合的通道”});
rng(s);%恢复RNG
通过修改相关系数和/或改变元件之间的间距,可以进一步研究相关性和互耦对误码率性能的影响。间距越小,耦合越高。类似于上文针对高相关性(0.9)和高耦合(间距= )在Rx,我们现在显示低相关性(0.1)和/或低耦合(间隔)的BER与SNR结果= ).
高耦合(间距)= ),低相关性(0.1)
低耦合(间距= ),高度相关(0.9)
低耦合(间距= ),低相关性(0.1)
模拟结果与第一篇参考文献中报道的结果相似 在高相关和低相关条件下,对误码率的影响可以忽略不计。对于高耦合的情况,即:。, 结果表明,与未考虑耦合的情况相比,根据相关条件,误码率可能更高或更低。
此示例使用以下帮助器函数:
[1] A.A.Abouda、H.M.El Sallabi和S.G.Haggman,“互耦对Alamouti方案误码率性能的影响,”IEEE天线与传播国际研讨会,2006年7月。
[2] 相互耦合对自适应阵列性能的影响关于天线和传播的IEEE交易31日。5(1983年9月):785-91。https://doi.org/10.1109/TAP.1983.1143128。
[3] Y.Wu,J.P.Linnartz,J.W.M.Bergmans和S.Attallah,“天线互耦对MIMO系统性能的影响,”过程。第29届比荷卢信息理论研讨会,2008年5月。