主要内容

与相控阵列MIMO-OFDM预编码

这个例子展示了如何使用相控阵mimo - ofdm通信系统中采用波束形成。使用组件的通信工具箱™和相控阵系统工具箱™,它模型辐射元素组成一个发射机和接收机前端组件,mimo - ofdm通信系统的。使用指定的参数,您可以验证系统的性能的比特误码率和星座不同的空间位置和数组大小。

的例子使用函数和系统对象™通信工具箱和相控阵系统工具箱和需要

  • 赢家二通道模型通信工具箱

介绍

MIMO-OFDM系统是当前无线系统的规范(例如5 g NR, LTE, WLAN)由于其鲁棒性频率选择渠道和高数据率启用。与不断增长的需求支持的数据速率,这些系统越来越复杂和大与越来越多的天线配置元素,和资源万博1manbetx分配(副载波)。

与天线阵列和空间复用,高效的技术实现传输是必要的(6]。波束形成就是这样一种技术,用来提高信噪比(信噪比),最终提高了系统性能,在衡量的比特误码率(BER) [1]。

mimo - ofdm单用户系统,这个例子说明了非对称天线元素的最大数量在收发两端可以分别是1024和32个,16个独立的数据流。模型的空间通道数组位置和天线模式纳入整个系统设计。为简单起见,一个单一的点对点的链接(一个基站与移动用户)建模。发射机使用通道探测提供的链接与波束形成的通道信息需求。

定义的例子提供了几个空间的选择通道模型,特别是赢家II通道模型和scattering-based模型,这两个占空间位置和天线传输/接收模式。

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

系统参数

定义参数的系统。这些参数可以修改探索它们对系统的影响。

%多流单用户系统人口、难民和移民事务局。numUsers = 1;%的用户数量人口、难民和移民事务局。numSTS = 16;%的独立的数据流,4/8/16/32/64人口、难民和移民事务局。numTx = 32;%的发送天线数量人口、难民和移民事务局。numRx = 16;%的接收天线人口、难民和移民事务局。bitsPerSubCarrier = 6;% 2:正交相移编码,4:16 qam, 6: 64 qam, 8: 256 qamprm.numDataSymbols= 10;%的OFDM符号的数据人口、难民和移民事务局。fc = 4 e9;% 4 GHz系统人口、难民和移民事务局。chanSRate = 100 e6;%通道采样率,100名议员人口、难民和移民事务局。ChanType =“散射”;%通道选择:“赢家”,“散射”,%’ScatteringFcn”、“StaticFlat”人口、难民和移民事务局。NFig = 5;%噪声图,dB%数组的位置和角度人口、难民和移民事务局。posTx = (0, 0, 0);% b /传送阵的位置,[x, y, z],米人口、难民和移民事务局。mobileRange = 300;%米%角度指定为方位;海拔,az = (-90 90), el = (-90 90)人口、难民和移民事务局。mobileAngle = [33;0);%度人口、难民和移民事务局。steeringAngle = [30;-20);%传播转向角(接近mobileAngle)人口、难民和移民事务局。enSteering = true;%启用/禁用操舵

参数定义了OFDM调制系统用于指定如下。

