主要内容

NB-iot上行链路波形生成

此示例显示了如何生成LTE-Advanced Pro版本13窄带物联网(NB-iot)上行链路波形,由窄带物理上行链路共享通道(NPUSCH)组成,以及使用LTE Toolbox™进行测试和测量应用的相关解调参考信号。

Introduction

3GPP introduced a new air interface, Narrowband IoT (NB-IoT) optimized for low data rate machine type communications in LTE-Advanced Pro Release 13. NB-IoT provides cost and power efficiency improvements as it avoids the need for complex signaling overhead required for LTE based systems.

可以使用LTE工具箱生成标准compliant NB-IoT uplink complex baseband waveforms representing the 180kHz narrowband carrier suitable for test and measurement applications. The LTE Toolbox supports all the NB-IoT modes of operation described below - standalone, guardband and in-band.

  • Standalone: NB-IoT carrier deployed outside the LTE spectrum, e.g. the spectrum used for GSM or satellite communications

  • Guardband: NB-IoT carrier deployed in the guardband between two LTE carriers

  • In-band: NB-IoT carrier deployed in resource blocks of an LTE carrier

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

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

  • Narrowband physical uplink shared channel (NPUSCH)

  • Narrowband physical random access channel (NPRACH)

该示例演示了由NPUSCH和DM-RS信号组成的NB-iot上行链路资源元素(RE)网格和波形生成。以下各节介绍了形成网格的这些物理信号和通道以及包括子帧重复,逻辑和传输通道映射的关键概念以及不同配置的相应网格。

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

NPUSCH Allocation

本节提供了有关NPUSCH如何映射到NB-Iot上行链路插槽中的总体描述。

The NPUSCH can carry the uplink shared channel (UL-SCH) or the uplink control information according to the two formats:

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

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

The NPUSCH is transmitted on one or more resource units and each of these resource units are repeated up to 128 times to improve transmission reliability and coverage without compromising on the low power and low complexity requirements to meet ultra low end IoT use cases.

NPUSCH的最小映射单元是资源单元。它被定义为7 *NSLOTSULconsecutive SC-FDMA symbols in the time domain andnscruconsecutive subcarriers in the frequency domain, whereNSLOTSULandnscruare defined in TS 36.211 Table 10.1.2.3-1 [1]。NB-iot UL-SCH可以携带共同控制通道(CCCH),专用控制通道(DCCH)或专用的交通通道(DTCH),并在NPUSCH物理渠道(TS 36.300节6.1.3.1和第5.3.1a节)[TS 36.300 [TS 36.300)[6])。NPUSCH可以映射到一个或多个资源单位,NRU如TS 36.211所定义的第10.1.3.6节[1],每个资源单元都可以传输Nreptimes.

图中的示例显示了重复模式NREP= 4.传输数据块的总持续时间由NRU*nulslots*Midenticalnpusch如TS 36.211中指定的第10.1.3.6节[1]。For the first case shown below, each transport block is transmitted overNRU= 2 and each of theseNRUcontains two UL slots indicated bynulslots。映射到NSLOTS,这些插槽将重复Midenticalnpusch= 2 (assuming NscRU > 1) times. In the second case, we assume thatnscru是1,因此Midenticalnpusch= 1. This, combined withNSLOTS= 1导致传输模式,其中每个块在没有内部重复的情况下发送。在所有情况下,在代码字传输或重传的开头重置扰动序列(请参阅TS 36.211第10.1.3.1节[1])。重复方案的详细规范可以在TS 36.211 10.1.3 [1]。

NB-IoT Uplink Slot Grid

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

  • DM-RS: The DM-RS is transmitted in every NPUSCH slot with the same bandwidth as the associated NPUSCH. The reference signals depend on the number of subcarriersnscru, the narrowband cell IDnncellidand the NPUSCH formatnpuschformat。RE位置取决于NPUSCH格式和子载波间距。对于NPUSCH格式为3.75kHz的子载波间距1,DM-RS在符号4上传输,并具有15kHz的子载波间距,dm-rs在符号3上传输。-RS在符号0,1,2上传输,并在15kHz的子载波间距上传输,DM-RS在插槽中在符号2,3和4上传输。

  • NPUSCH: The NPUSCH supports single tone bandwidth in addition to the multitone (12 subcarriers) bandwidth. Single tone transmissions can use either the 15kHz or 3.75kHz subcarrier spacing whereas the multitone transmissions use the 15kHz subcarrier spacing. This means that the slot duration for 15kHz mode is 0.5ms and for 3.75kHz the slot duration is 2ms. The scrambling sequence is initialized in the first slot of the transmission of the codeword. If there are repetitions enabled, then the scrambling sequence is reinitialized after everyMidenticalnpuschTS 36.211第10.1.3.1节中所述的代码字传输[1]。代码字是BPSK/QPSK调制为单层并进行了预编码,然后映射到一个或多个资源单位。除了解调参考信号所使用的资源元素以外的所有资源元素均用于NPUSCH传输。如果较高的层信号传导(npusch-allsymbolsas described in TS 36.211 Section 10.1.3.6 [1]) indicates the presence of the SRS symbol, these symbols are counted in the NPUSCH mapping, but not used for the transmission of the NPUSCH (i.e. these NPUSCH positions are punctured by SRS).

