主要内容

LTE DL-SCH和PDSCH处理链

在LTE中,下行共享信道(DL-SCH)是一种传输信道,用于传输用户数据、专用控制和用户专用的高层信息和下行系统信息。物理下行共享信道(PDSCH)是承载DL-SCH编码数据的物理信道。这个例子展示了下行共享通道(DL-SCH)和物理下行共享通道(PDSCH)处理的不同阶段,并提供了这些中间阶段的数据访问。

介绍

LTE工具箱™提供各种粒度级别的物理层建模功能,从系统级功能,可以产生完整的上行和下行波形,到PHY信道级功能,执行传输/物理信道处理和单个信道处理阶段功能,执行CRC编码,turbo coding, etc. These functions, with the simple interface and ease of parameterization, help in rapid prototyping of standard compliant models and therefore are useful in a wide variety of applications. The advantages of a test and verification workflow using individual channel processing stages illustrated in this example are:

  • 作为替代实现的黄金参考

  • 易于为接收器或硬件单元测试创建静态或动态测试向量

  • 了解DL-SCH/PDSCH工艺

不同的粒度级别允许用户根据需要创建具有尽可能多的中间数据访问权的模型,并生成大量的波形或测试向量以进行自动化测试。对于DL-SCH和PDSCH的处理和解码,工具箱提供lteDLSCHltePDSCHltePDSCHDecodelteDLSCHDecode.这些是能够处理相关传输或物理通道的所有阶段的频道级功能,如TS 36.212第5.3.2节中所述1]及TS 36.211第6.4条[2].这个示例展示了如何在需要访问中间值/处理阶段的用例中使用执行DL-SCH和PDSCH编码和解码的单个通道处理步骤的函数。处理链的各个阶段和LTE工具箱为DL-SCH和PDSCH提供的功能如下图所示。

设置

该示例中使用的功能需要组合单元范围的参数和信道特定参数。这些输入到函数作为结构字段或单独的参数。

%计算单元范围的设置%单元范围的参数被分组成一个结构enb。一个类的一个子集%参数如下所示。在本例中,我们使用了配置根据TS 36.101附件A.3.4中规定的RMC R.14 FDD%使用50 RB, 4端口,'SpatialMux'传输方案,'16QAM'符号%调制,2个码字和1/2码率。enb。NDLRB = 50;%资源块数enb。CellRefP = 4;% cell特定的参考信号端口enb。NCellID = 0;%细胞IDenb。CyclicPrefix =“正常”正态循环前缀eNB.CFI = 2;%控制区域的长度enb。DuplexMode =“FDD”%软驱双工模式enb。TDDConfig = 1;%上行/下行配置(仅TDD)enb。SSC = 4;%特殊子帧配置(仅限TDD)enb。NSubframe = 0;%子帧号码%运输/物理通道设置,便于DL-SCH和PDSCH%通道特定设置在参数结构PDSCH中指定。%对于R.14 FDD RMC,有两个码字,所以调制方案%指定为包含两者调制方案的单元阵列%密语。如果配置为一个码字,则调制方案可以%字符向量或包含字符向量的单元格数组。配置Trblksize参数也很重要%正确的元素数量作为预期的码字数量。的速率匹配阶段的软比特数由UE决定TS 36.306表4.1-1中规定的%类别。在这个例子中,%运输块大小可查阅TS 36.101附件A.3.4中的表。%这也可以通过使用R.14 RMC的LTERMCDL函数来完成。% DL-SCH设置trblksizes = [11448;11448];% 2个元素用于2个码字传输pdsch。Rv = [0 0];2码字的%RVpdsch。NSoftbits = 1237248;UE类别2的百分比软通道位% PDSCH设置pdsch。TxScheme ='spatialmux'使用的传输方案pdsch。调制= {16 qam的16 qam的};% 2个码字的符号调制pdsch。NLayers = 2;%两个空间传输层pdsch。NTxAnts = 2;%发射天线个数pdsch.rnti = 1;% RNTI值pdsch。PRBSet = (0: enb.NDLRB-1) ';%充分分配的prbpdsch。PMISet = 0;%预编码矩阵索引pdsch.w = 1;%没有ue特定的波束形成%只需要'Port5', 'Port7-8', 'Port8'和'Port7-14'方案如果任何(strcmpi(pdsch.txscheme,{“Port5”“Port7-8”“Port8”“Port7-14”pdsch}))。W = ' (lteCSICodebook (pdsch.NLayers pdsch。NTxAnts [0 0]));结束

下行共享通道(DL-SCH)处理

