主要内容

5G NR上行矢量波形生成

该示例展示了如何配置和生成具有物理上行共享通道(PUSCH)和测深参考信号(SRS)的5G NR上行矢量波形nrWaveformGenerator函数。

简介

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

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

  • SRS

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

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

波形和载波配置

使用nrULCarrierConfig对象将基带波形生成参数化。此对象包含一组与波形通道和信号相关的附加对象,并使您能够设置这些上行载波配置参数。

  • 此UL运营商配置的标签

  • 资源块中的SCS载波带宽

  • 载体细胞ID

  • 子帧中生成的波形长度

  • 窗口

  • ofdm调制波形的采样率

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

您可以通过配置控制载波带宽和保护频带NStartGrid而且NSizeGrid的属性nrSCSCarrierConfig对象。

waveconfig = nrULCarrierConfig;创建上行运营商配置对象waveconfig。标签=“UL载体1”此上行波形配置的标签waveconfig。NCellID = 0;%细胞身份waveconfig。ChannelBandwidth = 40;通道带宽(MHz)waveconfig。FrequencyRange =“FR1”% 'FR1'或'FR2'waveconfig。NumSubframes = 10;生成波形中1毫秒子帧的百分比(每1毫秒子帧1、2、4、8个槽位,取决于SCS)waveconfig。窗口Percent = 0;相对于FFT长度的窗口百分比waveconfig。SampleRate = [];ofdm调制波形的采样率waveconfig。CarrierFrequency = 0;%载波频率,单位为Hz。此属性用于符号相位OFDM调制前的%补偿定义一组特定于scs的载波,使用a的最大大小% 40 MHz NR通道。参见TS 38.101-1了解更多关于defined的信息%带宽和保护带要求。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。的单元格数组中的每个元素nrWavegenBWPConfigobjects定义了一个BWP。对于每个BWP,可指定sc、CP (cyclic prefix)长度和带宽。的SubcarrierSpacing属性将该水域与较早定义的南海特定承运商之一连接起来。的NStartBWP属性控制着载体中BWP相对于A点的位置。NStartBWP以公共资源块(CRB)表示,根据BWP的命理。不同的bpm可以相互重叠。

% BWP配置bwp = {nrWavegenBWPConfig, nrWavegenBWPConfig};bwp{1}。BandwidthPartID = 1;% BWP IDbwp{1}。标签=“BWP 1 @ 15千赫”此BWP的%标签bwp{1}。SubcarrierSpacing = 15;% BWP子载波间距bwp{1}。CyclicPrefix =“正常”% BWP循环前缀为15 kHzbwp{1}。NSizeBWP = 25;prb中BWP的%大小bwp{1}。NStartBWP = 10;在crb中,BWP相对于A点的位置bwp{2}。BandwidthPartID = 2;% BWP IDbwp{2}。标签=“BWP 2 @ 30千赫”此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传输实例集。的单元格数组中的每个元素nrWavegenPUSCHConfigobjects定义了PUSCH传输实例的序列。这个示例定义了两个PUSCH序列,用于建模两个用户设备(UE)传输。

一般参数

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

  • 启用或禁用这个PUSCH序列。

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

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

  • dB中的功率缩放。

  • 启用/禁用UL-SCH传输通道编码。

  • RNTI。

  • NID用于置乱PUSCH位。

  • 改变预编码。当变换预编码为真正的时,启用变换预编码,所得波形为DFT-s-OFDM。当变换预编码为,得到的波形为CP-OFDM。

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

  • 开销参数。

  • 传输方案。当传输方案为“码”,使能MIMO预编码,并根据层数、天线端口数和传输预编码矩阵指示器选择预编码矩阵。当传输设置为“nonCodebook”,使用单位矩阵,导致没有MIMO预编码。

  • 灯象征。

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

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

  • 传输预编码矩阵指示器。

  • RV (Redundancy version)序列。

  • 跳频。

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

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

pusch = {nrWavegenPUSCHConfig};为第一个终端创建一个PUSCH配置对象pusch{1}。使= 1;%启用PUSCH序列pusch{1}。标签=“UE 1 - PUSCH @ 15 kHz”此PUSCH序列的%标签pusch{1}。BandwidthPartID = 1;PUSCH传播的% BWPpusch{1}。权力= 0;%功率缩放分贝pusch{1}。编码= 1;%启用UL-SCH传输通道编码pusch{1}。NID = 1;争夺数据部分pusch{1}。RNTI = 11;% RNTI为第一个终端pusch{1}。TransformPrecoding = false;%变换预编码pusch{1}。TargetCodeRate = 0.47;用于计算传输块大小的码率pusch{1}。XOverhead = 0;%速率匹配开销%传输设置pusch{1}。TransmissionScheme =“码”%的电报密码本,“nonCodebook”pusch{1}。调制=“正交相移编码”%的π/ 2-BPSK, QPSK, 16 qam,‘64 qam’,‘256 qam’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}。数据源=“PN9”通道数据源

分配

