主要内容

LTE-M下行波形生成

本例展示了如何创建一个下行LTE-M传输,包括MTC物理下行控制通道(MPDCCH)及其相关的物理下行共享通道(PDSCH)和物理广播通道(PBCH),包括重复和跳频。与pre-Release 13的设备相比,Cat-M设备的成本和复杂性更低,通过引入重复和扩展DRX进一步节省电力,增强了覆盖范围。

简介

LTE- m对LTE标准的引入增加了专门针对机器类型通信(MTC)的支持。从第12版的Cat-0设备开始,这在后来的版本中得到了进一步扩展,定义了一个单独的Cat-M设备类。现在有两个类别已经添加到LTE,在第13版的Cat-M1(通过eMTC工作项),然后是Release 14中的Cat-M2 (feMTC).

Cat-M设备有两种覆盖增强(CE)操作模式(在3GPP标准文档中也称为BL/CE终端),CE模式A和CE模式B。CE模式A的目标是适度的覆盖增强,最多可重复32次,而CE模式B的目标是数据通道的广泛覆盖增强,最多可重复2048次。CE模式A通过DCI格式的6-0A/6-1A消息发送,CE模式B通过6-0B/6-1B消息发送。MPDCCH处理链、DM-RS创建和映射与增强型物理下行链路控制通道(EPDCCH)几乎相同,另外还增加了重复和跳频行为。本例具体使用了LTE Toolbox™的EPDCCH功能来实现MPDCCH模型。LTE- m数据通道是增加了重复和跳频的LTE PDSCH。LTE-M广播频道由两部分组成;对应于LTE PBCH的“核心”部分和LTE- m特定的“重复”部分,其中“核心”部分中的符号和细胞RS信号是重复的。

LTE- m可以部署在标准LTE小区中,因此并非所有子帧都必须用于BL/CE传输。BL/CE子帧由在MIB-M消息中发送的位图表示(类似于NB-IoT中的机制)。为了简单起见,在本例中,我们假设所有子帧都定义为BL/CE。用于LTE-M传输的MPDCCH/PDSCH启动OFDM符号是特定于小区的,并在系统信息(SI)中广播。

这个MATLAB®示例的主要输出是一个多子帧Cat-M1/Cat-M2资源网格,包含MPDCCH资源元素(RE),相关的DM-RS, LTE-M PDSCH REs, PBCH REs(“核心”和“重复”部分以及相应的单元参考信号)和其他配置为完整传输序列的参考信号。该网格也是OFDM调制,以产生相关的时域基带波形。图被创建来提供网格中正则分配和基带信号大小的可视化。

LTE-M物理层概念

  • 重复,为了显著扩展LTE-M设备的覆盖范围,在Release 13中为Cat-M设备引入了MPDCCH、PDSCH和PBCH的重复。这将比预发布的13个设备提供至少15dB的性能改进。MPDCCH最多可重复256次,PDSCH最多可重复2048次,PBCH最多可重复5次,包括“核心”部分。

  • 窄带。LTE- m使用窄带的概念在宽带LTE载波中为数据和控制通道分配子载波。每个窄带由6个连续的prb组成,但并非所有prb都必须是窄带的一部分(取决于总体载波BW)。

  • 宽带,版本14 LTE-M使用宽带的概念为数据通道分配更高的带宽。可以有一个或多个宽频带,每个宽频带由4个窄带组成,或单个宽频带由1、2或3个窄带组成。对于配置为CE模式a (DCI格式为6-1A)的Cat-M2设备,数据通道在单个宽带上传输ce-pdsch-maxBandwidth-config设置为5MHz或资源块分配标志设置为1或通过RBG位图跨越全部LTE载波带宽,在资源块分配标志设置为0。的资源块分配标志只有在ce-pdsch-maxBandwidth-config设置为20MHz。对于配置为CE模式B (DCI格式为6-1B)的Cat-M2设备,数据通道在单个宽带上传输ce-pdsch-maxBandwidth-config设置为5MHz和最多4个宽带,如果ce-pdsch-maxBandwidth-config设置为20MHz。

  • 跳频-尽管Release 13 eMTC设备的瞬时带宽为1.4MHz(最简单的LTE- m设备的最大带宽为1.4MHz),但它可以通过子帧之间的不同窄带访问更宽的LTE载波。如果传输涉及多个子帧的重复,可选的子帧间跳频可以应用。跳频发生在不同的窄带之间,根据CE模式以1到16个子帧的块进行。跳块长度和跳偏移量是单元特有的参数。在下行链路中,对于控制和数据,跳频可以超过2个窄带或4个等间距窄带。

物理层处理和程序

