NB-IoT上行波形生成

这个例子展示了如何生成LTE- advanced Pro Release 13窄带物联网(窄带物联网)上行波形,包括窄带物理上行共享信道(NPUSCH)和相关的解调参考信号,用于测试和测量应用程序使用LTE工具箱™。

介绍

3GPP在LTE-Advanced Pro版本13中引入了一种新的空中接口,窄带物联网(窄带物联网),针对低数据速率的机器类型通信进行了优化。NB-IoT提供了成本和电力效率的改进,因为它避免了复杂的信令开销所需的LTE为基础的系统。

LTE工具箱可用于生成符合标准的NB-IoT上行复杂基带波形,代表适合测试和测量应用的180kHz窄带载波。LTE工具箱支持所有的NB-Io万博1manbetxT模式的运作描述如下-独立,guardband和带内。

  • 独立:部署在LTE频谱之外的NB-IoT运营商,例如用于GSM或卫星通信的频谱

  • Guardband:部署在两个LTE运营商之间的NB-IoT运营商

  • 带内:部署在LTE运营商资源块上的NB-IoT运营商

NB-IoT上行链路由以下物理层通道和信号组成:

  • 窄带解调参考信号(DM-RS)

  • 窄带物理上行链路共享信道(NPUSCH)

  • 窄带物理随机存取信道(NPRACH)

此示例演示了由NPUSCH和DM-RS信号组成的NB-IoT上行资源单元(RE)网格和波形生成。下面的部分将介绍这些物理信号和通道,这些信号和通道构成网格,并介绍一些关键概念,包括子帧重复、逻辑和传输通道映射,以及不同配置的相应网格。

该示例输出复杂的基带波形以及包含NPUSCH和DM-RS信号的填充网格。该波形可用于从射频测试到接收机实现仿真的一系列应用。

NPUSCH分配

本节将全面介绍NPUSCH如何映射到NB-IoT上行插槽。

NPUSCH可根据两种格式携带上行共享信道(UL-SCH)或上行控制信息:

  • NPUSCH格式1,用于携带上行共享通道(UL-SCH)

  • NPUSCH格式2,用于携带上行控制信息

NPUSCH在一个或多个资源单元上传输,每个资源单元重复128次,以提高传输可靠性和覆盖范围,同时又不牺牲低功耗和低复杂性要求,以满足超低端的物联网使用情况。

NPUSCH的最小映射单元是一个资源单元。它被定义为7 *NslotsUL连续的SC-FDMA符号在时域和NscRU频域内的连续子载波,其中NslotsULNscRU定义见TS 36.211表10.1.2.3-1 [1]。NB-IoT UL-SCH可携带公共控制通道(CCCH)、专用控制通道(DCCH)或专用交通通道(DTCH),并映射到NPUSCH物理通道(TS 36.300第6.1.3.1节和第5.3.1a节[6])。NPUSCH可以映射到一个或多个资源单元,NRU根据TS 36.211第10.1.3.6条的定义[1],每个资源单元都可以被传输Nrep次了。

图中的示例显示了使用的重复模式NRep= 4。传输数据块的总时间为NRU*NULSlots*MidenticalNPUSCH根据TS 36.211第10.1.3.6条的规定[1]。对于下面所示的第一种情况,传输每个传输块NRU= 2,每一个NRU包含由表示的两个UL插槽NULSlots。后映射到Nslots,这些插槽将重复MidenticalNPUSCH= 2(假设NscRU > 1)次。在第二种情况下,我们假设NscRU是1,因此MidenticalNPUSCH= 1。这一点,加上Nslots= 1的结果是每个块在没有内部重复的情况下传输的传输模式。在所有情况下,置乱序列在码字传输或重传开始时重置(参见TS 36.211第10.1.3.1条[1])。重复学习计划的详细规格载于TS 36.211 10.1.3 [1]。

NB-IoT上行槽网格

