主要内容

MIMO-OFDM系统的波束形成

这个例子展示了如何建模一个点对点MIMO-OFDM系统与波束形成。多输入多输出(MIMO)和正交频分复用(OFDM)技术的结合已被采用在最近的无线标准,如802.11x家族,以提供更高的数据速率。由于MIMO采用天线阵列,采用波束形成技术可以提高接收信噪比,从而降低误码率。

此示例需要Communications Toolbox™。

介绍

术语MIMO用来描述一个系统,其中有多个发射器或多个接收器。在实践中,系统可以采用多种不同的形式,如单输入多输出(SIMO)或多输入单输出(MISO)系统。这个示例演示了下行MISO系统。一个8单元的ULA被部署在基站作为发射机,而移动单元是带有单天线的接收器。

该系统的其余部分被配置为如下。发射机功率为8瓦,所述发射增益为-8分贝。移动接收器是固定的,位于2750米的距离,并关闭发射机的视轴3度。与1瓦的功率和-20 dB的增益的干扰位于在9000米,20度关闭发射机的视轴。

初始化系统常数RNG(2014);GC = helperGetDesignSpecsParameters();%的可调参数tp。txPower = 9;瓦%tp。txGain = 8;% dBtp。mobileRange = 2750;%Mtp。mobileAngle = 3;%度tp.interfPower = 1;瓦%tp.interfGain = -20;% dBtp.interfRange = 9000;%Mtp.interfAngle = 20;%度tp.numTXElements = 8;tp.steeringAngle = 0;%度tp.rxGain = 108.8320  -  tp.txGain;% dBnumTx = tp.numTXElements;

下图描绘了整个场景。

helperPlotMIMOEnvironment (gc, tp);

信号传输

首先,配置系统的发射机。

[编码器,扰频器,modulatorOFDM steeringvec,发射机,...散热器、飞行员、numDataSymbols frmSz] = helperMIMOTxSetup (gc, tp);

在发射机子系统中有很多组件,如卷积编码器、扰频器、QAM调制器、OFDM调制器等。信息首先被转换成信息位流,然后通过源编码和调制阶段来准备辐射。

txBits = randi([0,1], frmSz,1);编码=编码器(txBits);位=扰频器(编码);tx = qammod (gc.modMode比特,“InputType”'少量'“UnitAveragePower”,真正的);

在OFDM系统中,数据是通过多个子载波是彼此正交的承载。

ofdm1 =重塑(tx, gc.numCarriers,numDataSymbols);

然后,数据流复制到发射阵列中的所有辐射元素

ofdmData = repmat(OFDM1,[1,1,numTx]);txOFDM = modulatorOFDM(ofdmData,导频);%的规模txOFDM = txOFDM *...gc.FFTLength /√gc.FFTLength-sum (gc.NumGuardBandCarriers) 1));%放大,以达到每个通道的峰值TX功率n = 1:numTx txOFDM(:,n) =发射器(txOFDM(:,n));结束

在MIMO系统中,还可以实现多用户空间分割多路复用(SDMA)。在这些情况下,数据流通常由一个与所需方向相对应的权值进行调制,因此一旦辐射出去,信号就会在那个方向上达到最大。由于在MIMO信道中,阵列中不同元件发出的信号可能会经过不同的传播环境,因此每个天线发出的信号应该单独传播。这可以通过在相控上设置CombineRadiatedSignals为false来实现。散热器组件。

散热器。CombineRadiatedSignals = false;

为了实现预编码,阵列中每个天线发出的数据流通过与其辐射方向相对应的相移进行调制。这种预编码的目的是确保这些数据流在阵列朝那个方向时加入相位。预编码可以指定为散热器上使用的重量。

或者说是= steeringvec (gc.fc [-tp.mobileAngle; 0]);

同时,阵列也被导向一个给定的转向角度,因此总权值是预编码和转向权值的结合。

WT = steeringvec(gc.fc,[tp.steeringAngle; 0]);重量=重量* WR。

所发送的信号因此由下式给出

txOFDM =散热器(txOFDM,repmat([tp.mobileAngle; 0],1,numTx),缀(重量));

需要注意的是所发射的信号,txOFDM,是一个矩阵,它的列代表数据流从发射阵列中的相应的元件散热。

信号传播

接下来,信号通过MIMO信道传播。一般来说,对接收信号强度的传播影响主要有两种:一是由于传播距离引起的传播损耗,通常称为自由空间路径损耗;二是多径衰落。这个例子模拟了这两种效果。

(通道、interferenceTransmitter toRxAng spLoss] =...helperMIMOEnvSetup (gc, tp);[sigFade, chPathG] = channel(txOFDM);sigLoss = sigFade /√db2pow spLoss (1)));