LTE- m数据传输使用与LTE相同的物理通道(PDSCH)。不同的是,LTE-M支持可选的重复和跳频。

  • 传输模式,用于LTE-M的PDSCH的有效传输模式为1(单天线)、2(发射分集)、6(闭环码本预编码)和9(非码本预编码,单层)。传输模式6仅在CE模式A中支持,而在CE模式A和CE模式b中都支持1、2和9,与LTE PDSCH不同的是,LTE- m中不支持多输入多输出(MIMO)操作,因为大多数LTE- m设备预计是单接收天线的低成本设备。

  • 重复和攀爬块-发送PDSCHNRepPDSCH(>=1)连续BL/CE下行子帧。这些NRepPDSCH子帧以块的形式传输Nacc子帧(见TS 36.211节6.8B)。2 (1]),并且同样的置乱序列应用于块中的所有子帧。NaccFDD双工模式下可为1或4,TDD双工模式下可为1或10。在CE模式A中最多可以有32个重复,在CE模式b中最多可以有2048个重复。PDSCH重复的数量是由特定传输的半静态配置和动态选择的组合定义的。

  • 窄带和宽频带用于LTE-M PDSCH传输的prb必须属于窄带(如果是Cat-M2则属于宽带)。Cat-M1设备在窄带中瞬时传输带宽为1.4MHz。Cat-M2设备的带宽为5MHz或20MHz,由更高的层参数指示ce-pdsch-maxBandwidth-config,在这种情况下,PDSCH传输可以在宽带中进行,其中每个宽带最多由4个不重叠的窄带组成。

  • 跳频-如果PDSCH在多个子帧上重复,则可以选择性地应用子帧间跳频,其中跳频发生在CE模式A的设备的长度为1、2、4、8的子帧块上,而跳频发生在CE模式b的设备的长度为2、4、8、16的子帧块上。跳频块长度和跳频偏移是单元特定的参数。跳频可以跨越2个窄带或4个等间距窄带。在每个跳跃窄带内携带PDSCH的RBs的相对位置保持不变。

MPDCCH物理层处理和程序

