主要内容

大规模分布式天线混合波束形成

这个例子展示了如何混合波束形成技术在传输端大规模的MIMO通信系统,使用单用户和多用户系统的技术。示例使用全频道测深确定发射机的信道状态信息。它分区所需的预编码成数字基带和模拟射频组件,对多用户使用不同的技术和单用户系统。简化的全数字接收机恢复多个数据流传输突出优点的常见的数字通信系统,即维生素、误码率。

这个示例使用一个scattering-based空间信道模型占空间位置和天线传输/接收模式。更简单的静态平面MIMO信道也提供链接验证目的。

示例需要通信工具箱™和相控阵系统工具箱™。

介绍

日益增长的对高数据速率和更多的用户容量的需求增加了需要更有效地使用可用的频谱。多用户MIMO (MU-MIMO)提高了频谱效率,允许一个基站(BS)发射机通信同时与多个移动台(MS)接收器使用相同的时频资源。大规模分布式天线允许BS天线元素的数量成千上百的顺序,从而也增加了数据流的数量在一个细胞一个较大的值。

5克,下一代无线系统使用毫米波(mmWave)乐队利用其广泛的带宽。5 g系统也部署大规模天线阵列mmWave乐队来缓解严重的传播损耗。

当前无线系统相比,mmWave乐队的波长小得多。虽然这让数组包含更多的元素在同一个物理维度,变得更昂贵的提供一个收发两用(TR)模块,或一个射频链,为每个天线元素。混合收发器是一种实用的解决方案,因为他们结合使用的模拟beamformers射频和基带数字beamformers域,用更少的射频链比传输元素的数量1]。

这个示例使用mimo - ofdm系统多用户强调分区所需的预编码成数字基带和射频发射机一端模拟组件。建立在系统中突出显示与相控阵列MIMO-OFDM预编码的例子,这个例子展示了配方的发送端预编码矩阵mimo - ofdm系统和他们的应用程序。

s = rng (67);%设置RNG状态可重复性

系统参数

定义系统参数的例子。修改这些参数来探索它们对系统的影响。

%多用户系统,每个用户的单/多流prm.numUsers= 4;%的用户数量prm.numSTSVec= [3 2 1 2];%的独立的每个用户的数据流prm.numSTS= sum(prm.numSTSVec);%必须是2的幂人口、难民和移民事务局。numTx = prm.numSTS * 8;% b发射天线的数量(2)的力量人口、难民和移民事务局。numRx = prm.numSTSVec * 4;%的接收天线,每个用户(> = numSTSVec)%每个用户有相同的调制人口、难民和移民事务局。bitsPerSubCarrier = 4;% 2:正交相移编码,4:16 qam, 6: 64 qam, 8: 256 qamprm.numDataSymbols= 10;%的OFDM符号的数据%职位女士:假定BS起源%角度指定为方位;海拔度% az范围内(-180 180),el范围内(-90 90),例如[45;0]maxRange = 1000;% 1000米内的所有MSs BS人口、难民和移民事务局。mobileRanges =兰迪([1 maxRange] 1 prm.numUsers);人口、难民和移民事务局。mobileAngles =[兰德(prm.numUsers) * 360 - 180;兰特(prm.numUsers) * 180 - 90);人口、难民和移民事务局。fc = 28 e9;% 28 GHz系统人口、难民和移民事务局。chanSRate = 100 e6;%通道采样率,100名议员prm.ChanType=“散射”;%通道选择:“散射”,“那”人口、难民和移民事务局。NFig = 8;%噪声图(增加恶化,5 - 10分贝)prm.nRays= 500;%润扬悬索桥的射线,Fbb分区

定义用于OFDM调制参数系统。

