主要内容

LTE下行信道估计与均衡

这个例子展示了如何使用LTE工具箱™创建一帧值的数据,将其通过衰落信道并执行信道估计和均衡。创建了两幅图来说明所接收的和均衡的框架。

介绍

这个示例展示了如何使用LTE工具箱中的函数创建一个简单的发射机-信道-接收机模拟。该示例在一个天线端口上生成一帧值的数据。由于在本例中没有创建传输信道,数据是随机位,QPSK被调制并映射到子帧中的每个符号。一个细胞特定的参考信号和主次同步信号被创建并映射到子帧。单独生成10个子帧来创建一帧。该帧经OFDM调制,通过扩展车辆A模型(EVA5)衰落信道,加入加性高斯白噪声并解调。利用信道估计和噪声估计进行MMSE均衡,最后绘制接收资源网格和均衡资源网格。

它是设置

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

enb.ndlrb = 15;%资源块数enb。CellRefP = 1;%一个传输天线端口enb.ncellid = 10;%细胞IDenb。CyclicPrefix =“正常”%正常循环前缀enb。DuplexMode =“FDD”% FDD

SNR配置

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

SNRdB = 22;%所需的SNR在DB中信噪比= 10 ^ (SNRdB / 20);%线性信噪比rng (“默认”);%配置随机数生成器

通道模型配置

频道模型使用结构配置。在该示例中,使用具有扩展车辆A(EVA)延迟分布和120Hz多普勒频率的衰落通道。这些参数随着MIMO相关性和其他通道模型特定参数。

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

信道估计配置

用户自定义窗口用于平均导频符号,以减少噪声的影响。平均窗口大小是根据资源元素(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个子帧同时%cec。InterpWindow =“中心”%插值加窗方法

子帧资源网格尺寸

在本例中,访问子框架资源网格维度是很有用的。这些是用lteDLResourceGridSize.此函数返回包含子载波数量的数组,该顺序以该顺序的传输天线端口数和发送天线端口的数量。

gridsize = ltedlresourcegridsize(eNB);k = gridsize(1);%子载波数量L = gridsize (2);一个子帧中的%OFDM符号数P =网格化(3);百分比发射天线端口

传输资源网格

空资源网格txGrid创建将与子帧填充。

txGrid = [];

有效载荷数据生成

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

%所需的位数是资源网格的大小(K*L*P) *位数每符号% (QPSK为2)numberOfBits = K * L * P * 2;%创建随机比特流inputBits = randi([0 1], numberOfBits, 1);%调制输入位InputSym = LTSymbolmodulate(InputBits,'QPSK');

框架生成

该帧将通过在循环中生成单独的子帧并将每个创建的子帧附加到之前的子帧来创建。附加子帧的集合包含在其中txGrid.此附加重复十次以创建帧。当OFDM调制的时域波形通过通道时,波形将遇到延迟。为避免由于该延迟而被遗漏的任何样本产生额外的子帧,因此总共生成11个子帧。对于每个子帧,添加小区特定的参考信号(小区RS)。还添加了主要同步信号(PSS)和辅同步信号(SSS)。注意,这些同步信号仅在子帧0和5中出现,但是LTE工具箱在其他子帧中处理生成空信号和索引,使得这里的呼叫语法可以在子帧上完全统一。

%用于帧内的所有子帧科幻小说= 0:10%设置子帧数enb.nsubframe = mod(sf,10);%生成空子帧子帧= LTEDLESOURCEGRID(eNB);将输入符号映射到网格子帧(:)= inputSym;%产生同步信号psssym = ltepss(eNB);ssssym = LTESS(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,信息]= lteOFDMModulate (enb txGrid);txGrid = txGrid (:, 1:140);

衰落信道

时域波形通过信道模型(lteFadingChannel)由结构配置cfg.信道模型要求时域波形的采样率,因此需要参数cfg。年代amplingRate设置为lteOFDMModulate.由通道模型功能生成的波形包含每个接收天线的一列。在该示例中,使用一个接收天线,因此返回的波形具有一列。

cfg.samplingrate = info.samplingrate;将数据通过衰落信道模型txWaveform rxWaveform = lteFadingChannel (cfg);

添加剂噪声

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

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

同步

由接收的时域信号中的通道引起的偏移量使用ltedlframeoffset..此函数返回一个值抵消这表示波形已延迟的样本数量。偏移被认为是在所有天线上接收的波形相同的相同。然后可以操纵接收的时域波形以使用使用抵消

抵消= lteDLFrameOffset (enb rxWaveform);rxWaveform = rxWaveform(1 +抵消:最终,);

OFDM解调

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

rxgrid = lteofdmdemodulate(eNB,rxwaveform);

信道估计

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

enb。N年代ubframe = 0; [estChannel, noiseEst] = lteDLChannelEstimate(enb,cec,rxGrid);

MMSE均衡

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

eqGrid = lteEqualizeMMSE(rxGrid, estChannel, noiseEst);

分析

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

计算传输和均衡电网之间的误差eqError = txGrid - eqGrid;rxError = txGrid - rxGrid;%计算所有输入值的EVM预均衡接收信号的EVM %EVM = comm.evm;evm.averagingdimensions = [1 2];preequalisedevm = EVM(TxGrid,RxGrid);FPRINTF(预均衡信号的百分比RMS EVM: %0.3f%%\n......preequalisedevm);
预均衡信号百分率RMS EVM: 124.133%
均衡接收信号的%EVMpostEqualisedEVM =维生素(txGrid eqGrid);FPRINTF('后均衡信号的百分比RMS EVM: %0.3f%%\n'......postequaliseevm);
后均衡信号的RMS百分比:15.598%
%绘制接收和均衡的资源网格hdmbleLinkestimationequalizationResults(RxGrid,EqGrid);

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

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

附录

此示例使用辅助功能: