主要内容

5G NR上行链路矢量波形生成

本示例演示如何使用物理上行共享信道(PUSCH)和探测参考信号(SRS)为基带组件载波配置和生成5G NR上行矢量波形nrwaveformgenerator.函数。

介绍

这个例子演示了如何使用参数化和生成一个5G新无线电(NR)上行波形nrwaveformgenerator.函数。生成的波形包含这些通道和信号。

  • PUSCH及其相关解调参考信号(DM-RS)和相位跟踪参考信号(PT-RS)

  • SRS.

本例中的基带分量载波波形的特征是多个子载波间隔(SCS)载波和带宽部分(BWP),以及在不同的BWP上的多个PUSCH和SRS传输实例序列。该实例还演示了如何使用CG-UCI和SRS在PUSCH上参数化和生成上行控制信息(UCI)进行定位。

有关如何使用物理上行链路控制信道(PUCCH)生成5G上行波形的示例,请参阅5G NR上行链路与PUCCH矢量波形生成

波形和载波配置

使用nrulcarrierconfig对象以参数化基带波形生成。此对象包含一组与波形通道和信号关联的另一个对象,并使您可以设置这些上行链路载波配置参数。

  • UL运营商配置的标签

  • 资源块中的SCS载波带宽

  • 载体细胞ID

  • 在子帧中生成的波形的长度

  • 窗口

  • ofdm调制波形的采样率

  • 符号相位补偿的载波频率

您可以控制SCS载波带宽和保护带使用NStartGridNSizeGrid的属性nrscscarrierconfig目的。

waveconfig = nrULCarrierConfig;%创建上行运营商配置对象waveconfig。标签='UL载体1'%上行波形配置的标签waveconfig。NCellID = 0;%细胞标识waveconfig.channelbandwidth = 40;%通道带宽(MHz)waveconfig.frequencyRange ='fr1'%'fr1'或'fr2'waveconfig.numsubframes = 10;在生成的波形中的1 ms子帧(1,2,4,8个时隙,每个1 ms子帧,取决于SC)waveconfig.windowingpercent = 0;%开窗相对FFT长度的百分比waveconfig。SampleRate = [];OFDM调制波形的%采样率waveconfig。CarrierFrequency = 0;Hz中的%载波频率。此属性用于符号阶段% OFDM调制前的补偿%使用最大尺寸定义一组SCS特定的载波%40 MHz NR通道。有关定义的更多信息,请参阅TS 38.101-1%带宽和保护带要求。scscarriers = {nrscscarrierconfig,nrscscarrierconfig};scscarriers {1} .subcarrierspacing = 15;scscarriers {1} .nsizegrid = 216;scscarriers {1} .nstartgrid = 0;scscarriers {2} .subcarrierspacing = 30;scscarriers {2} .nsizegrid = 106;scscarriers {2} .nstartgrid = 1;

BWPS.

BWP由在给定的SCS载体上共享命数的一组连续资源组成。可以使用单元格数组定义多个bwp。单元格数组中的每个元素nrwaveNbwpconfig对象定义BWP。对于每个BWP,可以指定SCS、循环前缀(CP)长度和带宽。的SubcarrierSpacing属性将BWP链接到前面定义的某个SCS特定载波。的NStartBWP属性控制BWP相对于A点在载体中的位置。NStartBWP根据BWP命理学,以公共资源块(CRB)表示。不同的bwp可以相互重叠。

%BWP配置bwp = {nrWavegenBWPConfig, nrWavegenBWPConfig};bwp{1}。BandwidthPartID = 1;% BWP IDBWP {1} .label =“BWP 1 @ 15千赫”这个BWP的标签bwp{1}。SubcarrierSpacing = 15;%BWP子载波间距bwp{1}。CyclicPrefix =“正常”15 kHz的%BWP循环前缀BWP {1} .nsizebwp = 25;prb中BWP的大小%BWP {1} .nstartbwp = 10;在crb中BWP相对于A点的位置bwp{2}。BandwidthPartID = 2;% BWP IDBWP {2} .label ='BWP 2 @ 30 khz'这个BWP的标签bwp{2}。SubcarrierSpacing = 30;%BWP子载波间距bwp{2}。CyclicPrefix =“正常”% BWP循环前缀为30 kHzbwp{2}。NSizeBWP = 51;prb中BWP的大小%bwp{2}。NStartBWP = 40;在crb中BWP相对于A点的位置

PUSCH实例配置

