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上行链路波形的示例,请参见5G NR上行链路与PUCCH矢量波形生成.
波形与载波配置
使用nrULCarrierConfig
对象以参数化基带波形生成。该对象包含一组与波形通道和信号相关的附加对象,并使您能够设置这些上行链路载波配置参数。
该UL运营商配置的标签
资源块中的SCS载波带宽
载波单元ID
以子帧表示的生成波形的长度
窗口
ofdm调制波形的采样率
符号相位补偿的载波频率
可以控制SCS载波带宽和保护频带NStartGrid
而且NSizeGrid
的属性nrSCSCarrierConfig
对象。
waveconfig = nrULCarrierConfig;创建上行运营商配置对象waveconfig。标签=“UL承运人1”;%此上行波形配置的标签waveconfig。NCellID = 0;细胞标识waveconfig。ChannelBandwidth = 40;%信道带宽(MHz)waveconfig。FrequencyRange =“FR1”;% 'FR1'或'FR2'waveconfig。NumSubframes = 10;生成的波形中1ms子帧的百分比(每1ms子帧1、2、4、8个插槽,取决于SCS)waveconfig。窗口Percent = 0;相对于FFT长度的窗口百分比waveconfig。SampleRate = [];ofdm调制波形的采样率waveconfig。载波频率= 0;%载波频率,单位为Hz。此属性用于符号相位%补偿前OFDM调制定义一组特定于scs的载波,使用的最大大小% 40 MHz NR信道。有关defined的更多信息,请参阅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。的单元格数组中的每个元素nrWavegenBWPConfig
objects定义BWP。对于每个BWP,可以指定sc、CP (cyclic prefix)长度和带宽。的SubcarrierSpacing
属性将BWP与之前定义的南海特定载体之一联系起来。的NStartBWP
属性控制BWP在载体中相对于点A的位置。NStartBWP
根据BWP的命理学,以公共资源块(CRB)表示。不同的bwp可以相互重叠。
% BWP配置bwp = {nrWavegenBWPConfig,nrWavegenBWPConfig};bwp{1}。BandwidthPartID = 1;% BWP idbwp{1}。标签=“BWP 1 @ 15 kHz”;%此BWP标签bwp{1}。SubcarrierSpacing = 15;% BWP子载波间距bwp{1}。CyclicPrefix =“正常”;% BWP循环前缀为15 kHzbwp{1}。NSizeBWP = 25;% PRBs中BWP的大小bwp{1}。NStartBWP = 10;BWP相对于A点在CRBs中的位置bwp{2}。BandwidthPartID = 2;% BWP idbwp{2}。标签=“BWP 2 @ 30 kHz”;%此BWP标签bwp{2}。SubcarrierSpacing = 30;% BWP子载波间距bwp{2}。CyclicPrefix =“正常”;% BWP循环前缀为30 kHzbwp{2}。NSizeBWP = 51;% PRBs中BWP的大小bwp{2}。NStartBWP = 40;BWP相对于A点在CRBs中的位置
PUSCH实例配置
使用单元阵列指定波形中的PUSCH传输实例集。的单元格数组中的每个元素nrWavegenPUSCHConfig
objects定义了一个PUSCH传输实例序列。本例定义了两个PUSCH序列,用于模拟两个用户设备(UE)传输。
一般参数
为每个PUSCH序列设置这些参数。
启用或禁用此PUSCH序列。
为这个PUSCH序列指定一个标签。
指定携带PUSCH的BWP。PUSCH使用为该BWP指定的SCS。
以dB为单位的功率缩放。
启用/禁用UL-SCH传输通道编码。
RNTI。
置乱PUSCH位的NID。
改变预编码。当变换预编码为
真正的
时,启用变换预编码,得到的波形为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}。Enable = 1;启用PUSCH序列pusch{1}。标签=“UE 1 - PUSCH @ 15 kHz”;%该PUSCH序列的标签pusch{1}。BandwidthPartID = 1;PUSCH传播的BWP %pusch{1}。Power = 0;%功率缩放,单位为dBpusch{1}。编码= 1;%启用UL-SCH传输通道编码pusch{1}。Nid = 1;数据部分置乱pusch{1}。Rnti = 11;% RNTI用于第一个UEpusch{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}。numantennapports = 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;% PRB分配
PUSCH DM-RS配置
2 .设置DM-RS参数。
天线端口和DM-RS配置(TS 38.211节6.4.1.1)pusch{1}。dmrpower = 0;%额外功率提升,单位:dBpusch {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。dmrstypeposition = 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 DM-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的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}。ptrpower = 0;%额外的PT-RS功率提升dB CP-OFDMpusch {1} .PTRS。时间密度= 1;PT-RS(1,2,4)的%时间密度(L_PT-RS)pusch {1} .PTRS。频率密度= 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;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在PUSCH上的传输。
启用/禁用HARQ-ACK、CSI part 1、CSI part2和CG-UCI的传输
HARQ-ACK、CSI part 1、CSI part 2、CG-UCI位数。
BetaOffsetACK
,BetaOffsetCSI1
,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}。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 part 1pusch{1}。NumCSI1Bits = 10;% CSI part 1位数pusch{1}。BetaOffsetCSI1 = 2;CSI第一部分的功率因数pusch{1}。DataSourceCSI1 =“PN9”;% CSI第1部分数据源pusch{1}。EnableCSI2 = true;启用或禁用CSI part 2pusch{1}。NumCSI2Bits = 10;% CSI part 2位数pusch{1}。BetaOffsetCSI2 = 2;CSI第二部分的功率因数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}。uciscale = 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}。Enable = 1;pusch{2}。标签=“UE 2 - PUSCH @ 30 kHz”;pusch{2}。BandwidthPartID = 2;% PUSCH映射到第二个BWPpusch{2}。Rnti = 12;% RNTI用于第二个UEpusch{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。的单元格数组中的每个元素nrWavegenSRSConfig
objects定义了与BWP关联的SRS实例序列。定义两个禁用的SRS序列。
一般参数
为每个SRS序列设置这些参数。
启用或禁用该SRS序列。
为这个SRS序列指定一个标签。
指定携带该SRS序列的BWP。SRS序列配置使用为此BWP指定的SCS。
指定以dB为单位的功率缩放。
srs = {nrWavegenSRSConfig};srs{1}。Enable = 0;srs{1}。标签=“SRS @ 15 kHz”;srs{1}。BandwidthPartID = 1;srs{1}。幂= 3;%功率缩放,单位为dB
SRS配置
您可以为每个SRS序列配置这些参数。
SRS天线接口个数。
分配给每个SRS序列的槽中的符号。
时间段内用于SRS传输的插槽。
槽位分配的时间段。空周期表示插槽模式没有重复。
SRS序列在RBs中BWP中的起始位置。
4-PRB块起始位置的额外频率偏移。
带宽跳频配置。占用的带宽由属性决定
csr
,建筑
,BHop
.集BHop < BSRS
使能跳频功能。传输梳以指定子载波中的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)。表示SRS在每个KTC子载波上的分配情况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', ' grouphapping ', 'sequenceHopping')srs{1}。Nsrsid = 0;%置乱标识(0…1023)srs{1}。SRSPositioning = false;%开启SRS用户定位功能
指定多个SRS序列
为第二个BWP指定第二个SRS序列。
Srs {2} = Srs {1};srs{2}。Enable = 0;srs{2}。标签=“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. resourcegrid (1).Info.Nfft;图;光谱图(波形(:1)的(nfft, 1), 0, nfft,“中心”samplerate,“桠溪”,“MinThreshold”, -130);标题(《5G上行基带波形谱图》);
波形发生器函数返回时域波形和一个结构信息
.的信息
结构包含底层资源元素网格和所有PUSCH和SRS实例在波形中使用的资源的细分。
的ResourceGrids
Field是一个结构数组,它包含这些字段。
每个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 320 288 288 288…[4416 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
生成的资源网格是一个三维矩阵。网格中的不同平面按端口号递增的顺序表示天线端口。