人口、难民和移民事务局。FFTLength = 256;人口、难民和移民事务局。CyclicPrefixLength = 64;人口、难民和移民事务局。numCarriers = 234;人口、难民和移民事务局。NumGuardBandCarriers = 6 [7];人口、难民和移民事务局。PilotCarrierIndices = (26 54 90 118 140 168 204 232); nonDataIdx = [(1:prm.NumGuardBandCarriers(1))'; prm.FFTLength/2+1;(prm.FFTLength-prm.NumGuardBandCarriers (2) + 1: prm.FFTLength) ';prm.PilotCarrierIndices。');人口、难民和移民事务局。CarriersLocations = setdiff ((1: prm.FFTLength),排序(nonDataIdx));numTx = prm.numTx;numRx = prm.numRx;numSTS = prm.numSTS;人口、难民和移民事务局。numFrmBits = numSTS * prm.numDataSymbols * prm.numCarriers *prm.bitsPerSubCarrier * 1/3-6;%占终止位人口、难民和移民事务局。modMode = 2 ^ prm.bitsPerSubCarrier;%调制顺序%占通道滤波器延迟人口、难民和移民事务局。numPadZeros = 3 * (prm.FFTLength + prm.CyclicPrefixLength);%获得传输和接收阵列的信息人口、难民和移民事务局。numSTSVec = numSTS;[isTxURA, expFactorTx isRxURA expFactorRx] = helperArrayInfo(人口、难民和移民事务局,真实);

处理通道探测、数据传输和接收建模示例中所示下面的方框图。

自由空间路径损耗计算基于基站和移动台位置spatially-aware系统建模。

人口、难民和移民事务局。cLight = physconst (“光速”);人口、难民和移民事务局。λ= prm.cLight / prm.fc;%移动位置(xRx yRx zRx] = sph2cart(函数(prm.mobileAngle (1)),函数prm.mobileAngle (2)), prm.mobileRange);人口、难民和移民事务局。posRx = (xRx; yRx; zRx);[toRxRange, toRxAng] = rangeangle (prm.posTx prm.posRx);spLoss = fspl (toRxRange prm.lambda);gainFactor = 1;

通道测深

空间多路复用系统,信道信息的可用性在发射机允许预编码应用到信号能量最大化的方向和通道。慢变信道的假设下,这是通过首先探测通道,在参考传输,接收方估计通道和提要信息回发射机。

选择系统,序言信号发送所有发射天线元素,在接收和处理会计的通道。OFDM解调接收机组件执行pre-amplification,频域信道估计,计算反馈权重基于对角化频道使用奇异值分解(圣)副载波的数据。

%生成序言的信号preambleSigSTS = helperGenPreamble(人口、难民和移民事务局);%在numTx重复preambleSig = 0(大小(preambleSigSTS, 1), numTx);i = 1: numSTS preambleSig(:,(张)* expFactorTx + (1: expFactorTx)) =repmat (preambleSigSTS(:,我),1,expFactorTx);结束%在信道传输中[rxPreSig, chanDelay] = helperApplyChannel(人口、难民和移民事务局,preambleSig spLoss);%前端放大器增益和热噪声rxPreAmp = phased.ReceiverPreamp (“获得”,gainFactor * spLoss,%占路径损耗“NoiseFigure”prm.NFig,“ReferenceTemperature”,290,“SampleRate”,prm.chanSRate);rxPreSigAmp = rxPreAmp (rxPreSig);rxPreSigAmp = rxPreSigAmp *%规模实力(√prm.FFTLength-sum prm.NumGuardBandCarriers) 1) / (prm.FFTLength));% OFDM解调demodulatorOFDM = comm.OFDMDemodulator (“FFTLength”prm.FFTLength,“NumGuardBandCarriers”prm.NumGuardBandCarriers。’,“RemoveDCCarrier”,真的,“PilotOutputPort”,真的,“PilotCarrierIndices”prm.PilotCarrierIndices。’,“CyclicPrefixLength”prm.CyclicPrefixLength,“NumSymbols”numSTS,%序言单独符号“NumReceiveAntennas”,numRx);rxOFDM = demodulatorOFDM (rxPreSigAmp (chanDelay + 1:结束- (prm.numPadZeros-chanDelay):));从序言%信道估计% numCarr, numSTS numRx高清= helperMIMOChannelEstimate (rxOFDM (: 1: numSTS,:),人口、难民和移民事务局);%计算权重的反馈v = diagbfweights (hD);

简洁的陈述,前端包括载波同步和定时恢复被假定。权重计算使用diagbfweights因此反馈传感器,为后续应用程序的实际的数据传输。

数据传输

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

