主要内容

MIMO-OFDM系统的波束形成

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

此示例需要通信工具箱™。

简介

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

系统的其余部分如下所示配置。发射机功率为9瓦,发射增益为-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, pilots);%的规模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]);权重= wT.* 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 = collector([sigLoss interfLoss],toRxAng);前端放大器增益和热噪声rxSig =接收机(rxSig);rxOFDM = rxSig *...(√gc.FFTLength-sum gc.NumGuardBandCarriers) 1)) / (gc.FFTLength);% OFDM解调rxOFDM = demodulatorOFDM (rxOFDM);%信道估计hD = helperidealchannelestimate (gc, numDataSymbols, chPathG);%均衡rxEq = helper均衡器(rxOFDM, hD, numTx);%折叠OFDM矩阵rxSymbs = rxEq (:);rxBitsS = qamdemod (rxSymbs gc.modMode,“UnitAveragePower”,真的,...“OutputType”“一点”);rxCoded =解码器(rxBitsS);rxDeCoded =解码器(rxCoded);rxBits = rxDeCoded (1: frmSz);

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

数量= comm.ErrorRate;measures = ber(txBits, rxBits);流(的数量= % .2f % %;不。of Bits = %d;不。错误= %d\n'...措施(1)* 100,(3)措施,措施(2));
数量= 32.78%;不。的位= 30714;不。的误差= 10068
constdiag = comm.ConstellationDiagram (“SamplesPerSymbol”, 1...“ReferenceConstellation”[],“ColorFading”,真的,...“位置”, gc.constPlotPosition);%显示接收星座constdiag (rxSymbs);

较高的误码率主要是由于移动设备偏离了基站阵列的转向方向。如果移动设备与转向方向对齐,则误码率将大大提高。

tp。steeringAngle = tp.mobileAngle;操纵发射机主瓣wT = steeringvec (gc.fc [tp.steeringAngle; 0]);[txBits, rxBits,rxSymbs] = helperRerunMIMOBeamformingExample(gc,tp,wT);重置(ber);measures = ber(txBits, rxBits);流(的数量= % .2f % %;不。of Bits = %d;不。错误= %d\n'...措施(1)* 100,(3)措施,措施(2));
数量= 0.00%;不。的位= 30714;不。Of errors = 0
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);measures = ber(txBits, rxBits);流(的数量= % .2f % %;不。of Bits = %d;不。错误= %d\n'...措施(1)* 100,(3)措施,措施(2));constdiag = comm.ConstellationDiagram (“SamplesPerSymbol”, 1...“ReferenceConstellation”[],“ColorFading”,真的,...“位置”, gc.constPlotPosition);constdiag (rxSymbs);
数量= 0.02%;不。的位= 30714;不。误差= 5

总结

这个例子展示了一个采用波束形成的点到点MIMO-OFDM系统的系统级仿真。该仿真模拟了许多系统组成部分,如编码、发射波束形成、预编码、多径衰落、信道估计、均衡和解码。

参考

Houman Zarrinkoub,用MATLAB理解LTE, Wiley, 2014

[2]西奥多·s·拉帕波特等。毫米波无线通信,普伦蒂斯霍尔,2014

另请参阅

Baidu
map