NPUSCH配置

In this section, you configure the parameters required for NPUSCH generation. The UE uses the combination of MCS (modulation and coding scheme) and resource assignment signaled via the DCI to determine the transport block size from the set defined in TS 36.213 Table 16.5.1.2-2 [3]用于NPUSCH传输。在此示例中,这是通过参数指定的tbs并且生成波形的持续时间通过totnumblks范围。

TBS = 144;% The transport block sizetotnumblks = 1;模拟传输块的%数量ue = struct();%初始化UE结构ue.nbulsubcarrierspacing ='15kHz';% 3.75kHz, 15kHzue.nncellid = 0;% Narrowband cell identitychs = struct();%npusch携带数据或控制信息chs.NPUSCHFormat ='Data';%有效载荷类型(数据或控制)%npusch'nscru'的子载波数量取决于npusch%格式和子载波间距“ nbusubcarrierspacing”,如TS所示% 36.211 Table 10.1.2.3-1. There are 1,3,6 or 12 contiguous subcarriers for%npuschchs.NBULSubcarrierSet = 0;% Range is 0-11 (15kHz); 0-47 (3.75kHz)chs.NRUsc = length(chs.NBULSubcarrierSet); chs.CyclicShift = 0;NRUSC = 3或6时需要循环移位%chs.RNTI = 0;%rnti值chs.NLayers = 1;% Number of layerschs.nru = 2;资源单位数量的%chs.nrep = 4;NPUSCH的重复数量%chs.SlotIdx = 0;%开始捆绑插槽索引%符号调制取决于npusch格式和nscru% given by TS 36.211 Table 10.1.3.2-1chs.modulation ='QPSK';rvdci = 0;通过DCI发出信号的RV偏移%(请参阅36.213 16.5.1.2)% Specify the NPUSCH and DM-RS power scaling in dB for plot visualizationchs.npuschpower = 30;chs.npuschdrspower = 34;

For DM-RS signals in NPUSCH format 1, sequence-group hopping can be enabled or disabled by the higher layer cell-specific parametergrouphoppingenable。Sequence-group hopping for a particular UE can be disabled through the higher layer parametergroupHoppingDisabled如TS 36.211中所述,第10.1.4.1.3节[1]。在此示例中,我们使用seqgrouphoppingparameter to enable or disable sequence-group hopping.