%卷积编码器编码器= comm.ConvolutionalEncoder (“TrellisStructure”(133 171 165),poly2trellis(7日),“TerminationMethod”,“终止”);%从位生成映射的符号txBits =兰迪([0,1],prm.numFrmBits, 1);encodedBits =编码器(txBits);% QAM符号映射mappedSym = qammod (encodedBits prm.modMode,“InputType”,“一点”,“UnitAveragePower”,真正的);%映射层:每个符号,每个数据流gridData =重塑(mappedSym prm.numCarriers、prm.numDataSymbols numSTS);%预编码权重应用于副载波,假设完美的反馈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;结束结束%的OFDM调制数据modulatorOFDM = comm.OFDMModulator (“FFTLength”prm.FFTLength,“NumGuardBandCarriers”prm.NumGuardBandCarriers。’,“InsertDCNull”,真的,“PilotInputPort”,真的,“PilotCarrierIndices”prm.PilotCarrierIndices。’,“CyclicPrefixLength”prm.CyclicPrefixLength,“NumSymbols”prm.numDataSymbols,“NumTransmitAntennas”,numSTS);% Multi-antenna飞行员飞行员= helperGenPilots (prm.numDataSymbols numSTS);txOFDM = modulatorOFDM (preData,飞行员);txOFDM = txOFDM * (prm.FFTLength /√prm.FFTLength-sum prm.NumGuardBandCarriers) 1));%规模实力%生成序言与反馈数据重量和预谋preambleSigD = helperGenPreamble(人口、难民和移民事务局,v);txSigSTS = [preambleSigD; txOFDM];%在numTx重复txSig = 0(大小(txSigSTS, 1), numTx);i = 1: numSTS txSig(:,(张)* expFactorTx + (1: expFactorTx)) =repmat (txSigSTS(:,我),1,expFactorTx);结束

预编码的先兆信号再生,使信道估计。是前缀部分形成的数据传输数据包传输天线然后复制。

传输光束控制

相控阵系统工具箱提供了组件适合相控阵列的设计和仿真中使用的无线通信系统。

对于空间意识到系统,从基站信号传播引导朝着的方向移动,以辐射能量集中在所需的方向。这可以通过应用相移到每个天线元素引导传播。

示例使用一个线性或矩形数组发射机,根据数据流的数量和选择的发送天线数。

%获得每个天线元素放大器= phased.Transmitter (“PeakPower”1 / numTx,“获得”,0);%放大为每个元素达到峰值传输能量n = 1: numTx txSig (:, n) =放大器(txSig (:, n));结束%传输天线阵的定义如果isTxURA%均匀矩形阵列arrayTx = phased.URA ([expFactorTx numSTS], [0.5 - 0.5] * prm.lambda,“元素”phased.IsotropicAntennaElement (“BackBaffled”,真的));其他的%均匀线性阵列arrayTx = phased.ULA (numTx,“ElementSpacing”0.5 * prm.lambda“元素”phased.IsotropicAntennaElement (“BackBaffled”,真的));结束%为指导评估权重SteerVecTx = phased.SteeringVector (“SensorArray”arrayTx,“PropagationSpeed”,prm.cLight);%为引导方向生成权重wT = SteerVecTx (prm.fc prm.steeringAngle);%沿着引导方向辐射,没有信号结合radiatorTx = phased.Radiator (“传感器”arrayTx,“WeightsInputPort”,真的,“PropagationSpeed”prm.cLight,“OperatingFrequency”prm.fc,“CombineRadiatedSignals”、假);如果人口、难民和移民事务局。enSteering txSteerSig = radiatorTx (txSig repmat (prm.mobileAngle 1 numTx),连词(wT));其他的txSteerSig = txSig;结束%可视化数组h =图(“位置”figposition (55 22 35 [10]),菜单条的,“没有”);h。Name =“传送阵几何”;viewArray (arrayTx);%可视化传输模式和指导h =图(“位置”figposition ([30] 32 55 22),菜单条的,“没有”);h。Name =“传送阵响应模式”;模式(arrayTx prm.fc,“PropagationSpeed”prm.cLight,“重量”、wT);h =图(“位置”figposition ([35] 54 55 22),菜单条的,“没有”);h。Name =“传送阵方位模式”;patternAzimuth (arrayTx prm.fc,“PropagationSpeed”prm.cLight,“重量”、wT);如果isTxURA h =图(“位置”figposition ([76 55 22 35]),菜单条的,“没有”);h。Name =“传送阵海拔模式”;patternElevation (arrayTx prm.fc,“PropagationSpeed”prm.cLight,“重量”、wT);结束

