主要内容

MIMO-OFDM系统的波束形成

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

此示例需要Communications Toolbox™。

介绍

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

其余系统配置如下。发射机功率为8瓦,发射增益为-8 dB。移动接收器静止,位于2750米处,距离发射器的钻石3度。具有1瓦的功率和-20 dB的增益的干扰源位于9000米,发射器的触控器20度。

初始化系统常数RNG(2014);gc = helpergetdesignspecsparameters();%可调参数tp。txPower = 9;%瓦特tp。txGain = 8;% dBtp。mobileRange = 2750;%M.tp。mobileAngle = 3;%度tp.interfpower = 1;%瓦特tp.interfgain = -20;% dBtp.interfrange = 9000;%M.tp.interfAngle = 20;%度tp.numtxelements = 8;tp.steringangle = 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.steringangangle; 0]);重量= wt。* w;

因此,发送的信号由

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 = size(sigfade,1);Interfsymbols = WGN(NumBits,1,1,“线性”“复杂”);interfSymbols = interferenceTransmitter (interfSymbols);interfLoss = interfSymbols /√db2pow spLoss (2)));

信号接收

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

[收集器,接收器,解调器OFDM,解扰器,解码器] =...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 =解扰器(rxbits);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主要是由于手机断开了基站阵列的转向方向。如果手机与转向方向对齐,则大大提高。

tp。steeringAngle = tp.mobileAngle;%转向变送器主瓣wt = steeringvec(gc.fc,[tp.steringangangle; 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

另请参阅