使用单元阵列在波形中指定PUSCH传输实例集。单元格数组中的每个元素nrWavegenPUSCHConfig对象定义了一系列PUSCH传输实例。此示例定义两个模型两个用户设备(UE)传输的PUSCH序列。

一般参数

为每个PUSCH序列设置这些参数。

  • 启用或禁用此PUSCH序列。

  • 为这个PUSCH序列指定一个标签。

  • 指定携带PUSCH的BWP。PUSCH使用为此BWP指定的SCS。

  • 功率按dB缩放。

  • 启用或禁用UL-SCH传输信道编码。

  • RNTI。

  • NID用于扰乱PUSCH位。

  • 改变预编码。变换预编码时真的时,使能变换预编码,得到的波形为DFT-s-OFDM。变换预编码时,所得到的波形是CP-OFDM。

  • 用于计算传输块大小的目标代码速率。

  • 开销参数。

  • 传输方案。当传输方案为“码”,启用MIMO预编码,并且基于层数,天线端口数和发送的预编码矩阵指示符来选择预编码矩阵。当传输设置为“nonCodebook”,使用单位矩阵,导致没有MIMO预编码。

  • 灯象征。

  • 层数。由于只有一个码字传输,上行链路层数限制在4层以内。名义上,当转换预编码被启用时,层的数量被设置为1。时,此值将被忽略DMRS.PortSet.属性指定。

  • 天线端口数量。启用码本传输时使用它。天线端口的数量必须大于或等于配置的DM-RS端口数。

  • 传输的预编码矩阵指示符。

  • 冗余版本(RV)序列。

  • 跳频。

  • 第二跳的资源块偏移量。

  • 传输块数据源。你可以使用一个比特数组或这些标准的PN序列:“PN9-ITU”“PN9”“PN11”“PN15”“PN23”.您可以在表单中将生成器的种子指定为单元格数组{PN9,种子}.如果未指定种子,则使用所有种子初始化生成器。

pusch = {nrwavegenpuschconfig};为第一个UE创建一个PUSCH配置对象PUSCH {1} .ENABLE = 1;%启用PUSCH序列pusch{1}。标签='UE 1  -  PUSCH @ 15 KHZ'%此PUSCH序列的标签pusch{1}。BandwidthPartID = 1;PUSCH传输%BWPPUSCH {1} .Power = 0;DB中的功率缩放pusch{1}。编码= 1;%启用UL-SCH传输信道编码pusch{1}。NID = 1;数据部分的%争抢pusch{1}。RNTI = 11;第一个UE的%RNTIpusch {1} .transformprecoding = false;%变换预编码PUSCH {1} .targetCoderate = 0.47;用于计算传输块大小的%码率pusch{1}。XOverhead = 0;比率匹配开销%传输设置PUSCH {1} .transmissionscheme =“码”%'codebook','nonodebook'pusch{1}。调制='QPSK'%'PI / 2-BPSK','QPSK','16QAM','64QAM','256QAM'pusch{1}。NumLayers = 2;%数量的PUSCH层pusch {1} .numantennaports = 4;天线端口数量pusch{1}。TPMI = 0;%传输的预编码矩阵指示器(0 ... 27)pusch{1}。RVSequence = [0 2 3 1];% RV序列将在PUSCH分配序列中循环应用pusch{1}。FrequencyHopping ='interslot'%跳频配置pusch{1}。SecondHopStartPRB = 10;用于第二跳的%资源块偏移量%的数据源pusch {1} .datasource =“PN9”%通道数据源

分配

这个图显示了PUSCH分配的参数。

您可以设置这些参数来控制PUSCH分配。这些参数相对于BWP。

  • PUSCH映射类型。

  • 符号在分配给每个PUSCH实例的插槽中。用于PUSCH映射类型“一个”,插槽内的起始符号必须为零,长度可以为4到14(正常CP),最多12(对于扩展CP)。用于PUSCH映射类型“B”,开始符号可以来自插槽中的任何符号

  • 用于PUSCH序列的帧中的槽。

  • 槽位分配的周期。空周期表示槽位模式没有重复。

  • 相对于BWP分配的prb。

pusch{1}。MappingType =“一个”% PUSCH映射类型('A'(slot-wise),'B'(non - slot-wise))pusch {1} .symbolallocation = [0 14];%第一个符号和长度pusch{1}。SlotAllocation = [0 1];%为PUSCH序列分配的槽索引pusch{1}。时间= 5;插槽中的%分配期pusch{1}。PRBSet = 0:10;%复审委员会分配

PUSCH DM-RS配置

设置DM-RS参数。