故事情节表明阵列几何和发射阵列响应多个视图。响应显示指定的传输方向转向角。

这个例子假设转向角已知和接近移动角。在实际系统中,这将是估计的着陆角度估计的接收机的通道或初始光束跟踪过程。

信号传播

示例提供了三个选择了空间通道和一个简单的静态平面MIMO信道用于评估目的。

获胜者二通道模型(5)是一种空间MIMO信道,允许您指定了数组定义几何形状和位置信息。它被配置为使用典型的城市微蜂窝室内场景与非常低的移动速度。

基于这两个散射通道使用一跃路径通过每个散射体散射的数量是用户指定的地方。对于这个示例,散射的数量设置为100。“散射”选项模型中的随机散射放置一个圆在发射机和接收机之间的,而“ScatteringFcn”他们的位置完全随机模型。

允许路径损耗模型建模和视距(LOS)和non-LOS传播条件。示例假定non-LOS传播模式与线性和各向同性天线元素几何。

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

相同的通道用于探测和数据传输,数据传输有更长的持续时间控制的数据符号参数的数量,prm.numDataSymbols

接收光束控制

接收者引导事件信号结合传播转向结束,每接收元素。热噪声和接收机获得应用。均匀和各向同性线性或矩形阵列响应建模与通道和发射机数组。

rxPreAmp = phased.ReceiverPreamp (“获得”,gainFactor * spLoss,%占路径损耗“NoiseFigure”prm.NFig,“ReferenceTemperature”,290,“SampleRate”,prm.chanSRate);%前端放大器增益和热噪声rxSigAmp = rxPreAmp (rxSig);rxSigAmp = rxSigAmp *%规模实力(返回值(人口、难民和移民事务局。FFTLength - sum (prm.NumGuardBandCarriers) 1) / (prm.FFTLength));%接收数组如果isRxURA%均匀矩形阵列arrayRx = phased.URA ([expFactorRx numSTS], 0.5 * prm.lambda,“元素”phased.IsotropicAntennaElement (“BackBaffled”,真的));其他的%均匀线性阵列arrayRx = phased.ULA (numRx,“ElementSpacing”0.5 * prm.lambda“元素”,phased.IsotropicAntennaElement);结束% receive-side转向评价权重SteerVecRx = phased.SteeringVector (“SensorArray”arrayRx,“PropagationSpeed”,prm.cLight);%为引导方向移动生成权重或者说是= SteerVecRx (prm.fc toRxAng);%沿着移动接收方向引导如果人口、难民和移民事务局。enSteering rxSteerSig = rxSigAmp。”* (wR);其他的rxSteerSig = rxSigAmp;结束%可视化数组h =图(“位置”figposition (20 22 35 [10]),菜单条的,“没有”);h。Name =“接收阵列几何”;viewArray (arrayRx);%可视化接收模式和指导h =图(“位置”figposition ([32 20 22 30]));h。Name =“接收阵列响应模式”;模式(arrayRx prm.fc,“PropagationSpeed”prm.cLight,“重量”,或者说是);h =图(“位置”figposition ([54 20 22 35]),菜单条的,“没有”);h。Name =“接收数组方位模式”;patternAzimuth (arrayRx prm.fc,“PropagationSpeed”prm.cLight,“重量”,或者说是);如果isRxURA图(“位置”figposition ([76 20 22 35]),菜单条的,“没有”);h。Name =“接收阵列高度模式”;patternElevation (arrayRx prm.fc,“PropagationSpeed”prm.cLight,“重量”,或者说是);结束

接收天线模式反映了传播转向。

信号恢复

接收天线阵通过传播信号到接收机恢复原始信息嵌入到信号。类似于发射机、接收机MIMO - OFDM系统中使用包含许多组件,包括OFDM解调器、MIMO均衡器,QAM解调和信道译码器。