人口、难民和移民事务局。FFTLength = 256;人口、难民和移民事务局。CyclicPrefixLength = 64;人口、难民和移民事务局。numCarriers = 234;人口、难民和移民事务局。NullCarrierIndices = [1:7 129 256 - 5:256];%警卫和直流人口、难民和移民事务局。PilotCarrierIndices = (26 54 90 118 140 168 204 232) ';nonDataIdx = [prm.NullCarrierIndices;prm.PilotCarrierIndices];人口、难民和移民事务局。CarriersLocations = setdiff ((1: prm.FFTLength),排序(nonDataIdx));numSTS = prm.numSTS;numTx = prm.numTx;numRx = prm.numRx;numSTSVec = prm.numSTSVec; codeRate = 1/3;%每个用户相同的编码速率numTails = 6;%终止尾比特数人口、难民和移民事务局。numFrmBits = numSTSVec。* (prm.numDataSymbols * prm.numCarriers *prm.bitsPerSubCarrier * codeRate) -numTails;人口、难民和移民事务局。modMode = 2 ^ prm.bitsPerSubCarrier;%调制顺序%占通道滤波器延迟numPadSym = 3;% zeropad符号数人口、难民和移民事务局。numPadZeros = numPadSym * (prm.FFTLength + prm.CyclicPrefixLength);

定义传输和接收数组和位置参数的系统。

人口、难民和移民事务局。cLight = physconst (“光速”);人口、难民和移民事务局。λ= prm.cLight / prm.fc;%获得传输和接收阵列的信息[isTxURA, expFactorTx isRxURA expFactorRx] = helperArrayInfo(人口、难民和移民事务局,真实);%传输天线阵的定义%数组的位置和角度人口、难民和移民事务局。posTx = (0, 0, 0);% b /传送阵的位置,[x, y, z],米如果isTxURA%均匀矩形阵列txarray = phased.PartitionedArray (“数组”,分阶段。([expFactorTx numSTS], 0.5 * prm.lambda),“SubarraySelection”的(numSTS numTx),“SubarraySteering”,“自定义”);其他的%均匀线性阵列txarray = phased.ULA (numTx,“ElementSpacing”0.5 * prm.lambda“元素”phased.IsotropicAntennaElement (“BackBaffled”、假));结束人口、难民和移民事务局。posTxElem = getElementPosition (txarray) / prm.lambda;spLoss = 0 (prm.numUsers, 1);人口、难民和移民事务局。prm.numUsers posRx = 0(3日);uIdx = 1: prm.numUsers%接收阵列如果isRxURA (uIdx)%均匀矩形阵列rxarray = phased.PartitionedArray (“数组”,phased.URA ([expFactorRx (uIdx) numSTSVec (uIdx)],0.5 * prm.lambda),“SubarraySelection”的(numSTSVec (uIdx),numRx (uIdx)),“SubarraySteering”,“自定义”);人口、难民和移民事务局。posRxElem = getElementPosition (rxarray) / prm.lambda;其他的如果numRx (uIdx) > 1%均匀线性阵列rxarray = phased.ULA (numRx (uIdx),“ElementSpacing”0.5 * prm.lambda“元素”,phased.IsotropicAntennaElement);人口、难民和移民事务局。posRxElem = getElementPosition (rxarray) / prm.lambda;其他的rxarray = phased.IsotropicAntennaElement;人口、难民和移民事务局。posRxElem = [0;0;0);% LCS结束结束%移动位置(xRx yRx zRx] = sph2cart(函数(prm.mobileAngles (uIdx)),uIdx函数(prm.mobileAngles (2)),prm.mobileRanges (uIdx));prm.posRx (:, uIdx) = (xRx; yRx zRx);[toRxRange, toRxAng] = rangeangle (prm.posTx prm.posRx (:, uIdx));spLoss (uIdx) = fspl (toRxRange prm.lambda);结束

信道状态信息

空间多路复用系统,信道信息的可用性在发射机允许预编码应用到信号能量最大化的方向和通道。慢变信道的假设下,这是通过首先探测通道。的废话声音通道通过使用引用传递,估计信道接收器女士使用。传输信道估计信息女士回BS的计算所需的预编码随后的数据传输。

下面的示意图显示了处理信道建模。