%天线接口和DM-RS配置(TS 38.211章节6.4.1.1)pusch{1}。DMRSPower = 0;额外功率提升百分比,单位为dBPUSCH {1} .dmrs.dmrsconfiguringype = 1;% DM-RS配置类型(1,2)PUSCH {1} .dmrs.numcdmgroupswithoutdata = 2;%没有数据的DM-RS CDM组数。该值可以是集合{1,2,3}中的一个。pusch {1} .DMRS。DMRSPortSet = [0 2];使用的%DM-RS天线端口([]给出端口号0:Numlayers-1)pusch {1} .DMRS。DMRSTypeAPosition = 2;%映射类型a。第一个DM-RS符号位置(2,3)PUSCH {1} .dmrs.dmrslength = 1;%负载DM-RS符号数(1(单个符号),2(双符号))PUSCH {1} .dmrs.dmrsadditionalposition = 2;%附加DM-RS符号位置(最大范围0…3)pusch {1} .DMRS。NIDNSCID = 1;CP-OFDM(0 ... 65535)的%加扰标识。使用空([])来使用物理层单元格标识pusch {1} .dmrs.nscid = 0;CP-OFDM(0,1)的置乱初始化PUSCH {1} .dmrs.nrsid = 0;DFT-S-OFDM DM-RS(0 ... 1007)的%扰扰标识。使用空([])来使用物理层单元格标识pusch {1} .DMRS。GroupHopping= true;%组跳跃配置。仅在启用变换预编码时使用此属性pusch {1} .DMRS。SequenceHopping = false;%序列跳转配置。仅在启用变换预编码时使用此属性

GroupHopping属性在启用转换预编码时用于DM-RS序列生成。你可以设置GroupHopping到:

  • “启用”表示群体跳跃的存在。由上层参数配置sequenceGroupHopping

  • “禁用”来表示序列跳变的存在。由上层参数配置sequenceHopping

  • '两者都不'表示组跳变和序列跳变都不存在。

没有数据的DM-RS CDM组的数量取决于配置类型。DM-RS配置类型1的最大DM-RS CDM组的最大数量可以为2,并且可以为DM-RS配置类型2为3。

PUSCH PT-RS配置

设置PT-RS参数。

PT-RS配置(TS 38.211章节6.4.1.2)pusch{1}。EnablePTRS = 0;%启用或禁用PT-RS(1或0)pusch {1} .ptrspower = 0;用于CP-OFDM的额外PT-RS功率增益(dB)pusch {1} .ptrs.timeditys = 1;PT-RS的%时间密度(L_PT-RS)(1,2,4)pusch {1} .PTRS。FrequencyDensity = 2;CP-OFDM PT-RS频率密度(K_PT-RS) (2,4)pusch {1} .PTRS。NumPTRSSamples = 2;DFT-S-OFDM(2,4)的%PT-RS样本数量(ngroupsamp)数量pusch {1} .PTRS。NumPTRSGroups = 2;DFT-S-OFDM的PT-RS组(NPTRSGROUP)的数量(2,4,8)PUSCH {1} .ptrs.reoffset =“00”% PT-RS资源元件偏移量CP-OFDM ('00','01','10','11')PUSCH {1} .ptrs.ptrsportset = 0;% PT-RS天线端口必须是CP-OFDM dm端口的一个子集PUSCH {1} .ptrs.nid = 0;DFT-s-OFDM的PT-RS置乱标识(0…1007)

CP-OFDM使能PT-RS时,DM-RS配置类型1的DM-RS端口范围为0 ~ 3,DM-RS配置类型2的DM-RS端口范围为0 ~ 5。当DFT-s-OFDM使能PT-RS时,当设置PT-RS组数为8时,必须设置PT-RS样本数为4。

泛粘纸上的UCI

通过设置这些参数,可以对PUSCH上的UCI传输进行配置。

  • 启用/关闭HARQ-ACK、CSI part1、CSI part2和CG-UCI的传输

  • HARQ-ACK,CSI第1部分,CSI第2部分和CG-UCI位数。

  • BetaOffsetACKbetaoffsetcsi1.betaoffsetcsi2., 和betaoffsetcguci.可以从TS 38.213的表9.3-1和9.3-2中设置。

  • 用于HARQ-ACK、CSI第1部分、CSI第2部分和CG-UCI的数据源。你可以使用一个比特数组或这些标准的PN序列:“PN9-ITU”“PN9”“PN11”“PN15”“PN23”.您可以在表单中将生成器的种子指定为单元格数组{PN9,种子}.如果未指定种子,则使用所有种子初始化生成器。

  • 启用UCI的UL-SCH传输。

  • uciscaling.由更高的层参数提供扩展,根据TS 38.212第6.3.2.4节。

