主要内容

LTE波形生成与仿真参数化

这个例子展示了如何通过使用LTE Toolbox™软件参数化端到端模拟并生成静态波形。本例主要关注下行传输,但所讨论的概念也适用于上行传输。

简介

LTE工具箱可用于生成标准兼容的LTE/LTE-高级上行、下行和侧链复杂基带波形,可用于许多终端用户应用,包括端到端仿真、静态波形生成、回归测试和性能分析。该工具箱提供了根据用户需求定制的功能,方便灵活地生成完整链接。由于每个环节有多个通道和信号,工具箱还提供了一种方法来生成与标准定义的测量通道相对应的预定义参数集,这些参数集可以作为标准定义的测量通道使用,也可以进一步修改以参数化波形生成和端到端模拟。对于下行链路,工具箱以TS 36.101中定义的参考测量通道(RMC)的形式包括这些预定义的参数集[1].这个例子演示了如何lteRMCDL而且lteRMCDLTool功能结合,支持LTE下行波形的生成,以满足不同的用户需求。对应的上行链路函数为lteRMCUL而且lteRMCULTool

LTE下行链路参数化和波形生成功能

在这个例子中,我们讨论工具箱提供的两个顶级函数:lteRMCDL,这将创建一个完整的参数集,和lteRMCDLTool,产生下行波形。通过结合这两个功能,可以轻松生成符合标准的LTE波形。

下行波形发生器功能需要一个单一的分层MATLAB结构,该结构指定了输出波形中出现的传输通道、物理通道和物理信号的所有参数集。生成器函数返回时域波形、填充的资源网格和创建波形时使用的参数集。

工具箱包括lteRMCDL函数,可以为预配置的参考测量通道(RMC)和自定义配置提供一个完整的参数结构。类可以直接使用此参数结构lteRMCDLTool函数来生成波形,也可以将其用作模板,用于为任何组成通道或信号创建具有用户指定值的波形。例如,改变传输方案/模式、调制方案、码率或改变物理通道的功率级别。方法之前定义了所有用户提供的值,注意这一点很重要lteRMCDL函数。这是因为lteRMCDL函数不会覆盖在输入处已经定义的任何参数值(只读参数除外)。下图显示了典型模拟设置的参数化。

LTE下行链路参数化选项

LTE工具箱支持以不同的方式指定定义组成物理通道和信号的参数集。这些将在后面的章节中进一步解释:

  • 根据重要的单元范围参数和PDSCH参数创建参数集:lteRMCDL函数提供参数展开和传输块大小处理从单元范围和PDSCH参数。假设所有下行和特殊(如果TDD模式)子帧都被调度。这允许指定参数的一个子集,然后函数计算兼容的缺失参数,以创建完整的集合。这种方法通常用于创建子帧5是活动的配置。

  • 使用预定义的参数集之一:lteRMCDL函数以rmc的形式支持许多标准定义的参数集。如果有一个完全匹配需求的配置,或者如果我们想要生成一个RMC对应的波形,我们可以直接使用RMC编号进行RMC表查找和参数集创建。支持的rmc及其顶级参数如下所示:

  • 自定义预定义参数集之一:在许多情况下,我们想要的波形配置与预定义集给出的略有不同。在本例中,我们可以从一个预定义的rmc开始,并修改参数,这些参数需要不同的值来创建完整的定制参数集。的一个例子说明了这一点在子帧5中使用码率和参考PDSCH参数化部分。注意,包含用户数据的子帧将与RMC一致。如果TDD双工模式TDDConfig则子帧0、5和特殊子帧的行为将保持不变,所有其他下行子帧将继承子帧9的属性(即活动/非活动、分配、目标码率)。

使用重要的单元范围参数和PDSCH参数进行参数化

下面的流程图说明了如何使用关键单元范围参数和PDSCH参数设置参数集。从这些参数的一个子集中lteRMCDL函数可以通过参数展开来创建完整的参数集。

下面的例子展示了如何创建一个20MHz, QPSK, 3/4的速率%波形对应传输模式8 ('Port7-8'传输%方案)完全分配和2个发射天线dataStream = [1 0 0 1];定义输入用户数据流params =结构();初始化参数结构参数个数。NDLRB = 100;% 20 MHz带宽参数个数。CellRefP = 2;前两个端口上的单元参考信号params.PDSCH.PRBSet = (0: params.NDLRB-1) ';%全面分配params.PDSCH.TargetCodeRate = 3/4;%目标代码率params.PDSCH.TxScheme =“Port7-8”传输模式8params.PDSCH.NLayers = 2;% 2层传输params.PDSCH.Modulation =“正交相移编码”%调制方案params.PDSCH.NSCID = 0;%匆忙身份params.PDSCH.NTxAnts = 2;% 2发射天线params.PDSCH.W = lteCSICodebook (params.PDSCH.NLayers,...params.PDSCH.NTxAnts, 0) ';%预编码矩阵现在使用lteRMCDL填充其他参数字段。fullParams = lteRMCDL (params);使用完整的参数集生成波形。。[dl波形,dlGrid, dlParams] = lteRMCDLTool(fullParams,dataStream);% dl波形是时域波形,dlGrid是资源网格和% dlParams是在波形生成中使用的完整参数集。

使用预定义参数集进行参数化

如果有一个精确匹配需求的预定义参数集,或者如果我们想生成一个与RMC相对应的波形,使用那个RMC号来创建完整的参数集。

