主要内容

LTE下行信道估计与均衡

此示例演示如何使用LTE工具箱™ 要创建一帧数据,请将其通过衰落信道并执行信道估计和均衡。创建两幅图来说明接收到的帧和均衡后的帧。

介绍

此示例显示了如何使用LTE工具箱中的函数创建简单的发射机-信道-接收机模拟。该示例在一个天线端口上生成一帧数据。由于在该示例中没有创建传输信道,因此数据是随机比特,经QPSK调制并映射到子帧中的每个符号。创建小区特定参考信号以及主同步信号和次同步信号,并将其映射到子帧。分别生成10个子帧以创建帧。该帧经过OFDM调制,通过扩展的车辆A模型(EVA5)衰落信道,添加并解调加性高斯白噪声。采用基于信道和噪声估计的MMSE均衡,最后绘制了接收和均衡的资源网格。

它是设置

单元格范围的设置在结构中指定enb.本例中使用的许多函数需要下面指定的设置的子集。本例中只使用了一个发射天线。

enb。NDLRB = 15;%资源块数enb。CellRefP = 1;% 1个发射天线接口enb。NCellID = 10;%细胞IDenb.CyclicPrefix=“正常”正规循环前缀enb。DuplexMode =“FDD”%FDD

信噪比配置

操作信噪比由该值配置为分贝SNRdB它也被转换成线性信噪比。

SNRdB = 22;期望的信噪比(dB)信噪比= 10 ^ (SNRdB / 20);%线性信噪比rng (“默认”);%配置随机数生成器

信道模型配置

通道模型使用结构配置。在这个例子中,使用了带有扩展车辆a (EVA)延迟轮廓和120Hz多普勒频率的衰落信道。这些参数以及MIMO相关和其他信道模型特定的参数被设置。

cfg。年代eed = 1;%通道种子cfg.NRxAnts=1;% 1接收天线延迟配置文件=“伊娃”延迟扩展%cfg。DopplerFreq = 120;% 120Hz多普勒频率cfg。MIMOCorrelation =“低”%低(无)MIMO相关性cfg.InitTime=0;%在时间零点初始化cfg.NTerms=16;衰落模型中使用的振荡器cfg。ModelType =“GMEDS”%瑞利衰落模型类型cfg。InitPhase =“随机”%随机初始阶段cfg。NormalizePathGains =“上”正规化延迟轮廓功率cfg.etxants=“上”传送天线规格化

信道估计器配置

用户定义的窗口用于平均导频符号,以减少噪声的影响。平均窗口大小根据资源元素(REs)在时间和频率上进行配置。本例中使用保守的9乘9窗口作为EVA延迟剖面,120Hz多普勒频率导致信道随时间和频率快速变化。9乘9窗口包括在求平均值时直接围绕感兴趣的导频的4个导频。中讨论了选择平均窗口信道估计

cec。PilotAverage =“UserDefined”导频平均法cec.FreqWindow=9;%REs中的频率平均窗口cec。TimeWindow = 9;在REs中时间平均窗口

在导频估计之间由信道估计器执行插值,以创建所有REs的信道估计。为了改进估计,在插值时可以使用多个子帧。具有中心内插窗口的3个子帧的内插窗口使用来自3个连续子帧的导频估计来估计中心子帧。

cec。InterpType =“立方”%三次插值cec。InterpWinSize = 3;%最多插入3个子帧同时%电子窗口=“中心”%插值加窗方法

子帧资源网格大小

在本例中,访问子框架资源网格维度是很有用的。这些是用lteDLResourceGridSize.这个函数返回一个数组,该数组包含子载波的数量、OFDM符号的数量和发送天线端口的数量。

gridsize = lteDLResourceGridSize (enb);K = gridsize (1);%子载波数L=网格大小(2);%一帧OFDM符号数P = gridsize (3);%发送天线端口数

传输资源网格

一个空的资源网格txGrid被创建,它将被填充子帧。