pusch {1} .enablereacck = true;%启用或禁用Harq-Ackpusch {1} .numackbits = 5;%harq-ack位数pusch{1}。BetaOffsetACK = 1;Harq-Ack的%功率因数pusch{1}。DataSourceACK =“PN9”% HARQ-ACK数据源pusch{1}。EnableCSI1 = true;%启用或禁用CSI第1部分pusch {1} .numcsi1bits = 10;% CSI第1部分的位数pusch{1}。BetaOffsetCSI1 = 2;CSI第1部分的%功率因数pusch {1} .datasourcecsi1 =“PN9”% CSI第1部分数据源pusch {1} .enablecsi2 = true;%启用或禁用CSI第2部分pusch{1}。NumCSI2Bits = 10;%数量的CSI部分2位PUSCH {1} .betaoffsetcsi2 = 2;CSI第2部分的%功率因数pusch {1} .datasourcecsi2 =“PN9”%CSI第2部分数据源pusch{1}。EnableCGUCI = false;%启用或禁用CG-UCIPUSCH {1} .numcgucibits = 10;% CG-UCI位数pusch{1}。BetaOffsetCGUCI = 2;CG-UCI功率因数%pusch{1}。DataSourceCGUCI =“PN9”%CG-UCI数据源pusch {1} .enableulsch = true;%当PUSCH上有UCI传输时启用或禁用UL-SCHpusch{1}。UCIScaling = 1;比例因子(0.5,0.65,0.8,1)

当启用HARQ-ACK和CG-UCI时,TS 38.212的第6.3.2.1.4节将UCI位序列指定为CG-UCI位和HARQ-ACK比特的联合。因此,PUSCH上的UCI处理将任何活动CG-UCI源视为HARQ-ACK的扩展,只有值BetaOffsetACK在这种情况下使用。

指定多个PUSCH序列

为第二个BWP指定第二个PUSCH序列。

pusch {2} = pusch {1};为第二个UE创建一个PUSCH配置对象pusch{2}。使= 1;pusch{2}。标签='UE 2  -  PUSCH @ 30 kHz';pusch{2}。BandwidthPartID = 2;% PUSCH映射到第二个BWPpusch{2}。RNTI = 12;第二个UE的%RNTIpusch {2} .symbolallocation = [0 12];pusch {2} .slotallocation = [5 6 7 8];PUSCH {2} .prset = 5:10;PRB分配百分比,相对于BWPpusch {2} .period = 10;PUSCH {2} .TransformPrecoding = 1;pusch {2} .frequencyhopping ='interslot';pusch {2} .numlayers = 1;PUSCH {2} .rnti = 1;pusch {2} .dmrs.grouphopping = false;pusch {2} .dmrs.dmrsportset = 1;

SRS实例配置

在波形中指定SRS。单元格数组中的每个元素nrWavegenSRSConfig对象定义与BWP关联的SRS实例序列。定义两个禁用的SRS序列。

一般参数

为每个SRS序列设置这些参数。

  • 启用或禁用此SRS序列。

  • 为这个SRS序列指定一个标签。

  • 指定携带此SRS序列的BWP。SRS序列配置使用为此BWP指定的SCS。

  • 指定以dB为单位的功率缩放。

srs = {nrwavegensrsconfig};SRS {1} .Enable = 0;SRS {1} .Label =“SRS @ 15khz”;SRS {1} .BandWidthpartid = 1;SRS {1} .Power = 3;DB中的功率缩放

SRS配置

您可以为每个SRS序列配置这些参数。

  • SRS天线端口数。

  • 分配给每个SRS序列的槽中的符号。

  • 用于SRS传输的时段内的插槽。

  • 槽位分配的周期。空周期表示槽位模式没有重复。

  • RBs中BWP中SRS序列的起始位置。

  • 从4-PRB块中的起始位置偏移的附加频率偏移。

  • 带宽和频率跳频配置。占用带宽取决于属性csr建筑, 和BHop.集BHOP 启用跳频。

  • 用于指定子载波中SRS频率密度的传输梳。

  • 传输梳在子载波中的偏移量。

  • 循环移位,旋转低papr基序列。最大循环移位数,8或12,取决于传输梳数,2或4。对于4个SRS天线端口,分配给第1和第3天线端口SRS的子载波集取决于循环移位。

  • 槽内重复SRS符号的个数。它会在区块中禁用频率跳跃重复符号。集重复= 1没有重复。

  • 组或序列跳跃。有可能'两者都不''gouphopping'或者'sequenchopping'

  • 争先恐后的身份。当启用组或序列跳跃时,它初始化伪随机二进制序列。

