主要内容

LTE DL-SCH和PDSCH处理链

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

介绍

LTE工具箱™提供了具有不同粒度级别的物理层建模功能,从可以生成完整上行链路和下行链路波形的系统级功能到执行传输/物理信道处理的PHY信道级功能,以及执行CRC编码、turbo编码等的单个信道处理阶段功能。这些函数具有简单的界面和易于参数化的特性,有助于快速构建标准兼容模型的原型,因此在各种应用程序中都很有用。使用本例中所示的单独通道处理阶段的测试和验证工作流的优点如下:

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

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

  • 了解DL-SCH/PDSCH流程

不同级别的粒度允许用户根据需要创建具有尽可能多的中间数据访问的模型,并生成大量的波形或测试向量用于自动化测试。对于DL-SCH和PDSCH处理和解码,工具箱提供lteDLSCHltePDSCHltePDSCHDecode而且lteDLSCHDecode.这些是通道级函数,能够处理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;单元格特定的参考信号端口enb。NCellID = 0;单元格IDenb。CyclicPrefix =“正常”%正常循环前缀enb。Cfi = 2;%控制区域长度enb。DuplexMode =“FDD”FDD双工模式enb。TDDConfig = 1;%上行/下行链路配置(仅TDD)enb。SSC = 4;特殊子帧配置(仅限TDD)enb。NSubframe = 0;子帧号传输/物理通道设置,便于使用DL-SCH和PDSCH通道特定设置在参数结构pdsch中指定。对于R.14软驱RMC,有两个码字,所以采用调制方案%指定为包含两者的调制方案的单元格数组%密语。如果配置为一个码字,调制方案可以是%字符向量或包含字符向量的单元格数组。同样重要的是,配置TrBlkSizes参数以拥有%正确的元素数量为预期的码字数量。的速率匹配阶段软位数的%由终端决定类别为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];% RV表示2个码字pdsch。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)';% PRBs为充分分配pdsch。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. nlayers,pdsch. nlayers)NTxAnts [0 0]));结束

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

本节介绍DL-SCH传输信道编码。每个预定的子帧都有一个传输块进入处理链(对于空间多路复用方案,可以有两个传输块)。传输块被编码和速率匹配到PDSCH信道位容量。PDSCH容量取决于PRB分配、调制方案和传输方案,该值作为输出从ltePDSCHIndices函数。传输信道编码过程包括以下阶段,如图1所示。

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

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

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

  • 速率匹配和码块拼接: turbo编码块然后根据TS 36.212节5.3.2.4单独匹配速率[1],所得的速率匹配块按照TS 36.212节5.3.2.5 [1]以创建一个单独的码字在PDSCH上传输。