的MIMO系统,选择一个序言信号发送所有发射天线元素,在接收和处理会计的通道。接收机天线元素执行pre-amplification, OFDM解调,频域信道估计所有链接。

%生成序言的信号prm.numSTS= numTx;%将numTx试探所有频道preambleSig = helperGenPreamble(人口、难民和移民事务局);%在信道传输中prm.numSTS= numSTS;%保持相同的阵列配置通道[rxPreSig, chanDelay] = helperApplyMUChannel(人口、难民和移民事务局,preambleSig spLoss);%信道状态信息反馈黄芪丹参滴丸=细胞(prm.numUsers, 1);prm.numSTS= numTx;%将numTx估计所有的链接uIdx = 1: prm.numUsers%前端放大器增益和热噪声rxPreAmp = phased.ReceiverPreamp (“获得”spLoss (uIdx),%占路径损耗“NoiseFigure”prm.NFig,“ReferenceTemperature”,290,“SampleRate”,prm.chanSRate);rxPreSigAmp = rxPreAmp (rxPreSig {uIdx});%规模分载体最终再使用rxPreSigAmp = rxPreSigAmp *(√6(人口、难民和移民事务局。FFTLength -长度(prm.NullCarrierIndices)) / prm.FFTLength);% OFDM解调rxOFDM = ofdmdemod (rxPreSigAmp (chanDelay (uIdx) + 1:结束(prm.numPadZeros-chanDelay (uIdx)):), prm.FFTLength,prm.CyclicPrefixLength prm.CyclicPrefixLength,prm.NullCarrierIndices prm.PilotCarrierIndices);从序言%信道估计% numCarr, numTx numRx黄芪丹参滴丸{uIdx} = helperMIMOChannelEstimate (rxOFDM (:, 1: numTx,:),人口、难民和移民事务局);结束

对于多用户系统,信道估计是美联储从每个女士,和BS确定预编码所使用的权重。这个例子假设完美的反馈,没有量化或实现延迟。

混合波束形成