除了上面描述的槽分配之外,本节还将进一步解释槽中的重新分配。网格由一个或多个包含NPUSCH和相应DM-RS的帧组成。

  • DM-RS: DM-RS在每个NPUSCH槽中传输,其带宽与相关的NPUSCH相同。参考信号取决于子载波的数目NscRU,窄带单元IDNNcellID以及NPUSCH格式NPUSCHFormat。重新定位取决于NPUSCH格式和子载波间距。对于副载波间隔为3.75kHz的NPUSCH格式1,DM-RS在符号4上传输,副载波间隔为15kHz的DM-RS在符号3上传输。对于副载波间隔为3.75kHz的NPUSCH格式2,DM-RS在符号0,1,2上传输,副载波间隔为15kHz时,DM-RS在槽内的符号2,3,4上传输。

  • NPUSCH: NPUSCH除了支持多万博1manbetx音调(12个子载波)带宽外,还支持单音带宽。单音传输可以使用15kHz或3.75kHz的副载波间距,而多音传输使用15kHz的副载波间距。这意味着15kHz模式的插槽持续时间为0.5ms, 3.75kHz的插槽持续时间为2ms。置乱序列在码字传输的第一个槽中初始化。如果启用了重复,则在每一次之后重新初始化置乱序列MidenticalNPUSCH按TS 36.211第10.1.3.1条所述传送码字[1]。码字是BPSK/QPSK调制到一个单层上,并在映射到一个或多个资源单元之前进行预编码。除用于解调参考信号之外的所有资源元素都用于NPUSCH传输。中高层信令(npusch-AllSymbols如TS 36.211第10.1.3.6条所述[1)表示存在SRS符号,这些符号在NPUSCH映射中计数,但不用于NPUSCH的传输(即这些NPUSCH位置被SRS戳穿)。

NPUSCH配置

在本节中,您将配置生成NPUSCH所需的参数。UE使用MCS(调制和编码方案)和通过DCI发出信号的资源分配的组合,从TS 36.213表16.5.1.2-2中定义的集合确定传输块大小[3.]用于NPUSCH传输。在本例中,这是通过参数指定的tbs所产生的波形的持续时间由totNumBlks参数。

tbs = 144;传输块大小totNumBlks = 1;模拟传输块的数目问题=结构();初始化UE结构问题。NBULSubcarrierSpacing =“15 khz”;% 3.75 khz, 15 khz问题。NNCellID = 0;窄带单元标识chs =结构();% NPUSCH携带数据或控制信息chs。NPUSCHFormat =“数据”;负载类型(数据或控制)NPUSCH 'NscRU'使用的子载波数量取决于NPUSCH%格式和子载波间距' nbulsubcarrier行距',如TS所示% 36.211表10.1.2.3-1有1个,3个,6个或12个相邻的子载波% NPUSCHchs.NBULSubcarrierSet= 0;%范围为0-11 (15kHz);0-47 (3.75 khz)chs.NRUsc= length(chs.NBULSubcarrierSet); chs.CyclicShift = 0;当NRUsc = 3或6时,需要%的循环移位chs。RNTI = 0;% RNTI价值chs。NLayers = 1;层数chs。NRU= 2;资源单元的数量chs。NRep= 4;重复次数%的NPUSCHchs。SlotIdx = 0;在一个包中启动插槽索引符号调制依赖于NPUSCH格式和NscRU as%由TS 36.211给出,表10.1.3.2-1chs。调制=“正交相移编码”;rvDCI = 0;% RV偏移通过DCI信号(见36.213 16.5.1.2)%在数据库中指定NPUSCH和DM-RS功率比例,以用于绘图可视化chs。NPUSCHPower = 30;chs。NPUSCHDRSPower = 34;

对于NPUSCH格式1下的DM-RS信号,序列群跳变可以通过更高层次的cell-specific参数来启用或禁用groupHoppingEnabled。可以通过更高的层参数来禁用特定UE的序列组跳转groupHoppingDisabled如TS 36.211第10.1.4.1.3条所述[1]。在本例中,我们使用SeqGroupHopping参数,以启用或禁用序列组跳转。

chs。SeqGroupHopping =“上”;为UE启用/禁用序列组跳转chs。SeqGroup = 0;% Delta_SS。更高层次参数groupAssignmentNPUSCH%获取资源单元空槽中的时间槽数表10.1.2.3-1如果strcmpi (chs.NPUSCHFormat“数据”)如果chs.NRUsc== 1 NULSlots = 16;elseif任何(chs。NRUsc == [3 6 12]) NULSlots = 24/chs.NRUsc;其他的错误('无效的子载波数。NRUsc必须是1 3 6 12'中的一个);结束elseifstrcmpi (chs.NPUSCHFormat“控制”) nulslot = 4;其他的错误('无效的NPUSCH格式(%s)。NPUSCHFormat必须是“数据”或“控制”,chs.NPUSCHFormat);结束chs。NULSlots = NULSlots;NSlotsPerBundle = chs.NRU * chs.NULSlots * chs.NRep;一个码字包中的槽数TotNSlots = totNumBlks * NSlotsPerBundle;%模拟槽的总数

NB-IoT上行波形生成

在本节中,您将创建使用NPUSCH和相应的解调参考信号填充的资源网格。然后对该网格进行SC-FDMA调制以生成时域波形。

初始化随机生成器为默认状态rng (“默认”);%得到插槽网格和每个帧的插槽数如果strcmpi (ue.NBULSubcarrierSpacing“15 khz”) slotGrid0 = 0 (12,7);NSlotsPerFrame = 20;%槽0…19其他的slotGrid0 = 0(48岁,7);NSlotsPerFrame = 5;%插槽0…4结束状态= [];% NPUSCH编码器和DM-RS状态,自动重新初始化的功能trblk = [];初始化传输块txgrid = [];%全网格初始化显示正在生成的槽的数量流('\ ngenerate %d slot to %d transport block(s)\n'、TotNSlots totNumBlks);slotIdx = 0 + (0: TotNSlots-1)%计算帧数和帧内的槽数问题。NFrame =修复(slotIdx / NSlotsPerFrame);问题。NSlot =国防部(slotIdx NSlotsPerFrame);如果isempty (trblk)如果strcmpi (chs.NPUSCHFormat“数据”)对用于的两个RV值进行% UL-SCH编码%传送码字。确定了使用的RV序列%从rvDCI值在DCI和交替中发出信号按TS 36.213第16.5.1.2条规定,%介于0和2之间%定义将被编码以创建的传输块不同RV的%码字trblk = randi([0 1],tbs,1);确定编码的传输块大小[~, info] = lteNPUSCHIndices(ue,chs);outblklen = info.G;创建与所使用的两个RV值对应的码字在第一个和第二个块中,将重复此操作,直到所有传送%块chs。房车= 2 *国防部(rvDCI + 0, 2);% RV为第一个块连续波= lteNULSCH (chs、outblklen trblk);% CRC和Turbo编码chs。房车= 2 * mod (rvDCI + 1, 2);% RV为第二个块cw = [cw lteNULSCH(chs,outblklen,trblk)];%#ok % CRC和Turbo编码重复其他的trblk = randi([0 1],1);% 1位ACK对于ACK,每个块传输相同的码字%在TS 36.212第6.3.3节中定义连续波= lteNULSCH (trblk);结束blockIdx = 0;要传输的第一个块结束%初始化网格slotGrid = slotGrid0;% NPUSCH编码并映射到槽网格txsym = lteNPUSCH (chs问题,连续波(:,国防部(blockIdx、大小(cw, 2)) + 1),状态);将NPUSCH符号映射到槽的网格中chs indicesNPUSCH = lteNPUSCHIndices(问题);slotGrid (indicesNPUSCH) = txsym * db2mag (chs.NPUSCHPower);创建DM-RS序列并映射到槽网格(dmr、州)= lteNPUSCHDRS(问题、chs、状态);chs indicesDMRS = lteNPUSCHDRSIndices(问题);slotGrid (indicesDMRS) = dmr * db2mag (chs.NPUSCHDRSPower);将此插槽连接到插槽网格txgrid = [txgrid slotGrid];% #好< AGROW >如果传输了一个完整的块,则增加时钟计数器,以便可以选择正确的码字如果状态。EndOfBlk blockIdx = blockIdx + 1;结束错误计数和重新初始化如果state.EndOfTx重新初始化以启用新传输块的传输trblk = [];结束结束执行SC-FDMA调制以创建时域波形问题。CyclicPrefixUL =“正常”;NB-IoT的正常循环前缀长度%[波形,scfdmaInfo] = lteSCFDMAModulate (chs退居其次,txgrid);
生成128个槽,对应于一个传输块

情节传播网格

绘制人口网格并观察NPUSCH和相应的DM-RS。NPUSCH和DM-RS的位置取决于子载波的数量chs.NRUsc和指定的子载波chs.NBULSubcarrierSet。注意,资源网格图使用PUSCH和DM-RS的功率级别为资源元素分配颜色。

创建一个整体资源网格的映像figure im = image(abs(txgrid));提出= parula (64);colormap (im.Parent提出);轴xy;标题(sprintf ('NB-IoT上行RE网格(NRep = %d, NRUsc = %d, NRU = %d)',chs.NRUsc chs.NRep chs.NRU)包含(OFDM符号的)ylabel (副载波的)创建图例框,以指示与REs关联的通道/信号类型重命名= {“NPUSCH”;“DM-RS”};clevels =圆(db2mag ([chs。NPUSCHPower chs.NPUSCHDRSPower])); N = numel(reNames); L = line(ones(N),ones(N),“线宽”8);%生成线%根据cmap设置颜色集(L, {“颜色”},mat2cell(提出(min (1 + clevels长度城市规划机构(cmap)),:), (1, N), 3));传奇(重命名{:});

选定的参考书目

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

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

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

  4. 3GPP TS 36.321“介质访问控制(MAC);协议规范”

  5. 3GPP TS 36.331 "无线电资源管制(RRC);协议规范”

  6. 3GPP TS 36.300”总体描述;第二阶段”

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