txGrid=[];

有效载荷数据生成

由于本例中没有使用传输信道,因此通过该信道发送的数据将是随机的QPSK调制符号。创建符号的子帧值,以便将符号映射到每个资源元素。传输和接收所需的其他信号将覆盖资源网格中的这些符号。

%所需的位数是资源网格的大小(K*L*P) *位数每符号% (QPSK为2)numberOfBits = K * L * P * 2;%创建随机比特流inputBits = randi([0 1], numberOfBits, 1);%调制输入位inputSym = lteSymbolModulate (inputBits,“正交相移编码”);

帧生成

该帧将通过在循环中生成单独的子帧并将每个创建的子帧附加到之前的子帧来创建。附加子帧的集合包含在其中txGrid.这个附加过程重复十次以创建一个框架。当OFDM调制的时域波形通过一个信道时,该波形将经历延时。为了避免由于这个延迟而错过任何样本,将生成一个额外的子帧,因此总共生成11个子帧。对于每一个子帧,添加细胞特定参考信号(细胞RS)。同时增加了主同步信号(PSS)和次同步信号(SSS)。注意,这些同步信号只出现在子帧0和5中,但是LTE工具箱负责在其他子帧中生成空信号和索引,以便在这些子帧中调用语法可以完全一致。

%用于帧内的所有子帧sf=0:10%设置子帧编号enb.NSubframe=mod(sf,10);%生成空子帧子帧= lteDLResourceGrid (enb);将输入符号映射到网格子帧(:)= inputSym;%产生同步信号pssSym = ltePSS (enb);sssSym = lteSSS (enb);pssInd = ltePSSIndices (enb);sssInd = lteSSSIndices (enb);%将同步信号映射到网格子帧(pssInd) = pssSym;子帧(sssInd) = sssSym;%生成特定于单元的参考信号符号和索引cellRsSym = lteCellRS (enb);cellRsInd = lteCellRSIndices (enb);将单元格特定的参考信号映射到网格子帧(cellRsInd) = cellRsSym;%将子帧附加到要传输的网格txGrid = [txGrid子帧];%#嗯结束

OFDM调制

为了将频域的OFDM符号转换为时域,需要进行OFDM调制。这是通过使用lteOFDMModulate.函数返回两个值;一个矩阵txWaveform和结构信息包含采样率。txWaveform为得到的时域波形。每一列包含每个天线端口的时域信号。在本例中,由于只使用了一个天线端口,因此只返回一列。信息。年代amplingRate为时域波形产生时的采样率。这个值是通道模型所需要的。

[txWaveform,info]=lteOFDMModulate(enb,txGrid);txGrid=txGrid(:,1:140);

衰落信道

时域波形通过信道模型传递(衰落信道)由结构配置cfg.信道模型要求时域波形的采样率,因此需要参数cfg。年代amplingRate设置为返回的值lteOFDMModulate.由信道模型函数产生的波形包含每个接收天线一列。在本例中使用了一个接收天线,因此返回的波形有一列。

cfg。年代amplingRate = info.SamplingRate;%通过衰落信道模型传递数据rxWaveform=lteFadingChannel(cfg,txWaveform);

添加剂噪声

信噪比为 年代 N R E 年代 / N 0 在哪里 E 年代 是感兴趣的信号的能量和 N 0 为噪声功率。OFDM解调前增加的噪声会被FFT放大。因此,为了使接收机(OFDM解调后)的信噪比归一化,必须对噪声进行缩放。放大倍数是FFT大小的平方根。FFT的大小可以由时域波形的采样率(信息。年代amplingRate)和副载波间距(15 kHz)。要添加的噪声的功率可以按比例调整,这样 E 年代 N 0 在OFDM解调后进行归一化,以达到所需的SNR(SNRdB).

