主要内容

窄带物联网上行波形产生

本示例演示如何使用LTE工具箱™生成窄带物联网(NB-IoT)上行波形,包括窄带物理上行共享通道(NPUSCH)和相关的解调参考信号,用于测试和测量应用。

介绍

3GPP推出了一个新的空中接口,窄带IOT(NB-IOT)针对LTE-Advanced Pro版本的低数据速率机器类型通信优化.NB-IOT提供了成本和功率效率的改进,因为它避免了需要复杂的信号开销基于LTE的系统。

LTE工具箱可用于生成符合标准的窄带物联网上行复合基带波形,代表适合测试和测量应用的180kHz窄带载波。LTE工具箱支持以下描述的所有N金宝appB-IoT操作模式——独立、保护带和带内。

  • 独立:例如,在LTE频谱外部部署的NB-IOT载波,例如,用于GSM或卫星通信的频谱

  • 保护带:NB-IOT载体部署在两个LTE运营商之间的保护带中

  • 带内:部署在LTE运营商资源块中的窄带物联网运营商

窄带物联网上行链路由以下物理层通道和信号组成:

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

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

  • 窄带物理随机接入通道(NPRACH)

本示例演示了窄带物联网上行资源元件(RE)网格和由NPUSCH和DM-RS信号组成的波形生成。下面的章节将介绍构成网格的物理信号和通道,以及关键概念,包括子帧重复、逻辑和传输通道映射,以及不同配置的相应网格。

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

NPUSCH分配

介绍NPUSCH如何映射到NB-IoT上行槽位。

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

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

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

NPUSCH在一个或多个资源单元上传输,并且每个资源单元重复高达128次以提高传输可靠性和覆盖,而不会影响低功率和低复杂性要求以满足超低端IOT使用情况。

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按ts36.211第10.1.3.6节定义[1],每个资源单元都可以传送nrep.时代。

图中的例子显示了with的重复模式NRep= 4。传输一个数据块的总持续时间为NRUNULSlotsMidenticalNPUSCH根据ts36.211第10.1.3.6条规定[1].对于下面所示的第一种情况,每个传输块都会通过NRU= 2和这些中的每一个NRU包含两个指示的UL插槽NULSlots.后映射到Nslots,这些插槽将会重复MidenticalNPUSCH= 2(假设nscu > 1)乘以。在第二种情况下,我们假设NscRU是1,因此MidenticalNPUSCH= 1.这,结合Nslots= 1的结果是传输模式,其中每个块没有内部重复传输。在所有情况下,置乱序列在码字传输或重传开始时重置(参见TS 36.211 10.1.3.1节[1])。重复方案的详细说明可在TS 36.211 10.1.3中找到[1].

NB-IOT上行链路插槽网格

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

  • DM-RS.:DM-RS在每个NPUSCH插槽中传输,其中带宽与关联的NPUSCH相同。参考信号取决于子载波的数量NscRU窄带cell IDNNcellIDNPUSCH格式NPUSCHFormat.RE的位置取决于NPUSCH格式和子载波间距。对于子载波间距为3.75kHz的NPUSCH格式1,DM-RS在符号4上传输;对于子载波间距为15kHz的NPUSCH格式1,DM-RS在符号3上传输。对于子载波间距为3.75kHz的NPUSCH格式2,DM-RS在符号0,1,2上传输;对于子载波间距为15kHz的NPUSCH格式2,DM-RS在槽位符号2,3,4上传输。

  • NPUSCH.:除了多个(12个子载波)金宝app带宽外,NPUSCH还支持单音带宽。单音传输可以使用15kHz或3.75kHz子载波间距,而多音传输使用15kHz子载波间距。这意味着15kHz模式的插槽持续时间为0.5ms,插槽持续时间为2ms。加扰序列在码字传输的第一槽中初始化。如果启用了重复,则扰乱序列在每个后都会重新初始化MidenticalNPUSCHts36.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定义的集合中确定传输块大小。3.用于NPUSCH传输。在本例中,这是通过参数指定的tbs所产生波形的持续时间通过totNumBlks参数。

tbs = 144;%传输块大小totNumBlks = 1;%模拟传输块数问题=结构();%初始化UE结构问题。NBULSubcarrierSpacing ='15khz'%3.75khz,15khz问题。NNCellID = 0;%窄带细胞标识chs =结构();% NPUSCH携带数据或控制信息chs.npuschformat =“数据”%负载类型(数据或控制)用于NPUSCH ' nscu '的子载波数量取决于NPUSCH%格式和子载波间距'NBULSubcarrierSpacing',如TS所示%36.211表10.1.2.3-1。有1,3,6或12个连续的子载波% NPUSCHchs.nbulsubcarierset = 0;%范围为0-11(15kHz);0-47(3.75kHz)chs.nrusc =长度(chs.nbulsubcarrierset);chs.cyclicshift = 0;当NRUsc = 3或6时需要的循环移位%chs。RNTI = 0;% RNTI价值chs.nlayers = 1;%的层数chs。NRU= 2;%资源单位数chs。NRep= 4;% NPUSCH重复次数Chs.slotidx = 0;%在一个bundle中启动插槽索引符号调制取决于NPUSCH格式和nscu由TS 36.211给出的%表10.1.3.2-1chs。调制='QPSK';rvDCI = 0;通过DCI信号的% RV偏移量(见36.213 16.5.1.2)%在DB中指定NPUSCH和DM-RS功率缩放,用于绘图可视化chs。NPUSCHPower = 30;chs。NPUSCHDRSPower = 34;

