主要内容

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

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

在示例scattering-based空间通道技术模型空间位置和天线传输/接收模式。更简单的静态平面MIMO信道也提供链接验证目的。

介绍

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

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

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

混合波束形成

混合波束形成(也称为混合预编码)是一种方法,使大规模MIMO天线阵列的使用较低的权力和具有成本效益的方式来1]。在传统的天线阵列,每个天线需要专用射频链传输和接收每个数据流;与混合预编码,每个流需要一个专门的射频链。这大大减少了射频连锁店的数量,从而减少成本和权力。每个链相结合的模拟输出的网络模拟射频增益和相移(模拟射频beamformer表示降维)连接到一个大型天线阵,在天线的数量> >的流。这些模拟单元不能改变权重迅速;然而,计算射频重量随时间变化缓慢,因为他们主要是取决于接收器的空间位置。数字基带预编码权重(表示Fbb)可能改变符号,符号由于小规模的多路径效应,也可以是不同于副载波副载波频率选择衰落的原因。

这个示例使用单用户mimo - ofdm系统的分区或多用户所需的预编码成数字基带和射频发射机一端模拟组件。例子使用了正交匹配追踪算法(OMP) (3单用户系统和关节空间分复用(JSDM)技术(2,4对于多用户系统,确定数字基带Fbb和射频模拟降维预编码权重选择的系统配置。建立在系统中突出显示与相控阵列MIMO-OFDM预编码的例子,这个例子展示了配方的发送端预编码矩阵mimo - ofdm系统和他们的应用程序。

虚拟功能分区使用关节空间分复用

JSDM利用细胞内的空间聚类的用户和组这些集群创建虚拟行业通过射频模拟波束形成这些团体。的空间协方差矩阵组织的空间方向相关组织对基站天线阵列。这些矩阵计算使用测深信号,产生的信道估计和模拟射频梁是来自这些矩阵。这些光束聚焦传输能量各自的组织和团体之间的干扰最小化。

一旦梁形成,数字预编码权重计算和用于使正交化用户在每一个组。这些预编码的重量是基于用户的信道状态信息(CSI)的“有效途径”从射频链的输出(不是天线阵列的输出)。这样beam-based测量5 g系统中完成。

因为模拟射频增益和相移是做天线,这是暗示RF权重应用所有副载波。然而,每副载波数字预编码的重量可能应用。在这个例子中,每个副载波数字预编码适用于权重计算的副载波的CSI。

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

系统参数

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

人口、难民和移民事务局。fc = 28 e9;% 28 GHz系统人口、难民和移民事务局。chanSRate = 100 e6;%通道采样率,100名议员prm.ChanType=“散射”;%通道选择:“散射”,“那”人口、难民和移民事务局。NFig = 8;%噪声图(增加恶化,5 - 10分贝)prm.nRays= 500;%润扬悬索桥的射线,Fbb分区%每个用户有相同的调制人口、难民和移民事务局。bitsPerSubCarrier = 4;% 2:正交相移编码,4:16 qam, 6: 64 qam, 8: 256 qamprm.numDataSymbols= 10;%的OFDM符号的数据%用户创建一个向量,其中每个元素是一个用户和的值%这个元素描述独立数据流的数量。对于一个%单用户情况下,让这一个标量值。prm.numSTSVec= [4 3 2 4 3];%的独立的每个用户的数据流prm.numSTS= sum(prm.numSTSVec);%必须是2的幂人口、难民和移民事务局。numTx = prm.numSTS * 8;% b发射天线的数量(2)的力量

为每个用户分配一个组。用户随机安排在每组的中心。对于一个用户用例,分组不适用的概念,用户随机放置在细胞。

%的小组作业必须在提升活跃用户%的秩序。默认设置匹配上述组织图;有两个%与前三个用户组的用户分配到组的%的最后两个用户分配给第二组。prm.groups= [1 1 1 2 2];%描述哪些用户组

两个JSDM选项可用于模拟。这个选项决定了数字预编码方法计算权重;射频模拟权重计算独立选择的选项。

  • “JGP”:关节空间分复用联合小组处理(JGP)。那流将基于沪深反馈信道估计的所有用户。

  • “PGP”:与每个小组的共同空间分复用处理(PGP)。这是一个特殊情况用户CSI反馈减少到只有发回的CSI流传输到用户的组,从而增加可用带宽是留给CSI的反馈。性能略低于JGP因为预编码只需要在每组的流,并特别敏感的秩信道相对于传输流的数量。

prm.jsdmType=“JGP”;% JSDM选择:“JGP”或“PGP”(多用户模拟)

注意,多输入多输出信号通道选择通过ChanTypeJSDM参数字段将导致次优的性能,因为MIMO信道不是位置感知。如果是使用散射信道,每组添加一个额外的接收器来改善通道组的排名的观察协方差矩阵和支持流被传播给每组的数量。万博1manbetx这些接收器不是积极地接收数据,但被认为是连接到基站作为一组的一部分。

prm.numSTSVecAll = prm.numSTSVec;%的独立的每个用户的数据流人口、难民和移民事务局。numUsers =长度(prm.numSTSVec);%的活跃用户数量人口、难民和移民事务局。numGroups = max (prm.groups);%的组numGroups = prm.numGroups;如果比较字符串(prm.ChanType“散射”)g = 1: numGroups prm.groups (prm.numUsers + g) = g;prm.numSTSVecAll (prm.numUsers + g) = 2;结束结束%定义每个集团范围的中心,方位角、仰角,%假定b是在原点。%角度指定为方位;海拔度%注意:列数必须等于组的数量maxRange = 700;% 700米内的所有MSs BSgroupRanges =兰迪([1 maxRange] 1 numGroups);groupAzimuth = -60 + 60 / (numGroups + 1) +(120 - (120 / (numGroups + 1))) / (numGroups-1) * (0: numGroups-1);groupElevations =兰迪(-10 [10],1 numGroups);%的位置移动单位人口、难民和移民事务局。numConnectedUsers =长度(prm.numSTSVecAll);%连接用户的数量如果人口、难民和移民事务局。numUsers = = 1%为单个用户,用户随机的地方%职位女士:假定BS起源%角度指定为方位;海拔度% az范围内(-180 180),el范围内(-90 90),例如[45;0]人口、难民和移民事务局。mobileRanges =兰迪([1 maxRange] 1 prm.numConnectedUsers);人口、难民和移民事务局。mobileAngles =[兰德(prm.numConnectedUsers) * 360 - 180;兰特(prm.numConnectedUsers) * 180 - 90);其他的%为多个用户,随机分配的用户在他们的地方%组位置人口、难民和移民事务局。mobileRanges = 0 (prm.numConnectedUsers, 1);人口、难民和移民事务局。prm.numConnectedUsers mobileAngles = 0(2日);uIdx = 1: prm.numConnectedUsersg = prm.groups(uIdx); prm.mobileRanges(uIdx) = groupRanges(g) + 30*rand(1); prm.mobileAngles(:,uIdx) =[groupAzimuth (g) + 3 *兰德(1);groupElevations (g) + 3 *兰德(1)];结束结束

定义用于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));人口、难民和移民事务局。numRx = prm.numSTSVecAll;%的接收天线,每个用户连接numSTS = prm.numSTS;numTx = prm.numTx;numRx = prm.numRx;numSTSVec = prm.numSTSVec;numUsers = prm.numUsers;codeRate = 1/3;%每个用户相同的编码速率numTails = 6;%终止尾比特数人口、难民和移民事务局。numFrmBits = numSTSVec。* (prm.numDataSymbols * prm.numCarriers *prm.bitsPerSubCarrier * codeRate) -numTails;人口、难民和移民事务局。modMode = 2 ^ prm.bitsPerSubCarrier;%调制顺序%占通道滤波器延迟numPadSym = 3;%符号数量为零人口、难民和移民事务局。numPadZeros = numPadSym * (prm.FFTLength + prm.CyclicPrefixLength);

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