chs.seqgrouphopping ='上';% Enable/Disable Sequence-Group Hopping for UEchs.seqgroup = 0;%delta_ss。高层参数groupAssignmentnpusch%在资源单位nulslots中获取时间插槽的数量%TS 36.211表10.1.2.3-1如果strcmpi(chs.npuschformat,'Data'如果chs.NRUsc == 1 NULSlots = 16;别的如果任何(chs.nrusc == [3 6 12])nulslots = 24/chs.nrusc;别的error('Invalid number of subcarriers. NRUsc must be one of 1,3,6,12');结尾别的如果strcmpi(chs.npuschformat,'Control')nulslots= 4;别的error('无效NPUSCH格式(%s)。npuschformat必须是'data''或'control''',chs.npuschformat);结尾chs.nulslots = nulslots;nslotsperbundle = chs.nru*chs.nulslots*chs.nrep;% Number of slots in a codeword bundletotnslots = totnumblks*nslotsperbundle;模拟插槽的总数

NB-iot上行链路波形生成

在本节中,您可以创建带有NPUSCH和相应解调参考信号的资源网格。然后对此网格进行调制以生成时间域波形。

%将随机发电机初始化为默认状态rng('default');%获得插槽网格和每个框架的插槽数emptyslotgrid = ltenbresourcegrid(ue);slotgridsize = size(emptySlotGrid);nslotsperframe = 20/(slotgridsize(1)/12);状态= [];%npuschencoder and DM-RS state, auto re-initialization in the functiontrblk = [];%初始化运输块txgrid = [];%全网格初始化% Display the number of slots being generatedfprintf('\ ngererating%d插槽对应于%d传输块\ n',TotNSlots,totNumBlks);为了slotidx = 0+(0:totnslots-1)%计算框架内的帧号和插槽号ue.NFrame = fix(slotIdx/NSlotsPerFrame); ue.NSlot = mod(slotIdx,NSlotsPerFrame);如果Isempty(trblk)如果strcmpi(chs.npuschformat,'Data'对于用于使用的两个RV值完成的%UL-SCH编码% transmitting the codewords. The RV sequence used is determined% from the rvDCI value signaled in the DCI and alternatesTS 36.213第16.5.1.2节中给出的0和2之间的%在2之间%定义将编码以创建的传输块不同RV的代码字%trblk = randi([0 1],tbs,1);%确定编码的运输块大小[〜,info] = ltenpuschindices(ue,chs);OutBlklen = info.g;%建立相对应的码字两个房车values used% in the first and second block, this will be repeated till all% blocks are transmittedchs.RV = 2*mod(rvDCI+0,2);第一个块的%RVcw = ltenulsch(chs,outblklen,trblk);%CRC和涡轮编码chs.RV = 2*mod(rvDCI+1,2);% RV for the second blockcw = [CW ltenulsch(chs,outblklen,trblk)];%#OK %CRC和涡轮编码is repeated别的trblk = randi([0 1],1);% 1 bit ACK%的ACK%,相同的代码字可以传输每个块TS 36.212中定义的%6.3.3节cw = lteNULSCH(trblk);结尾blockIdx = 0;百分比要传输的块结尾% Initialize gridslotgrid = emptyslotgrid;%npusch编码和映射到插槽网格txsym = ltenpusch(ue,chs,cw(:,mod(blockidx,size(cw,2))+1),状态);% Map NPUSCH symbols in the grid of a slotindicesNPUSCH = lteNPUSCHIndices(ue,chs); slotGrid(indicesNPUSCH) = txsym*db2mag(chs.NPUSCHPower);%创建DM-RS序列并映射到插槽网格[dmrs,state] = ltenpuschdrs(ue,chs,state);indicesdmrs = ltenpuschdrsindices(ue,chs);slotgrid(indicesdmrs)= dmrs*db2mag(chs.npuschdrspower);%加入该插槽与插槽网格txgrid = [txgrid slotGrid];%#OK %如果传输完整块,请增加时钟计数器以便%可以选择正确的代码字如果state.EndOfBlk blockIdx = blockIdx + 1;结尾%trblk err计数和重新初始化如果state.endoftx% Re-initialize to enable the transmission of a new transport blocktrblk = [];结尾结尾% Perform SC-FDMA modulation to create time domain waveformue.CyclicPrefixUL ='普通的';NB-iot的正常循环前缀长度的%[waveform,scfdmainfo] = ltescfdmamamamamydulate(ue,chs,txgrid);
生成128个插槽,对应于1个运输块

Plot Transmitted Grid

绘制填充的网格并观察NPUSCH和相应的DM-RS。NPUSCH和DM-R的位置取决于子载波的数量chs.NRUsc以及按照指定的子载体chs.NBULSubcarrierSet。Note that the resource grid plot uses the power levels of the PUSCH and the DM-RS to assign colors to the resource elements.

%创建整体资源网格的图像图IM = Image(ABS(TXGRID));cmap = parula(64);colormap(im.parent,cmap);轴xy;标题(sprintf(sprintf)('nb-iot uplink re网格(nrep =%d,nrusc =%d,nru =%d)',chs.nrep,chs.nrusc,chs.nru))xlabel('OFDM symbols')ylabel('Subcarriers'%创建传奇框来指示与Res关联的频道/信号类型Renames = {'npusch';'DM-RS'}; clevels = round(db2mag([chs.NPUSCHPower chs.NPUSCHDRSPower])); N = numel(reNames); L = line(ones(N),ones(N),'行宽',8);% Generate lines% Set the colors according to cmapset(l,{'color'},mat2cell(cmap(min(1+clevels,长度(cmap)),:),一个(1,n),3));legend(Renames {:});

选定的参考书目

  1. 3GPP TS 36.211 "Physical channels and modulation"

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

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

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

  5. 3GPP TS 36.331 "Radio Resource Control (RRC); Protocol specification"

  6. 3GPP TS 36.300“总体描述;阶段2”

  7. O. Liberg,M。Sundberg,Y.-P。Wang,J。Bergman和J. Sachs,《物联网:技术,标准和性能》,Elsevier,2018年。