MIMO-OFDM系统的波束形成

这个例子展示了如何一个点至点MIMO-OFDM系统模型波束形成。多输入多输出(MIMO)和正交频分复用的组合(OFDM)技术已经在最近的无线标准中采用,比如802.11x的家庭,以提供更高的数据速率。因为MIMO使用天线阵列,波束成形可以采用以改善接收的信号噪声比(SNR),这进而降低了误码率(BER)。

此示例需要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;% D btp.mobileRange = 2750;%Mtp.mobileAngle = 3;%度tp.interfPower = 1;瓦%tp.interfGain = -20;% D btp.interfRange = 9000;%Mtp.interfAngle = 20;%度tp.numTXElements = 8;tp.steeringAngle = 0;%度tp.rxGain = 108.8320  -  tp.txGain;% D bnumTx = 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));%放大到达到峰值发射功率为每个信道对于n = 1时:numTx txOFDM(:,N)=发射器(txOFDM(:,N));结束

在MIMO系统中,也可以分离多用户空间分复用(SDMA)。在这种情况下,数据流通常由与期望方向相对应的权值调制,以便一旦辐射,信号在那个方向上最大化。由于在MIMO信道中,阵列中不同元件发出的信号可能会经过不同的传播环境,所以每个天线发出的信号应该是单独传播的。这可以通过在相控时将联合辐射信号设置为false来实现。散热器组件。

radiator.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] =信道(txOFDM);sigLoss = sigFade / SQRT(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 *...(SQRT(gc.FFTLength森(gc.NumGuardBandCarriers)-1))/(gc.FFTLength);%OFDM解调rxOFDM = demodulatorOFDM(rxOFDM);%的信道估计hD = helperidealchannelestimate (gc, numDataSymbols, chPathG);%均衡RXEQ = helperEqualizer(rxOFDM,HD,numTx);%塌陷OFDM矩阵rxSymbs = rxEq (:);rxBitsS = qamdemod (rxSymbs gc.modMode,“UnitAveragePower”,真正,...“输出类型”“位”);rxCoded =解扰器(rxBitsS);rxDeCoded =解码器(rxCoded);rxBits = rxDeCoded(1:frmSz);

将译码输出与原始消息流进行比较表明,对于通信系统而言,所产生的误码率过高。星座图也如下所示

BER = comm.ErrorRate;measure = ber(txBits, rxBits);fprintf中(“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);measure = ber(txBits, rxBits);fprintf中(“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);measure = ber(txBits, rxBits);fprintf中(“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系统的系统级仿真。仿真模型的许多系统组件,例如编码,发射波束成形,预编码,多径衰落,信道估计,均衡和解码。

参考

胡曼·Zarrinkoub,用MATLAB理解LTE,威利,2014

[2] S.西奥多拉帕波特等。毫米波无线通信,Prentice Hall出版社2014

也可以看看