为了模拟更真实的移动环境,下一节还插入了干扰源。注意,在无线通信系统中,干扰通常是不同的移动用户。

产生干扰并施加增益和传播损失加numBits =尺寸(sigFade,1);interfSymbols = WGN(加numBits,1,1,“线性”“复杂”);interfSymbols = interferenceTransmitter (interfSymbols);interfLoss = interfSymbols /√db2pow spLoss (2)));

信号接收

接收天线收集两个所传播的信号,以及所述干扰,并将它们传递到接收器,以恢复嵌入在信号中的原始信息。就像该系统的发送端,在MIMO-OFDM系统中使用的接收器还包含许多阶段,包括OFDM解调器,QAM解调器,反扰频器,均衡器,和维特比解码器。

[集电体,接收机,demodulatorOFDM,解扰器,解码器] =...helperMIMORxSetup(GC,TP,numDataSymbols);rxSig =集电极([sigLoss interfLoss],toRxAng);%前端放大器的增益和热噪声rxSig =接收机(rxSig);rxOFDM = rxSig *...(√gc.FFTLength-sum gc.NumGuardBandCarriers) 1)) / (gc.FFTLength);% OFDM解调rxOFDM = demodulatorOFDM(rxOFDM);%的信道估计hD = helperIdealChannelEstimation(gc, numDataSymbols, chPathG);%均衡rxEq = helperEqualizer(rxOFDM, hD, numTx);折叠OFDM矩阵rxSymbs = rxEq (:);rxBitsS = qamdemod (rxSymbs gc.modMode,“UnitAveragePower”,真的,...“OutputType”'少量');rxCoded =解扰器(rxBitsS);rxDeCoded =解码器(rxCoded);rxBits = rxDeCoded(1:frmSz);

解码输出与原始消息流的比较表明,由此产生的误码率对于通信系统来说太高了。星座图如下图所示

数量= comm.ErrorRate;度量= ber(txBits, rxBits);流(“BER =%.2f %%;位的数目=%d;错误的数目=%d \ n”...措施(1)* 100,(3)措施,措施(2));
BER = 32.07%;位= 30714号;错误= 9850的号
constdiag = comm.ConstellationDiagram (“SamplesPerSymbol”, 1...'ReferenceConstellation',[]“ColorFading”,真的,...“位置”, gc.constPlotPosition);显示接收星座constdiag (rxSymbs);

高BER主要是由于移动被关断基站阵列的转向方向。如果移动与转向方向对齐时,BER大大提高。

tp。steeringAngle = tp.mobileAngle;%转向发射机主瓣WT = steeringvec(gc.fc,[tp.steeringAngle; 0]);[txBits,rxBits,rxSymbs] = helperRerunMIMOBeamformingExample(GC,TP,WT);重置(ber);度量= ber(txBits, rxBits);流(“BER =%.2f %%;位的数目=%d;错误的数目=%d \ n”...措施(1)* 100,(3)措施,措施(2));
BER = 0.02%;位= 30714号;错误= 5的号
constdiag (rxSymbs);

因此,该系统是将转向误差非常敏感。在另一方面,它是这种空间灵敏度使得SDMA可能在空间来区分多个用户。

移相器量化效应

迄今为止的讨论假定光束可朝向确切期望的方向进行转向。但在现实中,这往往是不正确的,尤其是在使用模拟移相器。模拟移相器仅具有有限的精确度,并通过在相移中使用的位的数目进行分类。例如,3比特的移相器只能在360度表示8个不同的角度。因此,如果这样的量化包括在仿真中,系统性能降低,这可以从星座图进行观察。

%具有量化效果的模拟移相器释放(steeringvec);steeringvec。NumPhaseShifterBits = 4;wTq = steeringvec (gc.fc [tp.steeringAngle; 0]);[txBits, rxBits,rxSymbs] = helperRerunMIMOBeamformingExample(gc,tp,wTq);重置(ber);度量= ber(txBits, rxBits);流(“BER =%.2f %%;位的数目=%d;错误的数目=%d \ n”...措施(1)* 100,(3)措施,措施(2));constdiag = comm.ConstellationDiagram (“SamplesPerSymbol”, 1...'ReferenceConstellation',[]“ColorFading”,真的,...“位置”, gc.constPlotPosition);constdiag (rxSymbs);
BER = 0.02%;位= 30714号;错误= 7的第

总结

这个例子中示出了采用波束成形的点至点MIMO-OFDM系统的系统级仿真。仿真模型的许多系统组件,例如编码,发射波束成形,预编码,多径衰落,信道估计,均衡和解码。

参考

[1] Houman Zarrinkoub,用MATLAB理解LTE, Wiley, 2014

Theodore S. Rappaport等。毫米波无线通信,普伦蒂斯霍尔,2014

另请参阅