创建与TS 36.101附录a .3规定的R.0 RMC相对应的波形[1

params = lteRMCDL (“R.0”);定义参数集[dl波形,dlGrid, dlParams] = lteRMCDLTool(params,dataStream);如果最终应用程序是波形生成,我们也可以使用RMC%的数字直接与生成器创建波形[dl波形,dlGrid, dlParams] = lteRMCDLTool(“R.0”, dataStream数据);

在子帧5中使用码率和参考PDSCH参数化

假设我们想用2层开环空间复用、16QAM调制和1/2速率定义一个双码字全频段10MHz PDSCH,在子帧5中使用参考PDSCH传输。查看TS 36.101表A.3.1.1-1:下行参考测量通道概述,R.31-3A符合这些标准,但具有64QAM调制和可变码率。

为了创建所需的参数集,我们从R.31-3A RMC开始,在子帧5中启用PDSCH传输。然后我们覆盖调制和码率。的lteRMCDL函数根据代码速率执行传输块大小计算。

params =结构();初始化参数结构参数个数。RC =“R.31-3A”;params.PDSCH.TargetCodeRate = 1/2;params.PDSCH.Modulation =16 qam的现在使用lteRMCDL填充其他参数字段。fullParams = lteRMCDL (params);使用完整的参数集生成波形。。[dl波形,dlGrid,dlParams] = lteRMCDLTool(fullParams,{dataStream, dataStream});% #好< * ASGLU >

注意,我们使用'R.31-3A'作为起点,因为我们所需的参数集非常匹配这个RMC(包括子帧5中的参考PDSCH)。我们也可以通过不指定上面的RC(或设置RC为空([]))来生成参数集。在这种情况下,参数集将对应于所有下行链路和特殊(如果TDD模式)子帧中的引用PDSCH。

使用MCS/传输块大小参数化

在某些情况下,我们知道MCS或传输块大小,并希望创建相应的波形。下图显示了使用MCS进行参数化所涉及的步骤。

例如,为MCS索引10创建一个参数集,假设资源分配为50 RB:

mcsIndex = 10;从MCS值中获取ITBS和调制(髂胫,调制)= lteMCS (mcsIndex);params =结构();初始化参数结构%带宽(NDLRB)必须大于或等于分配参数个数。NDLRB = 50;%设置带宽params.PDSCH.PRBSet = (0: params.NDLRB-1) ';%全面分配params.PDSCH.Modulation =调制;设置调制方案nrb =大小(params.PDSCH.PRBSet, 1);获取已分配的RBs数量tbs =双(lteTBS (nrb胫));获取传输块大小现在在子帧5中创建没有传输的“TrBlkSizes”向量params.PDSCH.TrBlkSizes = [ones(1,5)*tbs 0 ones(1,4)*tbs];现在使用lteRMCDL填充其他参数字段。fullParams = lteRMCDL (params);现在使用完整的参数集生成波形。。[dl波形,dlGrid, dlParams] = lteRMCDLTool(fullParams,dataStream);

这种方法还可以用于创建具有非标准定义的传输块大小的参数集,或者当所需的传输块大小对应于大于0.93的代码率(标准将代码率限制为最大0.93)时。对于这些情况,我们可以指定如上面示例所示的传输块大小,而其他参数将由lteRMCDL函数。注意,rmc通常不会在子帧5中定义参考PSDCH传输,因为可能存在SIB1 PSDCH。如果引用PDSCH是必需的,那么有两种方法来启用它:

  1. RMC通过'RC'字段指定,可以是'R.31-3A'或'R.31-4'。

  2. “RC”字段不存在或被指定为空(例如params。RC =[])。

参数化使用可变码率和资源分配

lteRMCDL而且lteRMCDLTool函数可以用来生成在一帧的子帧中参数变化的波形(例如CFI, PRBSet, TargetCodeRate)。当每一个子帧的值发生变化时,CFI和目标码率可以指定为矢量,PRBSet指定为单元格数组。

在这个例子中,我们创建了一个对应于R.31-3 FDD RMC的波形,其中代码率和分配每个子帧都是不同的。这是一个有两个码字的RMC,子帧0的码率为0.61,子帧5的码率为0.62,其他所有子帧的码率为0.59。在子帧5中分配的资源块数为(4…99),在所有其他子帧中为全带宽(0…99)

params =结构();初始化参数结构参数个数。NDLRB = 100;%设置带宽(20mhz)参数个数。CellRefP = 2;设置特定于单元格的参考信号端口参数个数。CFI = 1;% 1符号分配给PDCCHparams.PDSCH.PRBSet ={(0:99)“(0:99)”(0:99)”(0:99)“(0:99)”...(4:99)' (0:99)' (0:99)' (0:99)' (0:99)'};params. pdch . targetcoderate = [0.61 0.59 0.59 0.59 0.59 0.59 0.62 0.59 0.59 0.59 0.59 0.59 0.59];params.PDSCH.TxScheme =CDD的% 2码字闭环空间muxparams.PDSCH.NLayers = 2;每个码字% 1层params.PDSCH.Modulation = {64 qam64 qam};设置2个码字的调制使用lteRMCDL填充其他参数字段。由此产生的% 'fullParams'可以根据R.31-3提供的参数进行手动检查表A.3.9.1-1. FDD RMC在TS 36.101。fullParams = lteRMCDL (params);使用完整的参数集生成波形。。[dl波形,dlGrid, dlParams] = lteRMCDLTool(fullParams,{dataStream, dataStream});

参考文献

  1. 3GPP TS 36.101“用户设备(UE)无线电传输和接收”

Baidu
map