这个例子展示了天线互耦如何影响在多输入多输出(MIMO)信道上正交空时分组码(OSTBC)传输的性能。发射机和接收机各有两个偶极子天线元件。绘制了不同相关和耦合情况下的误码率与信噪比曲线。要运行此示例,您需要Antenna Toolbox™。
在2x2准静态平坦瑞利信道上模拟QPSK调制的Alamouti OSTBC [[1]].该系统在2.4 GHz下工作。模拟的信噪比范围为0至10 dB。
fc=2.4e9;%中心频率元= 2;% Tx天线数Nr = 2;% Rx天线数blkLen = 2;%Alamouti码块长度信噪比= 0:10;%信噪比范围maxNumErrs = 3 e2;%最大错误数maxNumBits=5e4;%最大位数
创建用于执行QPSK调制和解调、Alamouti编码和组合、AWGN信道以及BER计算的对象。
qpskMod=通信qpskMod调制器;QPSK解调器=通信QPSK解调器;Alamoutience=comm.ostbc编码器(...“NumTransmitAntennas”,新界);alamoutiDec=通信OSTBCCombiner(...“NumTransmitAntennas”元,...“numreceiveantens”、Nr);awgnChanNC = comm.AWGNChannel (...%对于无联轴器的情况“噪音法”,'信噪比(SNR)',...“信号电源”, 1); berCalcNC=通信错误率;%对于无联轴器的情况%为互耦合情况克隆对象awgnChanMC=克隆(awgnChanNC);berCalcMC=克隆(berCalcNC);
发射(Tx)和接收(Rx)侧均使用两元件谐振偶极子阵列。在Tx时,偶极子间隔半个波长。在Rx,间距是波长的十分之一。
TXSPACE=0.5;RXSPACGE=0.1;lambda=physconst(“光速”)/fc;前元素=偶极子(...“长度”,lambda/2,...“宽度”,λ/100);txArray=linearray(...“元素”,安特莱恩,...“NumElements”元,...“元素间距”,TXSPACE*λ);rxArray=线性阵列(...“元素”,安特莱恩,...“NumElements”,Nr,...“元素间距”rxSpacing *λ);
耦合矩阵根据阵列的电路模型计算,按[[2]].对发射和接收阵列进行s参数计算,并由此导出阵列的阻抗矩阵表示。
txMCMtx = helperCalculateCouplingMatrix(txArray, fc, [1 Nt]);rxMCMtx = helperCalculateCouplingMatrix(rxArray, fc, [1 Nr]);
发射和接收空间相关矩阵捕获信道的传播环境。在没有耦合的情况下,假设Tx处的两个元素是不相关的,而Rx处的两个元素具有较高的相关性。整个通道的组合/整体相关矩阵是它们的克罗内克乘积。
txCorrMtx =眼(2);rxCorrMtx = [1 0.9;0.9 - 1];combCorrMtx = kron(txCorrMtx, rxCorrMtx);
对于耦合,我们在[[3]将Tx和Rx相关矩阵前后乘以相应的耦合矩阵,从而对其进行修正。在相关性和耦合可以独立建模的假设下,这是有效的。
txMCCorrMtx=txMCMtx*txCorrMtx*txMCMtx';rxmcccorrmtx=rxMCMtx*rxCorrMtx*rxMCMtx';
空间相关性与耦合的组合为克隆亚麻(txMCCorr 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码模拟。每次迭代都通过MIMO信道模拟一个Alamouti码。为了模拟准静态通道,我们重置通信信道
对象为每次代码传输(迭代)获取一组新的信道增益。
%设置图形以可视化BER结果h1 =图;网格在…上;持有在…上;ax=gca;ax.YScale=“日志”;xlim([snr(1),snr(end)];ylim([1e-31]);xlabel(“信噪比(dB)”); 伊拉贝尔(“伯尔”);h1。NumberTitle =“关闭”;h1。Name =正交空时分组编码; h1.渲染器=“兹布弗”; 头衔(“Alamouti编码2x2系统-高耦合、高相关性”);s = rng (108);%重复性[berNC,berMC]=交易(零(3,长度(snr));%环路覆盖信噪比值对于idx = 1:长度(snr)信噪比=信噪比(idx);awgnChanMC。信噪比=信噪比(idx);重置(berCalcNC);重置(berCalcMC);而最小值(berNC(2,idx),berMC(2,idx))<=maxnumers&(berNC(3,idx)<=maxNumBits)生成随机数据txData = randi([0 3], blkLen, 1);%执行QPSK调制和Alamouti编码txSig = alamoutiEnc (qpskMod (txData));%直通MIMO信道重置(mimoChanNC);重置(mimoChanMC);[chanOutNC,estChanNC]=mimoChanNC(txSig);[chanOutMC,estChanMC]=mimoChanMC(txSig);%添加AWGNrxSigNC = awgnChanNC (chanOutNC);rxSigMC = awgnChanMC (chanOutMC);%使用已知信道状态信息执行Alamouti解码decSigNC=alamoutiDec(rxSigNC,挤压(estChanNC));decSigMC=alamoutiDec(rxSigMC,挤压(estChanMC));%执行QPSK解调rxDataNC=qpskdemodm(decSigNC);rxDataMC=qpskdemm(decSigMC);%更新误码率berNC(:,idx)=berCalcNC(txData,rxDataNC);berMC(:,idx)=berCalcMC(txData,rxDataMC);结束%绘图结果semilogy(信噪比(1:idx), berNC (1,1: idx),的r *); 符号学(snr(1:idx),berMC(1,1:idx),“波”);传奇({“无耦合信道”,“带耦合的通道”});drawnow;结束%进行曲线拟合fitBERNC = berfit(snr, berNC(1,:));fitBERMC = berfit(信噪比,berMC(1,:));fitBERNC semilogy(信噪比,“r”、信噪比、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 - salabi, S. G. Haggman,“互耦对Alamouti方案误码性能的影响”,天线与传播国际研讨会,2006年7月。
[2] 相互耦合对自适应阵列性能的影响关于天线和传播的IEEE交易第5号,第31页(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月。