MPDCCH携带LTE-M下行控制信息(DCI)。MPDCCH和相应的解调参考信号(DM-RS)在集合(107,108,109,110)的一个或多个端口上传输。MPDCCH和EPDCCH的物理层处理阶段和操作非常相似,不同之处在于重复、可选跳频和如何应用置乱。

  • 重复和攀爬块-MPDCCH使用一个或多个连续增强控制通道单元(ECCEs)的聚合来传输NRepMPDCCH(>=1)连续BL/CE下行子帧。这些NRepMPDCCH子帧以块的形式传输Nacc子帧(见TS 36.211节6.8B)。2 (1]),并且同样的置乱序列应用于块中的所有子帧。以MPDCCH不与P-RNTI或SC-RNTI关联且配置CE模式A为例,Nacc= 1,如TS 36.211节6.8B所述。2 (1所以在每个BL/CE子帧初始化置乱,就像在EPDCCH的情况一样。NaccFDD双工模式下可为1或4,TDD双工模式下可为1或10。MPDCCH重复的数量是由特定传输的半静态配置和动态选择的组合来定义的。网络半静态地配置最大重复征求从集合(1,2,4,8,16,32,64,128,256)中动态地选择特定传输的实际重复(Rmax, Rmax/2, Rmax/4, Rmax/8)。

  • 窄带。MPDCCH在每个子帧的单个窄带内以2、4或6个RBs传输。MPDCCH PRB集合由编号从0…N'ECCEpk其中N'ECCEpk是子帧k的MPDCCH- prb集合p中的ecce个数。一个MPDCCH使用的ecce个数由TS 36.211表6.8A给出。1 - 2 (1如果没有配置重复,则为2或4个prb。其他情况都是1-2。

  • 跳频-如果MPDCCH在多个子帧上重复,则子帧间跳频可以选择性地应用,其中跳频发生在CE模式A的设备的长度为1、2、4、8的子帧块上,而跳频发生在CE模式b的设备的长度为2、4、8、16的子帧块上。跳频块长度和跳频偏移是单元特定的参数。跳频可以跨越2个窄带或4个等间距窄带。在每个跳跃窄带内携带MPDCCH的RBs的相对位置保持不变。

物理层处理和程序

与PDSCH类似,LTE- m使用与LTE相同的物理广播信道(PBCH),但有可选的重复。

  • 核心PBCH和非核心PBCH -LTE-M PBCH分为两部分;“核心”PBCH,即正常的LTE PBCH,以40毫秒的周期在每帧的第一个子帧中传输。非核心部分是LTE-M特定的重复,其中'核心' PBCH符号根据双工模式和循环前缀长度最多重复5次。

  • 重复,PBCH重复出现在上一帧的子帧9和FDD当前无线电帧的子帧0中,由TS 36.211给出表6.6.4-1 [1].对于TDD,重复出现在同一无线电帧的0和5子帧中,如表6.6.4-2所示。对于核心部分和重复部分,子载波保持相同。注意,与核心部分不同,PBCH重复不应该映射到CSI参考信号使用的REs。重复是根据双工模式和循环前缀长度定义的。对于FDD,所有PBCH核心符号在普通循环前缀下重复4次,在扩展循环前缀下重复3次。对于TDD,如果扩展循环前缀,所有符号重复3次。对于TDD和正常循环前缀,PBCH核心符号0和1重复5次,符号2和3重复3次。

仿真设置

本例分为以下步骤:

  • 配置模拟参数(单元范围和特定于MPDCCH/PDSCH)

  • 创建并编码一个用于在MPDCCH上传输的DCI消息有效负载

  • 创建并编码DL-SCH有效载荷,用于在PDSCH上传输

  • 生成MPDCCH子帧序列和DM-RS的符号,并映射到多子帧资源网格的资源元素中

  • 生成LTE-M PDSCH子帧序列的符号,映射到多子帧资源网格的资源元素中

  • 生成LTE-M PBCH子帧序列的符号,映射到多子帧资源网格的资源元素中

  • 应用CP-OFDM调制到最终的网格,以创建相关的基带波形

  • 资源网格和时间序列波形显示图

在第一节中,我们指定了在后面的章节中用于DCI、MPDCCH和DM-RS创建的模拟参数。本例使用带宽为5MHz和正常循环前缀的LTE软驱载波。单元范围的设置包含在结构中enb, MPDCCH具体参数包含在结构中mpdcchPDSCH的具体参数包含在结构中pdsch

enb =结构();enb。NDLRB = 25;LTE运营商BWenb。NCellID = 1;%单元格IDenb。CellRefP = 1;特定于单元的端口的数量enb。CFI = 3;% CFI指示器enb。DuplexMode =“FDD”%双工模式enb。TDDConfig = 1;%上行/下行配置(TDD)enb。CyclicPrefix =“正常”%循环前缀时长enb。NSubframe = 0;%子帧数enb。NFrame = 0;%帧数enb。CSIRSPeriod =“关闭”茜茜- rs周期控制enb。CSIRSConfig = 0;% CSI-RS配置enb。CSIRefP = enb.CellRefP;% CSI-RS天线端口数enb。ZeroPowerCSIRSPeriod =“关闭”零功率CSI-RS周期控制enb。ZeroPowerCSIRSConfig = 0;零功率CSI-RS配置enb。Ng =“六”HICH组乘数enb。PHICHDuration =“扩展”% PHICH持续时间设置跳变的具体参数enb。HoppingOffset = 1;%跳偏移量1…maxAvailableNarrowbands (TS 36.331)enb。NChDLNBhop = 2;MPDCCH/PDSCH跳过的窄带数(2或4)enb。NChDLNB = 2;%单跳子帧数/跳块长度
% MPDCCH配置mpdcch =结构();mpdcch。跳来跳去= true;%启用/禁用跳频(仅为1.4MHz)mpdcch。NRepMPDCCH = 8;% MPDCCH重复的总次数mpdcch。epdccheck = [0 7];% ECCE范围用于此MPDCCH (8 ECCE)mpdcch。EPDCCHType =“本地化”%传输类型('本地化','分布式')mpdcch。EPDCCHNID = 1;单元格ID/MPDCCH ID取决于搜索空间类型mpdcch。EPDCCHStart = 4;% MPDCCH开始OFDM符号在每个子帧mpdcch。RNTI = 1;% RNTI用于“局部”传播

MPDCCH分配- - - - - -用于MPDCCH传输的PRB(初始)集由一个基于0的PRB指数向量定义,该向量指定了PRB在宽带载波中的绝对位置。这些prb应该在有效的窄带内。如果MPDCCH的跳频被禁用,MPDCCH候选将始终在'InitPRBSet'参数指定的prb中传输。如果MPDCCH启用跳频,MPDCCH候选将在与prb相同的相对位置传输,但在TS 36.211节6.8B.5中定义的不同窄带中传输。对于本例中使用的5MHz LTE载波,有四个窄带,如TS 36.211节6.2.7所示[1].第一个窄带的prb为0…5、第二个有PRBs 6…11, third has PRBs 13...18 and the fourth has PRBs 19...24. All other PRBs within the 5MHz band fall outside the narrowbands and cannot be used for LTE-M transmission. In this example, we use MPDCCH format 2, where 8 ECCEs are used for the MPDCCH transmission. Each PRB slot pair consists of 4 ECCEs therefore we need to define a minimum allocation of 2 PRB. In this example, we select the 3rd and 4th PRBs in the first narrowband

mpdcch。InitPRBSet = (2:3) ';mpdcch。InitNSubframe = 0;第一个MPDCCH子帧的绝对子帧数
% PDSCH配置pdsch =结构();pdsch。跳= true;%启用/禁用跳频(仅为1.4MHz)pdsch。NRepPDSCH = 16;% PDSCH重复的总次数pdsch。CEMode =“一个”% A表示CE模式A, B表示CE模式Bpdsch。TxScheme =“Port0”%端口0或TxDiversity或Spatial Mux或端口7pdsch。调制=“正交相移编码”%调制方案(QPSK/16QAM)pdsch。NLayers = 1;层数%pdsch。房车= 0;%冗余版本的DL-SCH处理pdsch。RNTI = 1;% RNTI用于终端pdsch。NSCID = 0;%匆忙身份pdsch。TrBlkSizes = 100;%传输块大小

PDSCH分配- - - - - -在CE模式A(通过DCI格式6-1A发出信号)的情况下,PRB分配是灵活的;在CE模式B(通过DCI格式6-1B发出信号)的情况下,PRB分配是固定的。CE模式A可以在资源分配类型2定义的一个或多个窄带内的1 ~ 6个prb上进行分配,也可以通过资源分配类型0对整个LTE运营商带宽进行分配。在CE模式B下,分配可以跨越整个6个prb,也可以跨越配置的窄带的前4个prb。对于Cat-M1设备,传输在单个窄带中。对于Cat-M2设备,如果较高的层参数ce-pdsch-maxBandwidth-config当在CE模式B下设置为20MHz时,传输可以跨越多个窄带,整体分配最多可达96个prb(分组为宽频带,每个宽频带由4个窄带组成)。使用的宽带通过DCI中的宽带组合索引字段发出信号,如TS 36.213表7.1.6-2所述[3.].如果ce-pdsch-maxBandwidth-config设置为5MHz时,传输发生在由1、2、3或4个窄带组成的单一宽带中,这取决于LTE载波带宽(NDLRB)。

在本例中,我们使用InitPRBSet参数和InitNarrowbandIndex.如果不使能跳频功能,则LTE-M PDSCH始终在指定的prb中传输InitPRBSet而且InitNarrowbandIndex参数。如果跳频被启用,PDSCH将在与prb相同的相对位置传输,但在TS 36.211节6.4.1定义的不同窄带内传输[1].如果分配跨越多个窄带或一个或多个宽频带,则InitNarrowbandIndex应该是一个指定组成窄带指标的向量。举个例子,如果ce-pdsch-maxBandwidth-config为20MHz, LTE- m传输是在20MHz LTE载波内,有4个宽带(0,1,2,3)可用于LTE- m PDSCH传输,具有相应的窄带索引{(0 12 3)(4 5 6 7)(8 9 10 11)(12 13 14 15)}。如果所需的分配是宽带2和3,则InitNarrowbandIndex然后必须设置为[8 9 10 11 12 13 14 15]。

pdsch。InitPRBSet = (1:2) ';基于% 0的PRB索引pdsch。InitNarrowbandIndex = 0;基于% 0的宽带索引在本例中,当传输超过2时,我们禁用跳频%或更多窄带如果> 1 pdsch. numel(pdsch. init窄带索引)跳= false;mpdcch。跳来跳去= false;结束

启用或禁用PBCH重复

enb。RepPBCHEnable = true;指定MPDCCH, MPDCCH DM-RS, PDSCH和的功率缩放分贝参考信号%(小区RS或DM-RS)mpdcch。MPDCCHPower = 30;mpdcch。MPDCCHDMRSPower = 32;pdsch。ρ= 25;pdsch。RSPower = 80;PBCH核心和代表部件的%功率水平enb。PBCHPower = 33;enb。PBCHRepsPower = 36;PBCH Cell RS代表的%功率水平enb。PBCHCellRSRepsPower = 28;

要模拟的子帧总数(所有下行子帧都是BL/CE子帧),MPDCCH和PDSCH传输时没有任何子帧间隙

totmtcSubframes = mpdcch.InitNSubframe + mpdcch.NRepMPDCCH + 2 + pdsch.NRepPDSCH;识别一个帧中的所有下行子帧信息= arrayfun (@ (x) lteDuplexingInfo (setfield (enb,“NSubframe”, x)), 0:9);dlsfs = arrayfun (@ (x) strcmpi (x。SubframeType,“下行”),信息);要模拟的绝对子帧总数sfsnumlastFrame = getlastabsSF (dlsfs totmtcSubframes);totmtcSubframes = floor(totmtcSubframes/sum(dlsfs)) *10 + sfsnumlastFrame;第一个PDSCH子帧的绝对子帧数,这将是2MPDCCH子帧之后的%子帧(假设没有非BL/CE子帧)lastSfForMPDCCHPlus2 = getlastabsSF (dlsfs mpdcch。NRepMPDCCH + 2);MPDCCH+2的最后一帧的最后一个子帧数pdsch。InitNSubframe = mpdcch。((mpdcch InitNSubframe +地板。NRepMPDCCH+ 2)/sum(dlsfs)) *10 + lastSfForMPDCCHPlus2;查找MPDCCH传输的最后一个绝对子帧lastSfForMPDCCH = getlastabsSF (dlsfs mpdcch.NRepMPDCCH);MPDCCH的最后一帧的最后一个子帧号mtclastabsSfForMPDCCH = mpdcch。((mpdcch InitNSubframe +地板。NRepMPDCCH)/sum(dlsfs)) *10 + lastSfForMPDCCH;

DCI消息编码

位向量dciBits是否传递给函数lteDCIEncode它执行CRC屏蔽和插入、尾咬卷积编码和速率匹配,遵循TS 36.212第5.3.3.2至5.3.3.4节。注意第三个参数lteDCIEncode指定与子帧中MPDCCH数据位容量相等的速率匹配输出大小。这里我们使用一个所有的26位DCI假消息,对应于TS 36.212节5.3.3.1.12中指定的DCI Format 6-1A消息。

%查找MPDCCH数据位容量[~,信息]= lteEPDCCHIndices (enb setfield (mpdcch,“EPDCCHPRBSet”mpdcch.InitPRBSet));% #好< SFLD >定义DCI消息位dciBits = 1(26日1);创建编码的DCI位codedDciBits = lteDCIEncode (mpdcch dciBits info.EPDCCHG);

DL-SCH编码

查找LTE-M PDSCH数据位容量,不包括PBCH,% PSS, SSS和CSI-RS REs.因此我们选择子帧9,这是一个DL%的子帧在FDD和TDD双工模式(注意:子帧9不是DL% TDDConfig 0, TDDConfig 0没有“正常的”DL子帧)fullPDSCHsf = 9;[~, fullInfo] = ltePDSCHIndices (setfield (enb,“NSubframe”fullPDSCHsf)、pdsch getPDSCHAllocation (enb pdsch));% #好< SFLD >定义DL-SCH消息位trData = 1 (pdsch.TrBlkSizes (1), 1);创建编码的DL-SCH位codedTrBlock = lteDLSCH (enb pdsch、fullInfo.G trData);

MPDCCH代

在本例中,我们使用MPDCCH格式2和2个prb的本地化类型。有2或4个prb且无重复的MPDCCH使用与EPDCCH相同的格式表(TS 36.211表6.8A.1-2)。对于所有其他情况,格式由TS 36.211表6.8B.1-2给出。还有CE模式A,没有重复和所有的LTE-M子帧,置乱得到初始化每一个子帧的epdch和cinit是一样的(因为Nacc= 1CEmodeA而且NabsMPDCCH= 1).所有其他处理阶段,即符号调制、层映射、预编码和映射到资源元素对EPDCCH和MPDCCH是相同的。因此,我们使用EPDCCH函数来生成MPDCCH符号和索引。

置乱块中的子帧数Nacc = 1;如果strcmpi (enb。DuplexMode,“FDD”) & & mpdcch。NRepMPDCCH>= 4 Nacc = 4;elseifstrcmpi (enb。DuplexMode,“TDD”) & & mpdcch。NRepMPDCCH>= 10 Nacc = 10;结束为整个传输创建一个资源网格。。MPDCCH, PDSCH和% DM-RS符号将被映射到这个数组中。注意,我们正在创建%网格为4个天线平面,因为MPDCCH传输可以发送在端口上%从集合中选择(107,108,109和110)subframeSize = lteDLResourceGridSize (enb 4);sfgrid = zero ([subframeSize(1) subframeSize(2)*totSubframes subframeSize(3:end)]);mpdcchSym = [];初始化MPDCCH符号mpdschSym = [];初始化PDSCH符号mpbchCoreSymFull = [];初始化PBCH符号startSubframe = enb.NFrame * 10 + enb.NSubframe;初始绝对子帧数sf = startSubframe + (0:totSubframes -1)
设置当前绝对子帧数和帧数enb。NSubframe = mod(科幻,10);enb。NFrame =地板((sf) / 10);如果这不是下行子帧,则跳过处理duplexInfo = lteDuplexingInfo (enb);如果~ strcmpi (duplexInfo。SubframeType,“下行”继续结束%正在传输MPDCCH如果(sf >= mpdchh . initnsubframe) && (sf < mtclastabsSfForMPDCCH)计算当前子帧使用的PRBSetprbset = getHoppingAllocation (enb mpdcch);计算当前子帧的MPDCCH索引mpdcch。EPDCCHPRBSet = prbset;[mpdcchIndices,信息]= lteEPDCCHIndices (enb mpdcch);创建一个空的子帧网格子帧= lteDLResourceGrid (enb 4);从DCI码字编码MPDCCH符号在重复的情况下,相同的符号在每一个NRepMPDCCH子帧块。根据需要采用跳频如果~mod(sf,Nacc) || isempty(mpdcchSym) mpdcchSym = lteEPDCCH(enb,mpdcch,codedDciBits)*db2mag(mpdcch. mpdcchpower);结束将MPDCCH符号映射到子帧网格子帧(mpdcchIndices) = mpdcchSym;创建mpdchdm - rsMPDCCH和它的参考符号在同一设备上传输。%端口(s),并且只在其中的prb上传输%对应的MPDCCH被映射。DM-RS序列与for相同根据TS 36.211第6.10.3A节的公式给出epdchmpdcchDMRS = lteEPDCCHDMRS (enb mpdcch) * db2mag (mpdcch.MPDCCHDMRSPower);MPDCCH DM-RS符号mpdcchDMRSIndices = lteEPDCCHDMRSIndices (enb mpdcch);MPDCCH DM-RS指数子帧(mpdcchDMRSIndices) = mpdcchDMRS;将DM-RS信号映射到网格现在将当前子帧分配到整个网格中sfgrid (:, (1: subframeSize(2)) +科幻* subframeSize(2):) =子帧;结束

提单/ CE PDSCH一代

对于LTE-M PDSCH, PBCH、PSS、SSS和CSI-RS RE位置被计算在映射中,但在传输中不使用。这意味着速率匹配容量应该包括这些RE位置,但这些位置的符号不被传输。因此,我们相应地创建码字并戳穿与冲突位置对应的符号

如果(科幻> = pdsch.InitNSubframe)计算当前子帧使用的PRBSetprbset = getPDSCHAllocation (enb pdsch);计算当前子帧的PDSCH索引pdsch。PRBSet = PRBSet;mpdschIndices = ltePDSCHIndices (enb pdsch pdsch.PRBSet);%如果子帧包含PBCH, PSS, SSS, CSI-RS或零功率% cssi - rs REs,那么我们需要刺穿相应的符号%从映射,但匹配率应该是充分的% PDSCH容量忽略可能存在这些符号。这是通过设置子帧和TDDConfig(如果TDD模式)来完成的%到不包含PBCH, PSS和SSS的子帧,并关闭% CSI-RS和ZP CSI-RS。可能的PDSCH索引的全部集合是%重新计算了每一个子帧,因为这些可以改变时的频率%跳跃enbTemp = enb;enbTemp。TDDConfig = 1;% TDDConfig 0没有完整的PDSCH子帧enbTemp。NSubframe = fullPDSCHsf;设置子帧为一个完整的PDSCH子帧enbTemp。CSIRSPeriod =“关闭”茜茜- rs周期控制enbTemp。ZeroPowerCSIRSPeriod =“关闭”零功率CSI-RS周期控制mpdschIndicesFull = ltePDSCHIndices (enbTemp pdsch pdsch.PRBSet);[~, txmpdschIndicesPositions] = intersect(mpdschIndicesFull, mpdschindicesices);创建一个空的子帧网格子帧= lteDLResourceGrid (enb 4);编码码字中的PDSCH符号在重复的情况下,相同的符号在每一个NRepPDSCH子帧块。根据需要采用跳频如果~mod(sf,Nacc) || isempty(mpdschSym) mpdschSym = ltePDSCH(enb,pdsch,codedTrBlock)*db2mag(pdsch. rho);结束将穿孔的PDSCH符号映射到子帧网格子帧(mpdschIndices) = mpdschSym (txmpdschIndicesPositions);如果适用,发送ue特定参考信号(DM-RS)如果任何(strcmpi (pdsch。TxScheme, {“Port5”“Port7-8”“Port8”“Port7-14”})) ueRSIndices = lteDMRSIndices(enb,pdsch);ueRSSymbols = lteDMRS (enb pdsch);子帧(ueRSIndices) = ueRSSymbols * db2mag (pdsch.RSPower);将符号映射到网格结束现在将当前子帧分配到整个网格中sfgrid (:, (1: subframeSize(2)) +科幻* subframeSize(2):) =子帧;结束

提单/ CE PBCH一代

资源网格REs上的PBCH符号生成与映射。LTE- m PBCH由普通LTE“核心”部分和LTE- m特定重复部分组成。核心PBCH符号只出现在第一个子帧中,其周期为4帧。

子帧= sfgrid (:, (1: subframeSize(2)) +科幻* subframeSize (2):);如果(国防部(enb.NSubframe 10) = = 0)生成符号,如果它是第一个模拟帧或当mod(NFrame,4)为0时%;如果~mod(enb. nframe,4) || isempty(mpbchCoreSymFull) mpbchCoreSymFull = getMPBCHCore(enb);结束mpbchCoreIndices = ltePBCHIndices (enb, {“基于1”});现在提取出框架的核心部分mpbchCoreSym = mpbchCoreSymFull(:,国防部(enb.NFrame, 4) + 1);将PBCH核心符号映射到子帧子帧(mpbchCoreIndices) = mpbchCoreSym * db2mag (enb.PBCHPower);现在将当前子帧分配到整个网格中sfgrid (:, (1: subframeSize(2)) +科幻* subframeSize(2):) =子帧;如果PBCH,则使细胞RS符号和索引重复启用%的重复次数[mpbchCoreCellRSSymbols, mpbchCoreCellRSIndices] = getPBCHCoreCellRS (enb);elseifenb。RepPBCHEnable & & strcmpi (enb。DuplexMode,“FDD”) & & (mod (enb.NSubframe, 10) = = 9)如果这是FDD模式中的第9个子帧,那么创建核心%符号和下一帧用于PBCH的索引子帧中%的重复enbNext = enb;enbNext。NSubframe = 0;enbNext。NFrame = enbNext.NFrame + 1;前进到下一帧%,如果当前帧包含最后一个PBCH块,那么我们需要%新的PBCH符号集如果mod(enb.NFrame,4)==3 mpbchCoreSymFull = getMPBCHCore(enbNext);结束现在提取出框架的核心部分mpbchCoreSym = mpbchCoreSymFull(:,国防部(enbNext.NFrame, 4) + 1);mpbchCoreIndices = ltePBCHIndices (enbNext, {“基于1”});[mpbchCoreCellRSSymbols, mpbchCoreCellRSIndices] = getPBCHCoreCellRS (enbNext);结束% PBCH重复部分如果启用如果(enb.RepPBCHEnable)获取由重复的PBCH符号组成的PBCH重复部分和重复的Cell RS信号和相应的指标[pbchrepSymbols, pbchrepIndices, pbchCellRSrepSymbols, pbchCellRSrepIndices] = getPBCHRep(enb,mpbchCoreSym,mpbchCoreIndices,mpbchCoreCellRSSymbols,mpbchCoreCellRSIndices);将PBCH重复映射到网格子帧(pbchrepIndices) = pbchrepSymbols * db2mag (enb.PBCHRepsPower);将Cell RS重复映射到网格子帧(pbchCellRSrepIndices) = pbchCellRSrepSymbols * db2mag (enb.PBCHCellRSRepsPower);结束现在将当前子帧分配到整个网格中sfgrid (:, (1: subframeSize(2)) +科幻* subframeSize(2):) =子帧;
结束

创建时域基带波形

通过OFDM调制资源网格创建时域基带波形。得到的矩阵有四列;其中一个将包含MPDCCH的复杂基带时域波形样本

波形= lteOFDMModulate (enb sfgrid);

绘制传输网格和基带波形

绘制网格和时域基带波形。如果传输使用多个端口,则只显示第一个端口。注意,资源网格图使用各个通道和信号的功率级别为资源元素分配颜色。

创建整个资源网格的映像绘制MPDCCH使用的端口和所有其他通道的第一个端口图我=图像(abs (sfgrid (:,:, info.EPDCCHPorts (1) + sfgrid (:,: 1)));提出= parula (64);colormap (im.Parent提出);轴xy;标题(sprintf ('LTE-M CEMode%s Downlink RE Grid (NRepMPDCCH = %d, NRepPDSCH = %d)', mpdcch.NRepMPDCCH pdsch.CEMode pdsch.NRepPDSCH)包含(OFDM符号的) ylabel (副载波的创建图例框以指示与REs相关的通道/信号类型重命名= {“MPDCCH”“MPDCCH DRS”“PDSCH”“PBCH核心”“PBCH代表”“细胞RS代表”};clevels =圆(db2mag ([mpdcch。MPDCCHPower mpdcch。MPDCCHDMRSPower pdsch。ρenb。PBCHPower enb。PBCHRepsPower enb.PBCHCellRSRepsPower]));%如果使用DM-RS,包括在图例中如果任何(strcmpi (pdsch。TxScheme, {“Port5”“Port7-8”“Port8”“Port7-14”}))重命名{结束+ 1}=dmr的;clevels结束(+ 1)= pdsch.RSPower;结束N =元素个数(重命名);L =线((N), (N),“线宽”8);%生成线根据cmap设置颜色集(L, {“颜色”}, mat2cell(提出(min (1 + clevels长度城市规划机构(cmap)),:), (1, N), 3));根据cmap设置颜色传奇(重命名{:});创建单独的控制/数据波形图。图绘制(abs(波形(:,info.EPDCCHPorts(1))))标题(“MPDCCH时域波形”)包含(“样本”) ylabel (“振幅”图表abs(波形(:,1))“PBCH和PDSCH时域波形”)包含(“样本”) ylabel (“振幅”

本地函数

本例中使用的本地函数如下:

  • calcNarrowbandPRBSets—计算窄带和关联的prb

  • getHoppingAllocation—计算子帧分配

  • getPDSCHAllocation—计算PDSCH分配

  • getPBCHCore—计算核心PBCH符号和指标

  • getPBCHCoreCellRS—计算核心PBCH符号和指标

  • getPBCHRep—计算PBCH重复部分

选定的参考书目

  1. 3GPP TS 36.211“物理通道和调制”

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

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

  4. 3GPP TS 36.331《无线电资源控制(RRC)协议规范》

  5. O. Liberg, M. Sundberg, y . p。王志强,王志强,王志强,移动物联网:技术、标准和性能,爱思唯尔,2018。

  6. E. Dahlman, S. Parkvall和J Skold 4G LTE-Advanced Pro和5G之路

本地函数

%计算LTE载波带宽的宽带、窄带和prbset函数[prbsets, nNB nWB] = calcNarrowbandPRBSets (NDLRB)%窄带和宽带(见36.211节6.2.7)NDLNB =地板(NDLRB / 6);nNB = 0: (NDLNB-1);%窄带如果NDLNB >= 4 NDLWB = floor(NDLNB/4);其他的NDLWB = 1;结束nWB = 0: (NDLWB-1);%宽带%窄带内的prb2 = 0:5;ii0 = floor(NDLRB/2) - 6*(NDLNB/2);prbsets = 0(6元素个数(nNB));nb = 1:元素个数(nNB)如果国防部(NDLRB, 2) & & nNB (nb) > = (NDLNB / 2) prbsets (:, nb) = 6 * (nNB (nb)) + ii0 + 2 + 1;其他的prbsets (:, nb) = 6 * (nNB (nb)) + ii0 + 2;结束结束结束%计算跳变窄带内分配的资源块函数prbset = getHoppingAllocation (enb chs)如果禁用跳频,分配与初始值相同如果~ chs。跳prbset = chs.InitPRBSet;返回结束%跳窄带计算根据TS 36.211节6.8B.5nNBi0ss = 0;获取可能的窄带和相关的prbset如果strcmpi (enb。DuplexMode,“FDD”) iddelta = 0;其他的idelta = enb.NChDLNB-2;结束j₀地板= ((chs.InitNSubframe + idelta) / enb.NChDLNB);获取窄带和相应的资源[prbsets, nNB] = calcNarrowbandPRBSets (enb.NDLRB);计算此子帧的窄带enb。NSubframe = enb.NFrame * 10 + enb.NSubframe;获取绝对子帧数nnBi =国防部(地板(nNBi0ss + (mod (((enb.NSubframe + idelta) / enb。NChDLNB - j0),enb.NChDLNBhop))*enb.HoppingOffset),numel(nNB));计算此子帧的PRBSet,它们在相同的RBs上%在窄带内[rbstartIndex,nbstartIndex] = find(prbsets == chs.InitPRBSet(1));[rbendIndex,nbendIndex] = find(prbsets == chs.InitPRBSet(end));如果(isempty(rbstartIndex) || isempty(rbendIndex)) || (nbstartIndex ~= nbendIndex) error('指定的PRBSet无效,必须是单个窄带内的资源');结束prbset = prbsets (rbstartIndex: rbstartIndex +元素个数(chs.InitPRBSet) 1, nnBi + 1);结束%计算PDSCH分配函数prbset = getPDSCHAllocation (enb PDSCH)如果PDSCH。跳来跳去猫- m1模式与跳跃prbset = getHoppingAllocation (enb PDSCH);其他的%计算窄带内的分配[prbsets, nNB] = calcNarrowbandPRBSets (enb.NDLRB);计算此子帧的PRBSet,它们在相同的RBs上%在所有窄带内rbstartIndex = mod(find(prbsets == pdst . initprbset (1))-1,6)+1;rbendIndex = mod(find(prbsets == pdst . initprbset (end))-1,6)+1;如果isempty(rbstartIndex) || isempty(rbendIndex) error('指定的PRBSet无效,必须是窄带内的资源');结束如果任何(PDSCH。init窄带索引> max(nNB) error('指定的init窄带索引无效,必须来自0…%d'马克斯(nNB));结束prbset = prbsets (rbstartIndex: rbendIndex PDSCH.InitNarrowbandIndex + 1);prbset = prbset (:);结束结束计算Cell RS REs和对应“核心”PBCH的符号%的部分函数[pbchCoreCellRSSymbols, pbchCoreCellRSIndices] = getPBCHCoreCellRS (enb)我们需要重复(k,l)区域内的单元参考信号NscRB = 12;k = (enb.NDLRB*NscRB)/2 -36 + (0:71) + 1;基于% 1的全可能PBCH子载波位置如果strcmpi (enb。CyclicPrefix,“正常”) NsymbDL = 7;其他的NsymbDL = 6;结束l = NsymbDL+ (0:3)+ 1;基于% 1的OFDM符号号在子帧中对应PBCH核心部分注:单元格RS符号和索引可从%网格(如果提供或可以在这里创建),如下所示cellRSIndices = lteCellRSIndices (enb);cellRSSymbols = lteCellRS (enb);rsgrid = lteDLResourceGrid (enb);rsgrid (cellRSIndices) = cellRSSymbols;现在移除核心PBCH带外的所有RS符号excludeSubs = setdiff (1: enb.NDLRB * NscRB k);excludeofdmSymbols = setdiff (1: NsymbDL * 2, l);现在删除所有不需要的RE位置rsgrid (:, excludeofdmSymbols:) = 0;rsgrid (excludeSubs,:,) = 0;网格中的内容是要重复的RS符号。pbchCoreCellRSIndices =找到(rsgrid);pbchCoreCellRSSymbols = rsgrid (pbchCoreCellRSIndices);结束计算PRBCH和Cell RS REs和对应的符号%重复部分函数[pbchrepSymbols,pbchrepIndices, pbchCellRSrepSymbols, pbchCellRSrepIndices] = getpbchchrep (enb,pbchCoreSymbols, pbchcoreindexes,pbchCoreCellRSSymbols,pbchCoreCellRSIndices) pbchrepIndices = [];pbchrepSymbols = [];symMappings = {};pbchCellRSrepIndices = [];pbchCellRSrepSymbols = [];对于FDD和TDD模式,如果NDLRB = 6,则没有重复如果enb。NDLRB = = 6返回结束获取PBCH核心部分的子载波[pbchCoreSubcarriers、ofdmSymbols ~] = ind2sub (lteDLResourceGridSize (enb) pbchCoreIndices);获取Cell RS核心部分的子载波[pbchCellRSCoreSubcarriers、ofdmSymbolsCellRS ~] = ind2sub (lteDLResourceGridSize (enb) pbchCoreCellRSIndices);% FDD只在子帧9(帧n-1)和0(帧n)和TDD中出现在同一帧的子帧0和5中%的次数获取代表进入的子帧符号编号如果strcmpi (enb。DuplexMode,“FDD”如果strcmpi (enb。CyclicPrefix,“正常”) NsymbDL = 7;如果(mod(enb.NSubframe,10) == 0) symMappings = {5;12;13;14 [4]};elseif(mod(enb.NSubframe,10)==9) symMappings = {[4 8 12];[5 9 13];[6 10 14];11 [7]};结束其他的NsymbDL = 6;如果(mod(enb.NSubframe,10) == 0) symMappings = {[];4;11;12};elseif(mod(enb.NSubframe,10)==9) symMappings = {[4 7];8 [5];9 [6];11 [10]};结束结束其他的如果strcmpi (enb。CyclicPrefix,“正常”) NsymbDL = 7;如果(mod(enb.NSubframe,10) == 0) symMappings = {[4 12];13 [5];6;7};elseif(国防部(enb.NSubframe 10) = = 5) & & enb。NDLRB>15 symMappings = {[4 8 12];[5 9 13];10 [6];11 [7]};结束其他的NsymbDL = 6;如果(mod(enb.NSubframe,10) == 0) symMappings = {4;5;6;11};elseif(国防部(enb.NSubframe 10) = = 5) & & enb。NDLRB>15 symMappings = {[4 7];8 [5];9 [6];11 [10]};结束结束结束%如果这是一个重复子帧,找到索引如果~ isempty (symMappings)创建一个空的子帧网格sfgrid = lteDLResourceGrid (enb);sfgridRS = lteDLResourceGrid (enb);osymb = 1:4%为所有4个PBCH符号提取每个核心符号映射到一个或多个OFDM%符号coreOFDMsymb = pbchCoreSymbols (ofdmSymbols = = (osymb + NsymbDL));coreOFDMsymbRS = pbchCoreCellRSSymbols (ofdmSymbolsCellRS = = (osymb + NsymbDL));映射到当前中所有新的重复OFDM符号%子帧m = 1:元素个数(symMappings {osymb, 1})%为当前符号(子载波)创建索引%与核心符号相同)symtoMap = symMappings {osymb 1} (m);sfgrid (pbchCoreSubcarriers (ofdmSymbols = = (osymb + NsymbDL)), symtoMap,:) = coreOFDMsymb;sfgridRS (pbchCellRSCoreSubcarriers (ofdmSymbolsCellRS = = (osymb + NsymbDL)), symtoMap,:) = coreOFDMsymbRS;结束结束根据TS 36.211第6.6.4节,PBCH重复和细胞RS%重复被CSI (& ZP CSI) RS信号刺穿。如此清晰%这些职位csirsIndices = lteCSIRSIndices (enb);sfgrid (csirsIndices) = 0;sfgridRS (csirsIndices) = 0;现在获取PBCH重复符号和索引pbchrepIndices =找到(sfgrid);pbchrepSymbols = sfgrid (pbchrepIndices);现在获取CellRS重复符号和索引。pbchCellRSrepIndices =找到(sfgridRS);pbchCellRSrepSymbols = sfgridRS (pbchCellRSrepIndices);结束结束%获取MPBCH核心部件符号函数mpbchCoreSym = getMPBCHCore(enb) bchBits = lteMIB(enb);pbchBits = lteBCH (enb bchBits);mpbchCoreSym = ltePBCH (enb pbchBits);重塑到四个部分,继续到4帧。mpbchCoreSym =重塑(mpbchCoreSym元素个数(mpbchCoreSym) / 4, 4);结束获取用于最后一个帧的绝对子帧号通道的%传输函数sfsnumlastFrame = getlastabsSF(dlsfs,totmtcSubframes) sfslastFrame = mod(totmtcSubframes,sum(dlsfs));在最后一帧中发送%的子帧如果sfslastFrame查找要传输的最后一个子帧对应的子帧号sfsnumlastFrame =找到(dlsfs sfslastFrame);sfsnumlastFrame = sfsnumlastFrame(结束);其他的%不需要部分帧sfsnumlastFrame = 0;结束结束
Baidu
map