主要内容

LTE-M上行波形生成

这个例子展示了如何创建一个上行LTE-M组成物理上行共享信道的传输(PUSCH)和相关解调参考信号(DM-RS)包括重复和跳频。预发布13设备相比,Cat-M设备提供更低的成本和复杂性,引入增强报道的重复和扩展DRX进一步节电。

介绍

系统上的特异性子帧位图播放信息(SI)表明哪些子帧LTE-M传输的能力。LTE-M设备可以使重复PUSCH和PUCCH加强覆盖。网络配置一组可能的重复包含4 CE值模式(pusch-maxNumRepetitionCEmodeA表36.213中给出TS 8-2b [3CE模式B()和8值pusch-maxNumRepetitionCEmodeB表36.213中给出TS 8-2c [3])。从这组、网络动态选择实际的重复和信号这个问题作为调度的一部分。上行调度赠款LTE-M设备使用DCI的格式进行了MPDCCH 6-0A CE设备操作的模式在CE和6-0B设备操作模式b一个调度格兰特的结局在下行子帧n是有效的上行PUSCH传播从上行子帧n + 4。与跳频传输的情况下,格兰特表示第一的窄带传输。后续分配能够在窄带之间跳跃,TS 36.211节中定义5.3.4 (1]。

PUSCH

Cat-M1(13)发布设备,PUSCH总是在一个窄带传输。在Cat-M2(14)发布,在CE模式可以选择传输设备24 PRBs如果更高的层参数ce-pusch-maxBandwidth-config设置为5 mhz TS 36.211节表示5.3.4 (1]/ TS 36.306节4.3.4.64 [4]。LTE-M PUSCH可以有多达32 CE模式(见TS 36.213表中重复8-2b [3])和2048 CE模式B(见TS 36.213表中重复8-2c [3])。提单/ CE问题在这个模式下,PUSCH跳频时启用更高级别的参数pusch-HoppingConfig设置和DCI的跳频信号格式6-0A表明跳频。提单/ CE问题在CE模式B, PUSCH跳频时启用更高级别的参数pusch-HoppingConfig设置。如果PUSCH跳频不启用,PUSCH重复都位于相同的复审委员会资源。如果启用了跳频,PUSCH PUSCH子帧中传输NabsPUSCH连续上行子帧连续使用相同数量的伪随机位序列与前面的子帧在窄带复审委员会开始从相同的资源。如果一个资源分配或跳频会导致PUSCH资源分配以外的可分配伪随机位序列然后PUSCH传输子帧中被删除。

问题=结构();%初始化结构问题。NULRB = 50;%的带宽问题。DuplexMode =“FDD”;%双工模式问题。TDDConfig = 1;% UL / DL配置如果TDD双工模式问题。CyclicPrefixUL =“正常”;%的循环前缀长度问题。NCellID = 1;%细胞身份问题。RNTI = 1;% RNTI价值问题。NFrame = 0;%帧数问题。NSubframe = 0;%子帧数问题。NTxAnts = 1;%的发送天线数量问题。缩短= 1;最后%符号可用性(SRS)分配%建立跳跃具体参数ue.HoppingOffset= 1;%之间的窄频抵消一个窄带和下一个窄带% PUSCH啤酒花,表示为一个上行窄带的数量ue.NChULNB= 2;%的数量绝对连续的子帧% PUCCH或PUSCH呆在相同的pusch =结构();pusch。CEMode =“一个”;% CE模式或CE模式Bpusch.Hopping= true;%启用/禁用跳频pusch.NRepPUSCH= 8;% PUSCH重复的总数pusch。调制=“正交相移编码”;%符号调制pusch。房车= 0;% UL-SCH处理冗余版本pusch。NLayers = 1;%的层数pusch。TrBlkSizes = 100;%的传输块大小

PUSCH分配- - - - - -PUSCH带宽通常是一个1.4 mhz窄带。有6苏格兰皇家银行在每一个窄带,CE中所有可以分配模式和1或2 RBs CE模式b . 5 mhz可能的扩展BW Cat-M2 CE模式配置(见TS 36.306节4.3.4.64 [4])。我们使用InitPRBSetInitNarrowbandIndex指定PRBs窄带和使用的窄带传输。如果跳频是禁用的,LTE-M PDSCH将在指定的伪随机位序列传输InitPRBSetInitNarrowbandIndex参数。如果启用了跳跃,跳跃的规则确定每个子帧使用窄带。5 mhz带宽是推断通过使用超过6伪随机位序列InitPRBSet参数。在这种情况下,将被禁用,InitNarrowbandIndex忽略了。

基于指定的百分比相对指数的苏格兰皇家银行在窄带情况下%,除了5 mhz Cat-M2 CE模式如果5 mhz Cat-M2 CE模式,这些都是%绝对伪随机位序列用于传输pusch。InitPRBSet = (2:3) ';%窄带用于传输(non-hopping non-5MHz)pusch。InitNarrowbandIndex = 1;%为PUSCH指定扩展在dB, PUSCH DM-RSpusch。PUSCHPower = 30; pusch.PUSCHDMRSPower = 100;如果分配跨越多个窄带%关掉跳跃如果元素个数(pusch.InitPRBSet) > 6 pusch。跳= false;结束

UL-SCH编码

提单/ CE问题在CE模式B,在过去SC-FDMA资源元素符号与细胞特定的子帧配置SRS应当计入PUSCH PUSCH映射而不是用于传输。因此如果CE模式B,关掉缩短在创建编码传输块。

%识别所有上行帧的子帧信息= arrayfun (@ (x) lteDuplexingInfo (setfield(问题,“NSubframe”,x)), 0:9);ulsfs = arrayfun (@ (x) strcmpi (x.SubframeType,“上行”),信息);%在这个例子中,我们假设绝对第一子帧中% PUSCH传播是第一个可用的上行子帧pusch。InitNSubframe =找到(ulsfs, 1) 1;%计算分配pusch。pusch PRBSet = getPUSCHAllocation(问题);ueTemp =问题;%创建所有符号编码的传输块如果strcmpi (pusch.CEMode“B”)& &问题。缩短ueTemp。缩短= 0;结束[~,信息]= ltePUSCHIndices (ueTemp pusch);%定义UL-SCH消息碎片trData = 1 (pusch.TrBlkSizes (1), 1);%创建编码UL-SCH碎片pusch。BetaCQI = 2.0;pusch。BetaRI = 2.0;pusch。BetaACK = 2.0;codedTrBlock = lteULSCH (ueTemp pusch、info.G trData);

LTE-M PUSCH代

在这个例子中,我们生成LTE-M PUSCH和相应的DM-RS与重复和可选的跳频信号。pusch.NRepPUSCH控制PUSCH重复的数量。UE-specific参数pusch.Hopping使跳跃和它的参数ue.HoppingOffsetue.NChULNB定义了跳跃模式。在这个例子中,如果分配横跨多个窄带,跳频将被禁用。LTE-M,每个子帧相同的加扰序列应用PUSCH一块Nacc子帧,所有其他处理阶段即符号调制、层映射,预编码和映射到资源为LTE PUSCH元素是相同的。

%的子帧数块Nacc = 1;如果strcmpi (ue.DuplexMode“FDD”)& & strcmpi (pusch.CEMode“B”)Nacc = 4;elseifstrcmpi (ue.DuplexMode“TDD”)& & strcmpi (pusch.CEMode“B”)Nacc = 5;结束%总提单/ CE子帧来模拟(上行子帧都是提单/ CE%子帧)和PUSCH传播没有任何子帧差距totmtcSubframes = pusch.NRepPUSCH;%总绝对的子帧来模拟startSubframe = ue.NFrame * 10 + ue.NSubframe;%初始绝对子帧数lastabssf = getlastabsSF (ulsfs pusch.InitNSubframe totmtcSubframes);totSubframes = lastabssf-startSubframe + 1;%创建资源网格对整个传输。PUSCH和% DM-RS符号将在这个数组映射subframeSize = lteULResourceGridSize(问题);sfgrid = 0 ([subframeSize (1) subframeSize (2) * totSubframes subframeSize(3:结束)]);mpuschSym = [];%初始化PUSCH符号科幻小说= startSubframe + (0: totSubframes 1)%设置当前绝对子帧和帧数问题。NSubframe = mod(科幻,10);问题。NFrame =地板((sf) / 10);%如果这不是一个上行子帧跳过处理duplexInfo = lteDuplexingInfo(问题);如果~ strcmpi (duplexInfo.SubframeType“上行”)继续结束%计算PRBSet用于当前的子帧pusch prbset = getPUSCHAllocation(问题);%计算PDSCH指数当前的子帧。提单/ CE问题%在CE模式B,在过去SC-FDMA资源元素的象征%子帧配置细胞特定的SRS应当计入% PUSCH映射而不是用于PUSCH的传播pusch。PRBSet = PRBSet;pusch mpuschIndices = ltePUSCHIndices(问题);%创建一个空的子帧网格子帧= lteULResourceGrid(问题);% PUSCH符号编码码字%在重复的情况下,相同的符号是重复的%一块NRepPUSCH子帧。跳频应用的要求如果~国防部(科幻,Nacc) | | isempty (mpuschSym) ueTemp =问题;如果strcmpi (pusch.CEMode“B”)& &问题。缩短ueTemp。缩短= 0;%为完整的子帧创建符号结束mpuschSym = ltePUSCH (ueTemp pusch codedTrBlock) * db2mag (pusch.PUSCHPower);结束% SRS穿刺PUSCH符号映射到子帧网格子帧(mpuschIndices) = mpuschSym(1:元素个数(mpuschIndices));%创建和地图dmr符号。问题。跳=“关闭”;% DRS跳跃问题。SeqGroup = 0;% PUSCH序列组问题。CyclicShift = 0;%用于n1DMRS% LTE-M用正餐,一个循环移位的‘000’领域承担%确定n2DMRS从表5.5.2.1.1-1 TS 36.211pusch。DynCyclicShift = 0;%循环移位的n2DMRS‘000’pusch。OrthCover =“关闭”;%不正交序列pusch mpuschDrs = ltePUSCHDRS(问题)* db2mag (pusch.PUSCHDMRSPower);pusch mpuschDrsIndices = ltePUSCHDRSIndices(问题);子帧(mpuschDrsIndices) = mpuschDrs;%现在当前的子帧分配到整体网格sfgrid (:, (1: subframeSize(2)) +科幻* subframeSize(2):) =子帧;结束

创建时间域基带波形

创建时间域基带OFDM调制波形的网格资源。由此产生的矩阵有四列;其中一个将包含复杂的基带MPDCCH时域波形样本

波形= lteSCFDMAModulate(问题、sfgrid);

情节网格和基带波形传播

绘制网格和时域基带波形。如果传输使用多个端口,只显示第一个端口。注意,资源网格图使用功率PUSCH和DM-RS颜色分配给资源元素。

%创建一个图像的整体资源网格。自从PUSCH经历%改变预编码,我们需要分配一个功率级%符号形象化的阴谋plotgrid = abs (sfgrid (:,: 1));%得到DM-RS位置drspos = (plotgrid = = db2mag (pusch.PUSCHDMRSPower));plotgrid (drspos) = 0;%现在所有PUSCH符号功率设置为阴谋plotgrid (plotgrid ~ = 0) = db2mag (pusch.PUSCHPower);%现在回信DRS和阴谋plotgrid (drspos) = db2mag (pusch.PUSCHDMRSPower);图我=图像(plotgrid);提出= parula (64);colormap (im.Parent提出);轴xy;标题(sprintf (“LTE-M CEMode % s上行再保险网格(NRepPUSCH = % d) '、pusch.CEMode pusch.NRepPUSCH))包含(OFDM符号的)ylabel (副载波的)%创建传奇框来显示频道/信号类型与物有关重命名= {“PUSCH”;“PUSCH DRS”};clevels =圆(db2mag ([pusch。PUSCHPower pusch.PUSCHDMRSPower])); N = numel(reNames); L = line(ones(N),ones(N),“线宽”8);%生成线%根据提出设置颜色集(L, {“颜色”},mat2cell(提出(min (1 + clevels长度城市规划机构(cmap)),:), (1, N), 3));%根据提出设置颜色传奇(重命名{:});

本地函数

下面的本地函数中使用这个例子:

  • calcNarrowbandPRBSets——计算窄带和相关的伪随机位序列

  • getPDSCHAllocation——计算PUSCH子帧分配

  • getlastabsSF——计算PUSCH最后子帧数

选定的参考书目

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

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

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

  4. 3 gpp TS 36.306”用户设备(UE)无线接入能力”

  5. 3 gpp TS 36.331”无线资源控制(RRC)协议规范”

  6. o . Liberg m·桑德博格Y.-P。王,j·伯格曼和j . (goldman Sachs)、移动互联网的东西:技术、标准和性能,爱思唯尔,2018年。

  7. 大肠Dahlman, . . s . Parkvall和J Skold教授4 g LTE-Advanced Pro和5 g的道路

本地函数

%计算宽带、窄带、PRBSets LTE载波带宽函数[prbsets, nNB nWB] = calcNarrowbandPRBSets (NULRB)%窄带和宽带5.2.4(见36.211部分)NULNB =地板(NULRB / 6);nNB = 0: (NULNB-1);%窄带如果NULNB > = 4 NULWB =地板(NULNB / 4);其他的NULWB = 1;结束nWB = 0: (NULWB-1);%宽带%在窄带伪随机位序列2 = 0:5;ii0 =地板(NULRB / 2) - 6 * (NULNB / 2);prbsets = 0(6元素个数(nNB));nb = 1:元素个数(nNB)如果国防部(NULRB, 2) & & nNB (nb) > = (NULNB / 2) prbsets (:, nb) = 6 * (nNB (nb)) + ii0 + 2 + 1;其他的prbsets (:, nb) = 6 * (nNB (nb)) + ii0 + 2;结束结束结束%计算资源块分配给PUSCH子帧函数chs prbset = getPUSCHAllocation(问题)%如果5 mhz模式(24可以使用伪随机位序列),配置是一样的%作为InitPRBSet如果元素个数(chs.InitPRBSet) > 6 prbset = chs.InitPRBSet;返回;结束%的窄带和相应的资源[prbsets, nNB] = calcNarrowbandPRBSets (ue.NULRB);如果马克斯(chs.InitNarrowbandIndex)马克斯(nNB)错误(“无效的窄带(s)指定。只有%…% d窄带带宽从0 d 'nNB + 1, nNB);结束%如果跳频是禁用的,分配是相同的%每个子帧如果~ chs。跳跃prbset = prbsets (chs.InitPRBSet, chs.InitNarrowbandIndex + 1);返回结束%跳跃窄带计算根据5.3.4 TS 36.211部分j₀地板= ((chs.InitNSubframe) / ue.NChULNB);%计算子帧的窄带问题。NSubframe = ue.NFrame * 10 + ue.NSubframe;%得到绝对的子帧数如果国防部(地板(ue.NSubframe / ue.NChULNB-j0), 2) = = 0 nnBi = chs.InitNarrowbandIndex;其他的nnBi =国防部(chs.InitNarrowbandIndex + ue.HoppingOffset元素个数(nNB));结束%计算PRBSet子帧,他们是在相同的苏格兰皇家银行%在窄带内[rbstartIndex, nbstartIndex] =找到(prbsets = = chs.InitPRBSet (1));[rbendIndex, nbendIndex] =找到(prbsets = = chs.InitPRBSet(结束));如果(isempty (rbstartIndex) | | isempty (rbendIndex)) | | (nbstartIndex ~ = nbendIndex)错误(“无效PRBSet指定,必须在单一的窄带的资源);结束prbset = prbsets (rbstartIndex: rbstartIndex +元素个数(chs.InitPRBSet) 1, nnBi + 1);结束%得到绝对的子帧数用于传输%的通道函数lastabssf = getlastabsSF (ulsfs InitNSubframe totmtcSubframes) numulsfsinFrame =总和(ulsfs);%活动sfs的数量在一个框架ulsfsinFrame =找到(ulsfs);% UL子帧的帧(基于)%找到绝对第一子帧,帧initabssf =国防部(InitNSubframe 10);initabsf =地板(InitNSubframe / 10);startIdxwithinFrame = initabssf + 1;基于%的索引UL科幻如果~ ulsfs (startIdxwithinFrame)错误(无效的绝对第一上行子帧的子帧数,指定的用于PUSCH (% d)。这不是一个上行子帧的】,InitNSubframe)结束sfslastFrame =国防部((找到(ulsfsinFrame = = startIdxwithinFrame) 1) + totmtcSubframes numulsfsinFrame);%子帧在最后一帧tx如果sfslastFrame%找到相对应的子帧数最后一子帧传输sfsnumlastFrame =找到(ulsfs sfslastFrame) 1;sfsnumlastFrame = sfsnumlastFrame(结束);其他的%不需要分帧sfsnumlastFrame = 0;结束lastabssf = (initabsf +地板(((找到(ulsfsinFrame = = startIdxwithinFrame) 1) + totmtcSubframes) / numulsfsinFrame)) * 10 + sfsnumlastFrame;结束