例子使用了正交匹配追踪算法(OMP) (3单用户系统和关节空间分复用(JSDM)技术(2,4对于多用户系统,确定数字基带Fbb和射频模拟降维预编码权重选择的系统配置。

对于单用户系统,OMP分区算法敏感阵列响应矢量。理想情况下,这些响应向量占所有散射被英吉利海峡,但这些都是实际系统和通道实现未知,所以三维空间内的一组随机射线覆盖尽可能多的散射。的prm.nRays参数指定数量的射线。

对于多用户系统,JSDM集团用户提供类似的传输信道协方差在一起,抑制了部落之间的干扰的模拟预编码器基于块对角化方法(5]。每个用户分配是在自己的群体,从而导致没有减少探测或反馈开销。

%计算混合权重在传播方面如果prm.numUsers = = 1%单用户OMP%传播射线在[az; el] = [180:180; 90:90] 3 d空间,间距相等% txang = [180:360 / prm.nRays: 180;90:180 / prm.nRays: 90);txang =[兰德(prm.nRays) * 360 - 180;兰德(prm.nRays) * 180 - 90);%随机在= steervec (prm.posTxElem txang);AtExp =复杂(0 (prm.numCarriers、尺寸(,1),大小(,2)));carrIdx = 1:人口、难民和移民事务局。numCarriers AtExp (carrIdx,:,) =;%对所有分载体最终再相同结束%正交匹配追踪混合权重润扬悬索桥(Fbb) = omphybweights(黄芪丹参滴丸{1},numSTS, numSTS, AtExp);v = Fbb;%设置基带预编码器(Fbb)%降维平也是在副载波通道润扬悬索桥mFrf =排列(意思是(1),(2 3 1));其他的%多用户联合空间分复用(Fbb mFrf] = helperJSDMTransmitWeights(黄芪丹参滴丸,人口、难民和移民事务局);%多用户基带预编码%把每个用户CSI成一个矩阵(块对角)steeringMatrix = 0 (prm.numCarriers总和(numSTSVec)和(numSTSVec));uIdx = 1: prm.numUsersstsIdx = sum(numSTSVec(1:uIdx-1))+(1:numSTSVec(uIdx)); steeringMatrix(:,stsIdx,stsIdx) = Fbb{uIdx};% Nst-by-Nsts-by-Nsts结束v =排列(steeringMatrix [1 3 2]);结束%传输数组模式情节如果isTxURA% URA所言元素响应第一副载波模式(txarray、prm.fc 180:180 90:90,“类型”,“efield”,“ElementWeights”,mFrf。*挤压(v (1::)),“PropagationSpeed”,prm.cLight);其他的%齿龈%阵列响应第一副载波wts = mFrf。”*挤压(v (1::));模式(txarray、prm.fc 180:180 90:90,“类型”,“efield”,“重量”出世(:1),“PropagationSpeed”,prm.cLight);结束prm.numSTS= numSTS;%恢复数据传输

对于宽带OFDM系统建模,模拟权重,mFrf多个副载波的平均重量。阵列响应模式显示不同的数据流由叶越强。这些叶表明扩散或分离性通过波束形成。的介绍混合波束形成例子比较了模式实现了最优,全数字的方法,与那些意识到从选中的混合方法,对于一个单用户系统。

数据传输

示例模型架构,每个数据流映射到单个射频链和每个天线元素连接到每个射频链。这是下图所示。

接下来,我们配置系统的数据发射机。这个处理包括信道编码、比特映射到复杂的符号,将个人的数据流到多个传输流,基带预编码的传输流,与飞行员映射和OFDM调制射频模拟所有发射天线的波束形成。

%卷积编码器编码器= comm.ConvolutionalEncoder (“TrellisStructure”(133 171 165),poly2trellis(7日),“TerminationMethod”,“终止”);txDataBits =细胞(人口、难民和移民事务局。numUsers, 1);gridData =复杂(0 (prm.numCarriers, prm.numDataSymbols numSTS));uIdx = 1: prm.numUsers%每个用户生成映射的符号位txDataBits {uIdx} =兰迪([0,1],prm.numFrmBits (uIdx), 1);encodedBits =编码器(txDataBits {uIdx});% QAM符号映射mappedSym = qammod (encodedBits prm.modMode,“InputType”,“一点”,“UnitAveragePower”,真正的);%地图层:每个用户、每个符号,每个数据流stsIdx =总和(numSTSVec (1: (uIdx-1))) + (1: numSTSVec (uIdx));gridData (:,:, stsIdx) =重塑(mappedSym prm.numCarriers,prm.numDataSymbols numSTSVec (uIdx));结束%预编码权重应用于副载波,假设完美的反馈preData =复杂(0 (prm.numCarriers, prm.numDataSymbols numSTS));symIdx = 1: prm.numDataSymbolscarrIdx = 1:人口、难民和移民事务局。numCarriers Q =挤压(v (carrIdx,:,:));normQ = Q *√numTx /规范(Q,“摇来摇去”);preData (carrIdx symIdx:) =挤压(gridData (carrIdx、symIdx:))。* normQ;结束结束% Multi-antenna飞行员飞行员= helperGenPilots (prm.numDataSymbols numSTS);%的OFDM调制数据txOFDM = ofdmmod (preData prm.FFTLength prm.CyclicPrefixLength,prm.NullCarrierIndices prm.PilotCarrierIndices,飞行员);%规模分载体最终再使用txOFDM = txOFDM * (prm.FFTLength /√(prm.FFTLength-length prm.NullCarrierIndices))));%生成序言与反馈数据重量和预谋preambleSigD = helperGenPreamble(人口、难民和移民事务局,v);txSigSTS = [preambleSigD; txOFDM];%射频波束形成:有效应用到数字信号%每个天线元素连接到每个数据流txSig = txSigSTS * mFrf;