%用于创建随机传输块的随机数初始化rng (“默认”);将调制方案char数组或cell数组转换为字符串数组均匀加工百分比pdsch。调制=字符串(pdsch.调制);从传输块的数量中获取码字的数量nCodewords =数字(TrBlkSizes);生成传输块trBlk = cell(1,nCodewords);初始化码字n=1:nCodewords trBlk{n} = randi([0 1],TrBlkSizes(n),1);结束获取速率匹配所需的物理通道位容量% ltePDSCHIndices信息输出[~,pdschInfo] = ltePDSCHIndices(enb,pdsch,pdsch. prbset);为lteRateMatchTurbo定义一个带有参数的结构数组CHS = pdsch;chs(nCodewords) = pdsch;对于2个码字,数组有两个元素初始化码字cw = cell(1,nCodewords);n = 1: nCodewords%传输块的CRC加法crccoded = lteCRCEncode(trBlk{n},“24”);代码块分割返回代码块段的单元格数组%,并根据需要追加填充位和24b型CRCblksegented = lteCodeBlockSegment(crccoded);通道编码返回单元格数组中的turbo编码段chencoded = lteTurboEncode(blksegmented);将chs结构中用于速率匹配的参数捆绑为函数需要单元范围和通道特定的参数chs (n)。调制= pdsch.调制{n};chs (n)。DuplexMode = enb.DuplexMode;chs (n)。TDDConfig = enb.TDDConfig;计算码字的层数如果n = = 1 chs (n)。NLayers = floor(pdsch.NLayers/nCodewords);其他的chs (n)。NLayers = ceil(pdsch.NLayers/nCodewords);结束%速率匹配返回子块交错后的码字,位为turbo编码定义的%收集和位选择和修剪% data和合并代码块段的单元格数组cw{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 Section 6.3.3 [1])。对于单个端口(端口0,5,7或8),使用单层。对于传输分集,只允许一个码字,层数(2或4)必须等于用于物理信道传输的天线端口数。对于空间多路复用,最多可在8层上传输1或2个码字。层数应小于或等于物理通道传输的天线端口数。

  • 预编码:预编码阶段从层映射阶段接收M-by-Layers矩阵,并返回大小为M-by-P的矩阵,用于在TS 36.211节6.3.4中定义的P天线上传输[2].对于单个端口(0,5,7或8端口),该级为透明级,对于发射分集,2或4个天线端口采用预编码。空间多路复用的预编码取决于是否使用了单元专用参考信号的天线端口(“SpatialMux”、“CDD”和“MultiUser”传输方案)或使用了单元专用参考信号的天线端口(“Port5”、“Port7-8”、“Port8”和“Port7-14”传输方案)。

  • 映射到资源元素:然后将复调制符号映射到TS 36.211第6.3.5节中定义的资源元素[2来创建传输网格。本例中没有显示此阶段,但是可以通过使用lteDLResourceGrid方法返回的资源元素ltePDSCHIndices函数。

初始化调制符号调制= cell(1,nCodewords);n = 1: nCodewords生成置乱序列超超序列q = ltePDSCHPRBS(enb,pdsch.RNTI,n-1,length(cw{n});打乱码字打乱= xor(打乱序列q,cw{n});符号调制打乱的码字调制{n} = ltesymbol调制(打乱,pdsch.调制{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);结束层反映射返回一个包含一个或两个码字的单元格数组。的由调制方案的数目推导出码字数目的%%字符向量layerdemmapped = lteLayerDemap(pdsch,rxdeprecoded);初始化恢复的码字cws = cell(1,nCodewords);n = 1: nCodewords接收符号的软解调demodulated = lteSymbolDemodulate(layerdemapping {n},pdsch. demodulated)调制{n},“软”);%用于反置乱的置乱序列生成rnti,n-1,length(解调后),“签署”);对接收的比特进行整理Cws {n} =解调。结束

DL-SCH解码

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

初始化接收的传输块和CRCrxTrBlk = cell(1,nCodewords);crcError = 0 (1,nCodewords);n = 1: nCodewords回收率阶段还允许与软信息相结合进行% HARQ进程,使用输入cbsbuffers。首先传输块的%传输,软缓冲区初始化%为空。对于重传,cbsbuffers参数应该是%软信息来自以前的传输Cbsbuffers = [];HARQ进程的初始传输%速率恢复返回turbo编码代码块的单元格数组raterrecovered = lteRateRecoverTurbo(cws{n},TrBlkSizes,pdsch.RV(n),chs(n),cbsbuffers);NTurboDecIts = 5;% turbo解码迭代周期数% Turbo解码返回解码代码块的单元格数组turbodecoded = lteTurboDecode(raterrecovered,NTurboDecIts);代码块分割连接输入代码块段%变成单个输出数据块,去除任何填充和%可能存在的24b型CRC位[blkdesegented,segErr] = lteCodeBlockDesegment(turbodecoded,(TrBlkSizes+24));% CRC解码在检查CRC错误后返回传输块[rxTrBlk{n},crcError(n)] = lteCRCDecode(blkdesegented,“24”);结束

结论

本例解释了下行共享信道(DL-SCH)和物理下行共享信道(PDSCH)处理,并深入了解了LTE工具箱中支持这些信道的不同功能。金宝app该示例还说明了如何使用低级函数对通道建模,该方法可用于应用程序,包括从这些中间处理阶段生成黄金参考测试向量,以独立验证替代实现的不同处理阶段。本例还展示了LTE工具箱和MATLAB平台如何为大规模验证和测试创建强大的环境。

进一步的探索

您可以修改本例中提供的参数,以试验不同的配置。例如,当模拟不同的传输模式时,一些感兴趣的参数是传输方案(TxScheme)、调制方案(调制),码字个数(的元素个数TrBlkSizes).

选定的参考书目

  1. 3GPP TS 36.212“多路复用和信道编码”

  2. 3GPP TS 36.211《物理通道和调制》

  3. 3GPP TS 36.213“物理层程序”

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

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