人口、难民和移民事务局。cLight = physconst (“光速”);人口、难民和移民事务局。λ= prm.cLight / prm.fc;%获得传输和接收阵列的信息prm.numSTSVec= prm.numSTSVecAll;%得到数组为所有连接的用户信息人口、难民和移民事务局。numUsers = prm.numConnectedUsers;[isTxURA, expFactorTx isRxURA expFactorRx] = helperArrayInfo(人口、难民和移民事务局,真实);prm.numSTSVec= numSTSVec;%恢复活跃用户的参数人口、难民和移民事务局。numUsers = numUsers;%传输天线阵的定义%数组的位置和角度人口、难民和移民事务局。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.numConnectedUsers, 1);人口、难民和移民事务局。prm.numConnectedUsers posRx = 0(3日);uIdx = 1: prm.numConnectedUsers%接收阵列如果isRxURA (uIdx)%均匀矩形阵列rxarray = phased.PartitionedArray (“数组”,phased.URA ([expFactorRx (uIdx) numRx (uIdx)],0.5 * prm.lambda),“SubarraySelection”的(numRx (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;%保持相同的阵列配置通道人口、难民和移民事务局。numUsers = prm.numConnectedUsers;%所有连接用户传输声音prm.numSTSVec= prm.numSTSVecAll;%所有连接用户传输声音[rxPreSig, chanDelay] = helperApplyMUChannel(人口、难民和移民事务局,preambleSig spLoss);人口、难民和移民事务局。numUsers = numUsers;prm.numSTSVec= numSTSVec;%信道状态信息反馈黄芪丹参滴丸=细胞(prm.numConnectedUsers, 1);prm.numSTS= numTx;%将numTx估计所有的链接uIdx = 1: prm.numConnectedUsers%前端放大器增益和热噪声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,:),人口、难民和移民事务局);结束prm.numSTS= numSTS;%恢复数据传输人口、难民和移民事务局。numRx = prm.numRx (1: numUsers);%设置numRx活跃用户的数量

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

对于多用户系统,JSDM算法需要计算每组的空间协方差计算射频beamformer权重基于块对角化方法5。信道估计是美联储从每个女士,和BS确定预编码所使用的权重。这个例子假设完美的反馈,没有量化或实现延迟。计算的有效通道的射频beamformer重量和CSI,和数字基带预编码器重量计算。

%计算混合权重在传播方面如果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));其他的%多用户联合空间分复用%得到每个组的流数prm.numSTSGroupVec = zeros(1,numGroups);g = 1: numGroups prm.numSTSGroupVec (g) =总和(prm.numSTSVecAll (prm.groups (1: prm.numUsers) = = g));结束%得到Rg(协方差)%注意,每组只有一个R(不是每个用户)。这是到%调用者来决定如何获得这个自相关矩阵%组织。hcov = helperGetCovariance(黄芪丹参滴丸、人口、难民和移民事务局);%计算模拟beamformer权重Bg = jsdmrfweights (hcov prm.numSTSGroupVec);%包beamformer重量为预编码阵列mFrf =猫(1,Bg {:});%计算为每个用户(预测)的有效信道响应% beamformed测深信号hEff = helperGetHeff (mFrf黄芪丹参滴丸,人口、难民和移民事务局);%的数字(基带)权重Fbb = jsdmbbweights (hEff prm.numSTSGroupVec, Bg);如果比较字符串(prm.jsdmTypePGP的)%包每组CSI (PGP的块对角)成一个矩阵v = 0 (prm.numCarriers总和(numSTSVec)和(numSTSVec));g = 1:人口、难民和移民事务局。numGroups stsIdx =总和(prm.numSTSGroupVec (1: g1)) + (1: prm.numSTSGroupVec (g));v (:, stsIdx stsIdx) = Fbb {g};% Nst-by-Nsts-by-Nsts结束其他的% JGPv = Fbb;结束结束