该图显示了PUSCH分配的参数。

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

  • PUSCH映射类型。

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

  • 帧中用于PUSCH序列的槽。

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

  • 相对于BWP分配的prb。

pusch{1}。MappingType =“一个”PUSCH映射类型('A'(按槽位排列),'B'(非按槽位排列))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;%额外功率提升分贝pusch {1} .DMRS。DMRSConfigurationType = 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)。使用empty([])来使用物理层单元标识pusch {1} .DMRS。NSCID = 0;CP-OFDM(0,1)的%置乱初始化pusch {1} .DMRS。NRSID = 0;% DFT-s-OFDM - rs的置乱标识(0…1007)。使用empty([])来使用物理层单元标识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,CDM组的最大数量为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功率提升pusch {1} .PTRS。TimeDensity = 1;PT-RS(1,2,4)的%时间密度(L_PT-RS)pusch {1} .PTRS。FrequencyDensity = 2;CP-OFDM中PT-RS的频率密度(K_PT-RS) (2,4)pusch {1} .PTRS。NumPTRSSamples = 2;DFT-s-OFDM的PT-RS样本数(NGroupSamp)的% (2,4)pusch {1} .PTRS。NumPTRSGroups = 2;DFT-s-OFDM的PT-RS组(NPTRSGroup)的百分比(2,4,8)pusch {1} .PTRS。REOffset =“00”CP-OFDM的PT-RS资源元素偏移% ('00','01','10','11')pusch {1} .PTRS。PTRSPortSet = 0;PT-RS天线端口必须是CP-OFDM中DM-RS端口的一个子集pusch {1} .PTRS。NID = 0;% PT-RS置乱标识用于DFT-s-OFDM(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在PUSCH上的传输。

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

  • HARQ-ACK、CSI part 1、CSI part 2、CG-UCI位数。

  • BetaOffsetACKBetaOffsetCSI1BetaOffsetCSI2,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}。EnableACK = 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 part 2pusch{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};为第二台终端创建一个PUSCH配置对象pusch{2}。使= 1;pusch{2}。标签=“uue 2 - PUSCH @ 30 kHz”;pusch{2}。BandwidthPartID = 2;% PUSCH映射到第二个BWPpusch{2}。RNTI = 12;% RNTI为第二个终端pusch{2}。SymbolAllocation = [0 12];pusch{2}。SlotAllocation = [5 6 7 8];pusch{2}。PRBSet = 5:10;% PRB分配,相对于BWPpusch{2}。时间= 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。的单元格数组中的每个元素nrWavegenSRSConfigobjects定义与BWP关联的SRS实例序列。定义两个禁用的SRS序列。

一般参数

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

  • 启用或禁用该SRS序列。

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

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

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

srs = {nrWavegenSRSConfig};srs{1}。使= 0;srs{1}。标签=“SRS @ 15千赫”;srs{1}。BandwidthPartID = 1;srs{1}。权力= 3;%功率缩放分贝

SRS配置

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

  • SRS天线端口数。

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

  • 周期内用于SRS传输的槽位。

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

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

  • 4-PRB块起始位置的额外频率偏移。

  • 带宽和跳频配置。占用的带宽与属性有关csr建筑,BHop.集BHop <建筑启用跳频功能。

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

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

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

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

  • 群跳或序列跳。它可以“没有”“groupHopping”“sequenceHopping”

  • 匆忙的身份。当启用组跳或序列跳时,它初始化伪随机二进制序列。

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;% SRS在BWP中的频率位置在RBs中srs{1}。NRRC = 0;% FreqStart的额外偏移量,以4个prb的块指定(0…67)srs{1}。csr= 13;带宽配置C_SRS(0…63)。它控制分配给SRS的带宽srs{1}。建筑= 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)。当KTC = 2时,NCSmax = 8,当KTC = 4时,NCSmax = 12。srs{1}。重复= 1;%重复因子(1,2,4)。表示槽位中相等连续SRS符号的个数srs{1}。GroupSeqHopping =“没有”组跳或序列跳('neither', ' grouhopping ', 'sequenceHopping')srs{1}。NSRSID = 0;%打乱标识(0…1023)srs{1}。SRSPositioning = false;启用SRS定位用户

指定多个SRS序列

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

srs {2} = srs {1};srs{2}。使= 0;srs{2}。标签=“SRS @ 30 kHz”;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,“桠溪”“MinThreshold”, -130);标题(“5G上行基带波形谱图”);

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

ResourceGridsField是一个结构数组,它包含这些字段。

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

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

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

disp (“与BWP 1相关的调制信息:”) disp (info.ResourceGrids info) (1)
BWP关联的调制信息1:Nfft: 4096 SampleRate: 61440000 cyclicprefixlength:[320 288 288 288 288 288 288 288 288 288 288 320 288 288 288 288…][4416 4384 4384 4384 4384 4384 4384 4384 4384 4384 4384 4416 4384…][0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] SymbolsPerSlot: 14 SlotsPerSubframe: 1 SlotsPerFrame: 10 k0: 0

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

另请参阅

功能

对象

相关的话题

Baidu
map