本节介绍了DL-SCH传输信道编码。一个传输块进入每个预定的子帧(用于空间复用方案,可以有两个传输块)。传输块获得编码并与PDSCH信道比特容量匹配的速率。PDSCH容量取决于PRB分配,调制方案和传输方案,并且该值被提供为来自的输出ltepdschindices.函数。传输通道编码过程包括以下阶段,如图1所示。

  • 运输大厦CRC附件:错误检测传输块是由一个24位CRC根据TS 36.212章节5.3.2.1提供的[1].

  • 代码块分段和代码块CRC附件如上图1所示,代码块分段根据TS 36.212 Section 5.3.2.2的规则将输入数据位向量分割成一个代码块段的单元数组(适当添加填充位和24b类型的CRC) [1].功能lteDLSCHInfo提供给定块大小的代码块分段信息。

  • 信道编码:代码块是单独turbo编码根据TS 36.212章节5.3.2.3 [1].turbo编码器(lteTurboEncode)可以处理包含所有代码块段的单元阵列并行地,并返回包含单个Turbo编码块段的单元数组。

  • 速率匹配和代码块连接: turbo编码块然后根据TS 36.212章节5.3.2.4分别速率匹配[1[所得速率匹配块按照TS 36.212第5.3.2.5节倾斜[1]在PDSCH上创建用于传输的单个码字。

%用于创建随机传输块的随机数初始化rng ('默认');%将调制方案字符数组或单元数组转换为字符串数组均匀加工%pdsch。调制=字符串(pdsch.Modulation);%从传输块的数量中获取代码字的数量nCodewords =元素个数(TrBlkSizes);%生成传输块trBlk =细胞(1、nCodewords);%初始化码字n=1:nCodewords trBlk{n} = randi([0 1],TrBlkSizes(n),1);结束获取速率匹配所需的物理信道位容量% ltePDSCHIndices信息输出[~, pdschInfo] = ltePDSCHIndices (pdsch, enb pdsch.PRBSet);%定义了一个结构阵列,具有LterateMatchturbo的参数chs = pdsch;CHS(ncodewords)= PDSCH;2个代码字的%,数组有两个元素%初始化码字cw = cell(1,ncodewords);n = 1:ncodewords%为传输块添加的CRCcrccoded = ltecrcencode(trblk {n},“24”);%代码块分段返回代码块段的单元格数组%与填充位和类型24b CRC附加根据需要blksegmented = lteCodeBlockSegment (crccoded);%通道编码返回单元数组中的turbo编码段chencoded = lteTurboEncode (blksegmented);%捆绑结构chs中的参数以进行速率匹配%函数需要单元格和通道特定参数chs (n)。调制= pdsch.Modulation {n};chs (n)。DuplexMode = enb.DuplexMode;chs (n)。TDDConfig = enb.TDDConfig;%计算码字的层数如果n == 1 chs(n).nlayers =楼层(pdsch.nlayers / ncodewords);其他的chs (n)。NLayers =装天花板(pdsch.NLayers / nCodewords);结束%速率匹配返回子块交错后的码字,位%收集和位选择和修剪定义为turbo编码% data并合并代码块段的单元格数组连续波{n} = lteRateMatchTurbo (chencoded pdschInfo.G (n), pdsch.RV (n), chs (n));结束

物理下行共享通道(PDSCH)处理

根据所使用的传输方案,一个或两个传输编码块(码字)可以在PDSCH上同时传输(见TS 36.211第6.4节[2])。如上面的图2所示,码字经过置乱、调制、层映射、预编码、可选的ue特定波束形成和资源元素映射。矩阵的大小为N × P, N为一个天线端口的调制符号数,P为传输天线数。

  • 地:在一子帧中可以传输至多两个码字,对于每个码字,比特按TS 36.211第6.3.1节的不同置乱序列进行置乱[2].置乱序列在每个子帧开始时被初始化并依赖于RNTINCellIDNSubframe还有码字索引。

  • 调制:然后,使用一个调制方案('QPSK','16QAM','64QAM'或'256QAM')调制扰乱的码字。

  • 层映射:然后根据所使用的传输方案(TS 36.211第6.3.3节[)根据所使用的传输方案映射到一个或多个层的复数调制符号(TS 36.211第6.3.3节[1])。对于单端口(端口0、5、7、8),采用单层方式。对于发送分集,只允许一个码字,层数(2层或4层)必须等于用于物理信道传输的天线端口数。对于空间多路复用,最多可在8层上传输1或2个码字。层数小于等于物理信道中用于传输的天线端口数。

  • 预编码:预编码阶段从层映射阶段得到m -乘-层矩阵,并返回大小为m -乘-P的矩阵用于在P天线上传输,定义见TS 36.211 Section 6.3.4 [2].对于单端口(端口0、5、7或8),此阶段是透明的,对于发射分集,2或4天线端口采用预编码。空间复用的预编码取决于是使用带有蜂窝特定参考信号的天线端口('SpatialMux', 'CDD'和'多用户'传输方案)还是使用具有ue特定参考信号的天线端口('Port5', 'Port7-8', 'Port8'和'Port7-14'传输方案)。

  • 映射到资源元素:然后将复制调制符号映射到TS 36.211第6.3.5节中定义的资源元素[2创建输电网。这个阶段在本例中没有显示,但是可以通过使用lteDLResourceGrid并将符号映射到所返回的资源元素ltepdschindices.函数。

%初始化调制符号调制=细胞(1、nCodewords);n = 1:ncodewords%生成置乱序列scramseq = ltepdschprbs(eNB,pdsch.rnti,n-1,长度(cw {n}));%乱序码字Scrambled = XOR(Scramseq,CW {n});%符号调制置乱码字调制{n} = lteSymbolModulate(炒,pdsch.Modulation {n});结束%层映射的结果是一个(每层符号)-by-NLayers矩阵layermapped = lteLayerMap (pdsch,调制);%预编码结果为(每个天线的符号)-by-NTxAnts矩阵precoded = lteDLPrecode(enb, pdsch, layermapped);%选择性应用波束形成(如果没有波束形成,W应该是1或identity)pdschsymbols =将* pdsch.W;

PDSCH解码

解码是对复杂调制PDSCH符号矩阵的物理下行共享信道(PDSCH)处理的逆过程,取决于单元范围的设置结构enb以及特定于通道的配置结构PDSCH..信道逆处理包括折旧,层解映射和码字分离,软解调和解扰。使用预编码矩阵的矩阵伪反转来执行弃额。对于涉及传播信道和/或噪声的应用,在解码之前在接收的符号上完成信道估计和均衡。看ltePDSCHDecode为进一步的信息。

%预编码(伪逆基)返回(符号数)-by-NLayers矩阵如果(任何(strcmpi (pdsch。TxScheme, {“Port5”“Port7-8”“Port8”“Port7-14”}))) rxdeprecoded = pdschsymbols * pinv (pdsch.W);其他的rxdeprecoded = lteDLDeprecode (enb pdsch pdschsymbols);结束%层映射返回包含一个或两个码字的单元格数组。的%码字数是由调制方案的数目推导出来的%特征向量diallaydemapped = ltelayerdemap(pdsch,rxdepecoded);%初始化恢复的码字水煤浆=细胞(1、nCodewords);n = 1:ncodewords%接收符号的软解调解调= lteSymbolDemodulate (layerdemapped {n}, pdsch。调制{n},“软”);%用于反置乱的置乱序列生成scramseq = ltePDSCHPRBS (enb pdsch.RNTI, n - 1,长度(解调),“签署”);%对接收到的位进行解码器CWS {n} =解调。* scramseq;结束

DL-SCH解码

下行共享信道(DL-SCH)译码包括速率恢复、turbo译码、块级联和CRC计算。另外的功能lteDLSCHDecode还提供相同的功能。该函数还返回type-24A传输块CRC解码结果,type-24B编码块集CRC解码结果,HARQ进程解码状态,并提供参数化来指定初始HARQ进程状态。

%初始化接收到的传输块和CRCrxTrBlk =细胞(1、nCodewords);nCodewords crcError = 0 (1);n = 1:ncodewords%速率恢复阶段还允许与软信息相结合% HARQ进程,使用输入cbsbuffers。第一%传输的传输块,软缓冲区被初始化%是空的。对于重传,参数cbsbuffers应该是前一次传输的软信息cbsbuffers = [];HARQ过程的初始传输%率恢复返回一个单元数组的turbo编码代码块raterecovered = lteRateRecoverTurbo(水煤浆{n}, TrBlkSizes, pdsch.RV (n), chs (n), cbsbuffers);NTurboDecIts = 5;% turbo解码迭代次数% Turbo解码返回已解码代码块的单元数组TurboDecoded = LTETUBODECODE(Raterecovered,Nturbodits);%代码块去分割连接输入代码块段%转换为单个输出数据块,在删除任何填充和%类型24b CRC位可能存在[blkdesegmented, segErr] = lteCodeBlockDesegment (turbodecoded (TrBlkSizes + 24));% CRC解码在检查CRC错误后返回传输块[rxTrBlk {n}, crcError (n)) = lteCRCDecode (blkdesegmented,“24”);结束

结论

该示例解释了下行链路共享通道(DL-SCH)和物理下行链路共享通道(PDSCH)处理,并提供对LTE工具箱中可用的不同功能的洞察,以支持这些频道。金宝app该示例还示出了如何使用低电平函数来建模信道,并且该方法可以用于包括从这些中间处理阶段的Golden参考测试向量生成的应用程序,以独立地验证备用实现的不同处理阶段。此示例还显示了LTE工具箱和MATLAB平台如何创建强大的环境以进行大规模验证和测试。

进一步的探索

您可以修改本例中提供的参数,以试验不同的配置。例如,当模拟不同的传输模式时,有关参数包括传输方案(TxScheme)、调制方案(调制),码字的数量(元素数TrBlkSizes).

选定的参考书目

  1. 3GPP TS 36.212《多路复用和信道编码》

  2. 3GPP TS 36.211“物理信道和调制”

  3. 3GPP TS 36.213《物理层程序》

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

  5. 3GPP TS 36.306《用户设备(UE)无线电接入能力》