SRS {1} .numsrsports = 1;% SRS端口数(1,2,4)srs{1}。NumSRSSymbols = 4;%槽位SRS符号数(1,2,4)srs {1} .symbolstart = 10;% SRS在槽中的时域位置。(8…13)为正常CP,(6…11)为延长CPsrs{1}。SlotAllocation = 2;%分配槽指数srs{1}。时间= 5;插槽中的%分配期srs{1}。FrequencyStart = 0;%在RBs中BWP中SRS的频率位置srs{1}。NRRC = 0;从4个PRB的块中指定的频率额外偏移量(0 ... 67)srs{1}。csr= 13;%带宽配置C_SRS(0…63)它控制分配给SRS的带宽SRS {1} .bsrs = 2;%带宽配置b_srs(0 ... 3)。它控制分配给SRS的带宽srs {1} .bhop = 1;%跳频配置(0…3)。设置BHop < BSRS使能跳频功能SRS {1} .ktc = 2;%梳编号(2,4)。它表示每个KTC子载波的SRS分配srs{1}。KBarTC = 0;SRS序列的副载波偏移量(0…KTC-1)SRS {1} .CYCLICSHIFT = 0;%循环移位数(0 ... ncsmax-1)。NCSMAX = 8对于KTC = 2和KTC = 4的NCSMAX = 12。srs{1}。重复= 1;%重复因子(1,2,4)。它表示槽位中相等连续的SRS符号的个数SRS {1} .groupseqhopping ='两者都不'%组或序列跳跃('既不','gouphopping','sequenchopping')SRS {1} .nsrsid = 0;%置乱标识(0…1023)srs{1}。SRS.Positioning = false;%使能SRS进行用户定位

指定多个SRS序列

指定第二个BWP的第二个SRS序列。

SRS {2} = SRS {1};SRS {2} .Enable = 0;SRS {2} .Label =“SRS @ 30千赫”;SRS {2} .BandWidthpartid = 2;srs {2} .numsrssymbols = 2;SRS {2} .symbolstart = 12;srs {2} .slotallocation = [5 6 7 8];SRS {2} .period = 10;SRS {2} .bsrs = 0;SRS {2} .bhop = 0;

波形生成

将所有的信道和信号参数分配给主载波配置对象nrulcarrierconfig,然后生成并绘制波形。

waveconfig。SCSCarriers = SCSCarriers;waveconfig。BandwidthParts = bwp;waveconfig。PUSCH = PUSCH;waveconfig。SRS = SRS;%产生复基带波形(波形信息]= nrWaveformGenerator (waveconfig);

绘制天线端口组基带波形的幅值。

图;绘图(ABS(波形));标题(“5G上行基带波形的幅度”);包含('样本索引');ylabel (“级”);

绘制第一个天线端口的波形谱图。

samplerate = info.ResourceGrids (1) .Info.SampleRate;nfft = info.ResourceGrids (1) .Info.Nfft;图;光谱图(波形(:1)的(nfft, 1), 0, nfft,“中心”samplerate,'yaxis'“MinThreshold”,-130);标题(“5G上行基带波形谱图”);

波形生成器功能返回时域波形和结构信息.的信息结构包含底层资源元素网格和所有PUSCH和SRS实例在波形中使用的资源的细分。

资源格栅字段是一个结构阵列,包含这些字段。

  • 对应于每个BWP的资源网格。

  • 包含每个BWP中的信道和信号的总带宽的资源网格。

  • 一种信息结构,其信息与每个BWP相对应。例如,显示第一个BWP的信息。

DISP('与BWP 1相关的调制信息:')disp(info.resourcegrids(1).info)
与BWP 1相关的调制信息:Nfft: 4096 SampleRate: 61440000 cyclicprefixlength:[320 288 288 288 288 288 288 320 288 288 288…]symbollength:[4416 4384 4384 4384 4384 4384 4384 4416 4384…]SymbolPhases: [0 0 0 0 0 0 0 0 0 0 0] SymbolsPerSlot: 14 SlotsPerSubframe: 1 SlotsPerFrame: 10 k0: 0

生成的资源网格是一个三维矩阵。网格中的不同平面以端口号递增的顺序表示天线端口。

另请参阅

功能

对象

相关的话题