选择,完全连接射频架构,每个天线元素使用prm.numSTS相移,由单个的列mFrf矩阵。

数据传输和接收的处理建模如下所示。

信号传播

空间MIMO信道的例子提供了一个选择,一个简单的静态平面MIMO信道进行验证。

散射模型使用一个一跃射线追踪与参数化的散射近似。对于这个示例,散射的数量设置为100。“散射”选项模型周围的散射随机放置在一个球体接收器,类似于纽约市模型(6]。

信道模型允许路径损耗建模和视距(LOS)和non-LOS传播条件。这个例子假设non-LOS传播模式与线性和各向同性天线元素或矩形几何。

%定义的空间通道适用于传输信号[rxSig, chanDelay] = helperApplyMUChannel(人口、难民和移民事务局,txSig spLoss, preambleSig);

相同的通道用于探测和数据传输。数据传输时间较长,由数据符号的数量控制参数,prm.numDataSymbols。测深和传输之间的通道演化阶段建模通过将序言信号的数据信号。序言质数通道数据传输的有效状态,并从通道的输出被忽略。

对于多用户系统,每个用户独立通道建模。

接收放大和信号恢复

接收者每用户建模补偿放大的路径损耗,增加了热噪声。如发射机、接收机MIMO - OFDM系统包含许多阶段包括用于OFDM解调,MIMO均衡,QAM demapping,和信道解码。