demodulatorOFDM = comm.OFDMDemodulator (“FFTLength”prm.FFTLength,“NumGuardBandCarriers”prm.NumGuardBandCarriers。’,“RemoveDCCarrier”,真的,“PilotOutputPort”,真的,“PilotCarrierIndices”prm.PilotCarrierIndices。’,“CyclicPrefixLength”prm.CyclicPrefixLength,“NumSymbols”,numSTS + prm.numDataSymbols,%序言&数据“NumReceiveAntennas”,numRx);% OFDM解调rxOFDM = demodulatorOFDM (rxSteerSig (chanDelay + 1:结束- (prm.numPadZeros-chanDelay):));%从映射中信道估计高清= helperMIMOChannelEstimate (rxOFDM (: 1: numSTS,:),人口、难民和移民事务局);%分配均衡[rxEq, CSI] = helperMIMOEqualize (rxOFDM (numSTS + 1::,:),高清);%软解调scFact = ((prm.FFTLength-sum (prm.NumGuardBandCarriers) 1)/ prm.FFTLength ^ 2) / numTx;据nVar = noisepow (prm.chanSRate prm.NFig 290) / scFact;rxSymbs = rxEq:) /√(numTx);rxLLRBits = qamdemod (rxSymbs prm.modMode,“UnitAveragePower”,真的,“OutputType”,“approxllr”,“NoiseVariance”据nVar);% CSI解码之前申请rxLLRtmp =重塑(rxLLRBits prm.bitsPerSubCarrier, [],prm.numDataSymbols numSTS);csitmp =重塑(CSI 1 [], 1, numSTS);rxScaledLLR = rxLLRtmp。* csitmp;%输入信道解码解码器= comm.ViterbiDecoder (“InputFormat”,“Unquantized”,“TrellisStructure”(133 171 165),poly2trellis(7日),“TerminationMethod”,“终止”,“OutputDataType”,“双”);rxDecoded =解码器(rxScaledLLR (:));%解码得到位rxBits = rxDecoded (1: prm.numFrmBits);

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

%显示接收到的星座constDiag = comm.ConstellationDiagram (“SamplesPerSymbol”,1“ShowReferenceConstellation”,真的,“ReferenceConstellation”,qammod ((0: prm.modMode-1)、prm.modMode“UnitAveragePower”,真正的),“ColorFading”假的,“位置”figposition ([40] 20 20 35),“标题”,“平衡的符号”,“EnableMeasurements”,真的,“MeasurementInterval”长度(rxSymbs));constDiag (rxSymbs);%计算和显示比特误码率数量= comm.ErrorRate;措施=误码率(txBits rxBits);流(的误码率= % .5f;不。比特= % d;不。错误= % d \ n ',(1),(3)措施的人,措施(2));rng(年代);%恢复RNG状态
数量= 0.00000;不。比特= 74874;不。错误= 0

结论和进一步勘探

这个例子强调了使用相控天线mimo - ofdm系统beamformed数组。它占的空间几何形状和位置数组基站和移动台的单用户系统。使用通道探测,它说明了预编码实现在当前无线系统和转向天线阵列是如何建模。

组内的可配置参数,可以改变数据流的数量,发送/接收天线元素,站或数组的位置和几何信道模型及其配置研究参数的个人或组合对系统的影响。如不同发射天线的数量看看效果控制波束的主瓣和由此产生的系统性能。

也使得前端同步简化假设的例子中,信道反馈,用户速度和路径损耗模型,这需要进一步考虑一个实际的系统。个人系统也有自己的程序必须折叠在建模2,3,4]。

探索使用辅助函数如下:

选定的参考书目

  1. Perahia、Eldad和罗伯特·斯泰西。下一代无线局域网:802.11 802.11 n和交流。剑桥大学出版社,2013年。

  2. IEEE®IEEE Std 802.11™-2012标准信息技术——之间的通信和信息交换系统-本地和市区网络特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层规范(体育)。

  3. 3 gpp TS 36.213。“物理层过程。”3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL:https://www.3gpp.org

  4. 3 gpp TS 36.101。“用户设备(UE)无线电发射和接受。”3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL:https://www.3gpp.org

  5. Kyosti、Pekka Juha Meinila, et al。赢家二通道模型。D1.1.2 V1.2。是- 4 - 027756得主II, 2007年9月。

  6. 艾德。乔治•Tsoulos”MIMO无线通信系统技术”,CRC出版社,佛罗里达州博卡拉顿的2006。