主要内容

用于波形生成和仿真的LTE参数化

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

简介

LTE工具箱可用于生成标准兼容的LTE/LTE- advanced上行链路、下行链路和侧链路复杂基带波形,可用于许多终端用户应用,包括端到端模拟、静态波形生成、回归测试和性能分析。该工具箱提供了灵活、简便的全链接生成功能,可根据用户需求量身定制。由于每个链接中有多个通道和信号,工具箱还提供了一种方法来生成与标准定义的测量通道相对应的预定义参数集,可以这样使用,也可以进一步修改以参数化波形生成和端到端模拟。对于下行链路,工具箱包括这些以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如果将RMC更改为不同的值,则子帧0,5和特殊子帧的行为将保持不变,所有其他下行子帧将继承子帧9的属性(即活动/不活动,分配,目标码率)。

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

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

下面的例子展示了如何创建一个20MHz, QPSK, 3/4速率%波形对应传输模式8 ('Port7-8'传输%方案)全分配和2个发射天线dataStream = [1 0 0 1];定义输入用户数据流Params = struct();初始化参数结构参数个数。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 = struct();初始化参数结构参数个数。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和调制[itbs,调制]= lteMCS(mcsIndex);Params = struct();初始化参数结构带宽(NDLRB)必须大于或等于分配参数个数。NDLRB = 50;%设置带宽params.PDSCH.PRBSet = (0:params.NDLRB-1)';%全部分配params. pdsch .调制=调制;设置调制方案nrb = size(params.PDSCH.PRBSet,1);获取分配的RBs数量tbs = double(lteTBS(nrb,itbs));获取传输块大小现在在子帧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函数。注意,由于可能存在SIB1 PDSCH, rmc通常不会在子帧5中定义参考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 = struct();初始化参数结构参数个数。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. pdsh . targetcoderate = [0.61 0.59 0.59 0.59 0.59 0.59 0.59 0.62 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59];params.PDSCH.TxScheme =CDD的% 2码字闭环空间互斥器params.PDSCH.NLayers = 2;每个码字% 1层params. pdsch .调制= {64 qam64 qam};为2个码字设置调制使用lteRMCDL填充其他参数字段。由此产生的'fullParams'可以手动检查R.31-3给出的那些表A.3.9.1-1. % FDD RMC in TS 36.101。fullParams = lteRMCDL(params);使用完整的参数集生成波形。[dl波形,dlGrid, dlParams] = lteRMCDLTool(fullParams,{dataStream, dataStream});

参考文献

  1. 3GPP TS 36.101《用户设备(UE)无线电发射和接收》

Baidu
map