hfig =图(“名字”,“每流平衡的星座象征”);scFact = ((prm.FFTLength-length (prm.NullCarrierIndices))/ prm.FFTLength ^ 2) / numTx;据nVar = noisepow (prm.chanSRate prm.NFig 290) / scFact;解码器= comm.ViterbiDecoder (“InputFormat”,“Unquantized”,“TrellisStructure”(133 171 165),poly2trellis(7日),“TerminationMethod”,“终止”,“OutputDataType”,“双”);uIdx = 1: prm.numUsersstsU = numSTSVec(uIdx); stsIdx = sum(numSTSVec(1:(uIdx-1)))+(1:stsU);%前端放大器增益和热噪声rxPreAmp = phased.ReceiverPreamp (“获得”spLoss (uIdx),%占路径损耗“NoiseFigure”prm.NFig,“ReferenceTemperature”,290,“SampleRate”,prm.chanSRate);rxSigAmp = rxPreAmp (rxSig {uIdx});%规模分载体最终再占领rxSigAmp = rxSigAmp * (√prm.FFTLength-length (prm.NullCarrierIndices))/ prm.FFTLength);% OFDM解调rxOFDM = ofdmdemod (rxSigAmp (chanDelay (uIdx) + 1:结束(prm.numPadZeros-chanDelay (uIdx)):), prm.FFTLength,prm.CyclicPrefixLength prm.CyclicPrefixLength,prm.NullCarrierIndices prm.PilotCarrierIndices);%从映射中信道估计高清= helperMIMOChannelEstimate (rxOFDM (: 1: numSTS,:),人口、难民和移民事务局);%分配均衡%指数为感兴趣的用户流[rxEq, CSI] = helperMIMOEqualize (rxOFDM (numSTS + 1::,:),高清(:,stsIdx:));%软解调rxSymbs = rxEq:) /√(numTx);rxLLRBits = qamdemod (rxSymbs prm.modMode,“UnitAveragePower”,真的,“OutputType”,“approxllr”,“NoiseVariance”据nVar);% CSI解码之前申请rxLLRtmp =重塑(rxLLRBits prm.bitsPerSubCarrier, [],prm.numDataSymbols stsU);csitmp =重塑(CSI 1 [], 1, numSTSVec (uIdx));rxScaledLLR = rxLLRtmp。* csitmp;%输入信道解码rxDecoded =解码器(rxScaledLLR (:));%解码得到位rxBits = rxDecoded (1: prm.numFrmBits (uIdx));%的情节使相等符号流每用户定标器=装天花板(max (abs([真实(rxSymbs (:));图像放大(rxSymbs (:))))));i = 1: stsU次要情节(人口、难民和移民事务局。numUsers马克斯(numSTSVec), (uIdx-1) *马克斯(numSTSVec) + i);情节(重塑(rxEq (:,:, i) /√(numTx), [], 1),“。”);轴广场甘氨胆酸xlim(、(标量标量));甘氨胆酸ylim(、(标量标量));标题([“U”num2str (uIdx)”,DS”num2str (i)));网格;结束%计算并显示维生素维生素与= comm.EVM (“归一化”,的平均星座力量”,“ReferenceSignalSource”,“估计从参考星座”,“ReferenceConstellation”,qammod ((0: prm.modMode-1)、prm.modMode“UnitAveragePower”1));rmsEVM =维生素(rxSymbs);disp ([“用户”num2str (uIdx)]);disp ([“RMS维生素(%)= 'num2str (rmsEVM)]);%计算和显示比特误码率数量= comm.ErrorRate;措施=误码率(txDataBits {uIdx}, rxBits);流(的误码率= % .5f;不。比特= % d;不。错误= % d \ n ',(1),(3)措施的人,措施(2));结束
用户1 RMS维生素(%)= 0.38361比特= 0.00000;不。比特= 9354;不。错误= 0用户2 RMS维生素(%)= 1.0311比特= 0.00000;不。比特= 6234;不。用户错误= 0 3 RMS维生素(%)= 2.1462比特= 0.00000;不。 of Bits = 3114; No. of errors = 0 User 4 RMS EVM (%) = 1.0024 BER = 0.00000; No. of Bits = 6234; No. of errors = 0

分布式天线系统建模,显示接收的星座符号提供了定性评估扳平了接待。实际的比特误码率提供了量化图通过比较实际的传输比特与接收解码位/用户。

rng(年代);%恢复RNG状态

结论和进一步勘探

这个例子强调混合波束形成对mimo - ofdm系统多用户的使用。它允许您去探索不同的系统配置各种信道模型通过改变一些系统级的参数。

可配置的参数集包括用户的数量,每个用户的数据流数量,数量的传输/接收天线元素,数组位置和通道模型。调整这些参数可以研究参数的个人或组合对整个系统的影响。为例,不同:

  • 用户的数量,prm.numUsers相应的数据流,prm.numSTSVec多用户之间切换和单用户系统,或

  • 渠道类型,prm.ChanType,或

  • 射线的数量,prm.nRays,用于单用户系统。

探索以下辅助函数使用的例子:

引用

  1. 莫氏利施,a F。,等。“混合了大量的波束形成算法:一项调查。”IEEE® Communications Magazine, Vol. 55, No. 9, September 2017, pp. 134-141.

  2. 李Z。,S. Han, and A. F. Molisch. "Hybrid Beamforming Design for Millimeter-Wave Multi-User Massive MIMO Downlink." IEEE ICC 2016, Signal Processing for Communications Symposium.

  3. El Ayach Oma, et al。“空间稀疏在毫米波MIMO系统预编码。”IEEE Transactions on Wireless Communications, Vol. 13, No. 3, March 2014, pp. 1499-1513.

  4. Adhikary。,J. Nam, J-Y Ahn, and G. Caire. "Joint Spatial Division and Multiplexing - The Large-Scale Array Regime." IEEE Transactions on Information Theory, Vol. 59, No. 10, October 2013, pp. 6441-6463.

  5. 斯宾塞问。,A. Swindlehurst, M. Haardt, "Zero-Forcing Methods for Downlink Spatial Multiplexing in Multiuser MIMO Channels." IEEE Transactions on Signal Processing, Vol. 52, No. 2, February 2004, pp. 461-471.

  6. 水,d S。,G. J. Foschini, M. J. Gans and J. M. Kahn. "Fading Correlation and its Effect on the Capacity of Multielement Antenna Systems." IEEE Transactions on Communications, Vol. 48, No. 3, March 2000, pp. 502-513.