情节传递数组模式。散射信道,光束的方向应与空间位置的用户息息相关,和光束大小应与流的数量发送那个方向。

%传输数组模式情节图;如果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);结束

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

数据传输

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

%卷积编码器编码器= comm.ConvolutionalEncoder (“TrellisStructure”(133 171 165),poly2trellis(7日),“TerminationMethod”,“终止”);txDataBits =细胞(numUsers, 1);gridData =复杂(0 (prm.numCarriers, prm.numDataSymbols numSTS));uIdx = 1: 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信道进行验证。

散射模型使用一个一跃射线追踪与参数化的散射近似。对于这个示例,散射的数量设置为50。“散射”选项模型周围的散射随机放置在一个球体接收器,类似于纽约市模型(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: numUsers stsU = numSTSVec (uIdx);stsIdx =总和(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] = ofdmEqualize (rxOFDM (numSTS + 1::,:),高清(:,stsIdx:)“算法”,“zf”);%软解调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));%的情节使相等符号流每用户定标器= 2;i = 1: stsU次要情节(numUsers马克斯(numSTSVec), (uIdx-1) *马克斯(numSTSVec) + i);情节(重塑(rxEq (:,:, i) /√(numTx), [], 1),“。”);轴广场甘氨胆酸xlim(、(标量标量));甘氨胆酸ylim(、(标量标量));标题([“U”num2str (uIdx)' G 'num2str (prm.groups (uIdx))”,DS”num2str (i)));网格;结束%计算并显示维生素维生素与= comm.EVM (“归一化”,的平均星座力量”,“ReferenceSignalSource”,“估计从参考星座”,“ReferenceConstellation”,qammod ((0: prm.modMode-1)、prm.modMode“UnitAveragePower”1));rmsEVM =维生素(rxSymbs);disp ([“用户”num2str (uIdx)“(集团”num2str (prm.groups (uIdx))“)”]);disp ([“RMS维生素(%)= 'num2str (rmsEVM)]);%计算和显示比特误码率数量= comm.ErrorRate;措施=误码率(txDataBits {uIdx}, rxBits);流(的误码率= % .5f;不。比特= % d;不。错误= % d \ n ',(1),(3)措施的人,措施(2));结束
用户1(组1)RMS维生素(%)= 0.00052493比特= 0.00000;不。比特= 12474;不。用户错误= 0 2(组1)RMS维生素(%)= 0.00052455比特= 0.00000;不。比特= 9354;不。用户错误= 0 3(组1)RMS维生素(%)= 0.00069415比特= 0.00000;不。 of Bits = 6234; No. of errors = 0 User 4 (Group 2) RMS EVM (%) = 0.00079507 BER = 0.00000; No. of Bits = 12474; No. of errors = 0 User 5 (Group 2) RMS EVM (%) = 0.00055637 BER = 0.00000; No. of Bits = 9354; No. of errors = 0

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

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

结论和进一步勘探

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

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

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

  • 渠道类型,prm.ChanType,或

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

  • JSDM反馈类型,prm.jsdmType集团的位置,groupAnglesgroupRanges用于多用户系统。

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

看到JSDM 5 g通信系统中使用,看到TDD Reciprocity-Based PDSCH MU-MIMO使用SRS(5 g工具箱)的例子。

引用

  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.