对于NPUSCH格式1中的DM-RS信号,可以通过更高的层单元格式参数启用或禁用序列组跳跃groupHoppingEnabled.特定终端的序列组跳变可以通过更高的层参数来禁用grouphoppingdisabled.如TS 36.211第10.1.4.1.3节所述[1].在这个例子中,我们使用SeqGroupHopping参数启用或禁用序列组跳跃。

chs。SeqGroupHopping =“上”%启用/禁用终端顺序组跳变功能chs。SeqGroup = 0;% Delta_SS。更高层次参数groupAssignmentNPUSCH%获取资源单元的时间槽数表10.1.2.3-1如果strcmpi (chs。NPUSCH.Format,“数据”如果chs.nrusc == 1 nulslots = 16;eleesif.任何(chs。NRUsc== [3 6 12]) NULSlots = 24/chs.NRUsc;其他的错误('子载波的数量无效。NRUSC必须是1,3,6,12'中的一个);结束eleesif.strcmpi (chs。NPUSCH.Format,“控制”)Nulslots = 4;其他的错误('无效的NPUSCH格式(%s)。NPUSCHFormat必须是" Data "或" Control ", chs.NPUSCHFormat);结束chs。NULSlots = NULSlots;NSlotsPerBundle = chs.NRU * chs.NULSlots * chs.NRep;码字捆绑中的次数TotNSlots = totNumBlks * NSlotsPerBundle;%模拟槽位总数

窄带物联网上行波形产生

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

将随机生成器初始化为默认状态rng (“默认”);获得插槽网格和插槽数量每帧emptySlotGrid = lteNBResourceGrid(问题);slotGridSize =大小(emptySlotGrid);NSlotsPerFrame = 20 / (slotGridSize (1) / 12);状态= [];% NPUSCH编码器和DM-RS状态,在功能中自动重新初始化trblk = [];%初始化传输块txgrid = [];全网格初始化%显示正在生成的时隙数流('\n生成%d个槽,对应%d个传输块(s)\n',totnslots,totnumblks);slotIdx = 0 + (0: TotNSlots-1)%计算该帧内的框号和槽位号UE.NFRAME =修复(SLOTIDX / NSLOTSPERFREME);ue.nslot = mod(slotidx,nslotsperframe);如果isempty (trblk)如果strcmpi (chs。NPUSCH.Format,“数据”% UL-SCH对所使用的两个RV值进行编码%传送密码。确定使用的RV序列从DCI中发出的RVDCI值的%并交替%在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.rv = 2 * mod(rvdci + 0,2);% RV为第一个块连续波= lteNULSCH (chs、outblklen trblk);% CRC和Turbo编码chs.rv = 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节cw = ltenulsch(trblk);结束blockIdx = 0;%要传输的第一个块结束%初始化网格slotGrid = emptySlotGrid;% NPUSCH编码并映射到槽网格txsym = lteNPUSCH (chs问题,连续波(:,国防部(blockIdx、大小(cw, 2)) + 1),状态);%映射插槽网格中的NPUSCH符号indicsnpusch = ltenuschindices(Ue,chs);SlotGrid(indicsnpusch)= txsym * db2mag(chs.npuschpower);%创建DM-RS序列并映射到槽网格(dmr、州)= lteNPUSCHDRS(问题、chs、状态);chs indicesDMRS = lteNPUSCHDRSIndices(问题);slotGrid (indicesDMRS) = dmr * db2mag (chs.NPUSCHDRSPower);将此槽连接到槽网格txgrid = [txgrid slotgrid];% #好< AGROW >%如果传输的是一个完整的块,则增加时钟计数器%可以选择正确的码字如果state.endofblk blockidx = blockidx + 1;结束% TRBLK错误计数和重新初始化如果状态。EndOfTx%重新初始化以启用新传输块的传输trblk = [];结束结束%执行SC-FDMA调制来创建时域波形问题。CyclicPrefixUL =“正常”%窄带物联网正常循环前缀长度[波形,scfdmaInfo] = lteSCFDMAModulate (chs退居其次,txgrid);
生成128个槽位对应1个传输块

绘制传输网格

绘制填充的网格,观察NPUSCH和相应的DM-RS。NPUSCH和DM-RS的位置取决于子载波的数量chs。NRUsc和所指定的子载波chs。NBULSubcarrierSet.请注意,资源网格图使用PUSCH和DM-RS的功率电平将颜色分配给资源元素。

创建一个整体资源网格的映像图im = image(abs(txgrid));提出= parula (64);colormap (im.Parent提出);轴xy;标题(sprintf ('NB-IoT Uplink RE Grid (NRep = %d, NRUsc = %d, NRU = %d)', chs.NRUsc chs.NRep chs.NRU)包含(OFDM符号的)ylabel('子载波'%创建图例框以指示与REs关联的通道/信号类型重命名= {“NPUSCH”“DM-RS”};clevels =圆(db2mag ([chs。NPUSCH.Power 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“整体描述;第2阶段”

  7. O. Liberg, M. Sundberg, y . p。Wang, J. Bergman and J. Sachs, Cellular Internet of Things: Technologies, Standards and Performance, Elsevier, 2018。