计算噪声增益N0 = 1 /(√(2.0 * enb.CellRefP *双(info.Nfft)) *信噪比);创建加性高斯白噪声噪音= N0 *复杂(randn(大小(rxWaveform)), randn(大小(rxWaveform)));%在接收到的时域波形中加入噪声rx波形=rx波形+噪声;

同步

由信道在接收的时域信号中引起的偏移使用lteDLFrameOffset.这个函数返回一个值抵消它表示波形被延迟了多少个采样。对于所有天线接收到的波形,偏移被认为是相同的。接收到的时域波形可以被操纵以消除延迟使用抵消

偏移量=lteDLFrameOffset(enb,RX波形);RX波形=RX波形(1+偏移量:结束,:);

OFDM解调

时域波形经过OFDM解调,将其转换到频域并重建资源网格。这是通过使用去调制.得到的网格是一个三维矩阵。行数表示子载波的数量。列数等于子帧中的OFDM符号数。从OFDM解调返回的网格的子载波和符号的数量与进入的网格相同lteOFDMModulate.网格中第三维平面的数量与接收天线的数量相对应。

rxGrid = lteOFDMDemodulate (enb rxWaveform);

信道估计

在传输资源网格的持续时间内创建信道估计lteDLChannelEstimate使用。信道估计功能由结构配置ceclteDLChannelEstimate假设资源网格中的第一个子帧是子帧号enb.NSubframe因此,子帧号必须在调用函数之前设置。在这个例子中,整个接收帧将在一个呼叫中被估计,并且帧内的第一个子帧是子帧号0。对于每个可能的发射和接收天线组合,该函数返回一个由复权值组成的4-D阵列,信道将其应用于发射网格中的每个资源元素。可能的组合方式以eNodeB配置为准enb以及接收天线的数量(由接收资源网格的大小决定)。第1维是副载波,第2维是OFDM符号,第3维是接收天线,第4维是发射天线。在这个例子中,一个发射和一个接收天线被使用,因此尺寸estChannel是180 -的- 140 - 1 - 1。

enb.NSubframe=0;[estChannel,noiseEst]=LTEDLChannel估计(enb、cec、rxGrid);

MMSE均衡

信道对接收的资源网格的影响被均衡使用ltemmse.这个函数使用信道的估计值estChannel和噪音噪音均衡接收到的资源网格rxGrid.函数返回eqGrid这是均衡网格。均衡网格的尺寸与原始传输网格的尺寸相同(txGrid)在OFDM调制之前。

eqGrid=mmse(rxGrid、estChannel、noiseEst);

分析

将接收的资源网格与均衡的资源网格进行比较。计算了发射和均衡网格与发射和接收网格之间的误差。这将创建两个矩阵(与资源数组大小相同),其中包含每个符号的错误。为了便于检查,接收到的均衡网格用对数尺度绘制冲浪hDownlinkEstimationEqualizationResults.m.这些图表明,执行信道均衡极大地减少了接收资源网格中的错误。

%计算传输和均衡网格之间的误差eqError = txGrid - eqGrid;rxError = txGrid - rxGrid;%计算所有输入值的EVM预均衡接收信号的EVM %维生素与= comm.EVM;维生素。AveragingDimensions = [1 2];preEqualisedEVM =维生素(txGrid rxGrid);流(预均衡信号的百分比RMS EVM: %0.3f%%\n...preEqualisedEVM);
预均衡信号百分率RMS EVM: 124.133%
均衡后接收信号的EVM %postEqualisedEVM =维生素(txGrid eqGrid);流('后均衡信号的百分比RMS EVM: %0.3f%%\n'...postEqualisedEVM);
后均衡信号的RMS百分比:15.598%
%绘制接收到的均衡资源网格hDownlinkEstimationEqualizationResults (rxGrid eqGrid);

图中包含axes对象。标题为Received resource grid的axes对象包含surface类型的对象。

图中包含一个轴对象。标题为“均衡资源网格”的axis对象包含一个类型为surface的对象。

附录

下面的例子使用了helper函数: