本示例演示如何使用物理上行控制信道(PUCCH)为基带组件载波配置和生成5G NR上行矢量波形nrWaveformGenerator
函数。
这个示例演示了如何参数化并生成一个用于上行控制的多用户设备(UE)传输的5G新无线电(NR)波形nrWaveformGenerator
函数。本例中的基带分量载波波形由多个子载波间隔(SCS)载波和带宽部分(BWP)以及多个PUCCH传输实例序列及其解调参考信号(DM-RS)在不同的BWP上表征。每个PUCCH序列模拟一个单独的UE传输。关于如何使用物理上行共享信道(PUSCH)和探测参考信号(SRS)生成5G上行波形的示例,包括用于定位的第16版CG-UCI和SRS,请参见5G NR上行矢量波形生成.
本示例为几种格式配置了多个PUCCH序列。该图显示了每一种PUCCH格式的特征,如TS 38.211第6.3.2节所定义。
使用nrULCarrierConfig
对象,以参数化基带波形产生。该对象包含一组与波形通道和信号相关的附加对象,使您能够设置这些上行载波配置参数。
UL运营商配置的标签
SCS以资源块为单位的载波带宽
载体细胞ID
在子帧中生成的波形的长度
窗口
ofdm调制波形的采样率
符号相位补偿的载波频率
您可以控制SCS载波带宽和保护带使用NStartGrid
和NSizeGrid
的属性nrSCSCarrierConfig
对象。
waveconfig = nrULCarrierConfig;%创建上行链路运营商配置对象waveconfig.label =“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.samplerve = [];% ofdm调制波形的采样率waveconfig。CarrierFrequency = 0;%载波频率,单位为Hz。此属性用于符号阶段% OFDM调制前的补偿定义一组SCS特定的载体,使用a的最大尺寸% 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;
BWP由一组连续的资源形成,在给定SCS载波上共享数字。您可以使用单元格数组定义多个BWP。单元格数组中的每个元素nrWavegenBWPConfig
对象定义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}。标签=“BWP 1 @ 15千赫”;这个BWP的标签bwp{1}。SubcarrierSpacing = 15;% BWP子载波间距bwp{1}。CyclicPrefix =“正常”;% BWP循环前缀15千赫bwp{1}。NSizeBWP = 25;prb中BWP的大小%bwp{1}。NStartBWP = 10;在crb中BWP相对于A点的位置bwp{2}。BandwidthPartID = 2;% BWP IDbwp{2}。标签=“BWP 2 @ 30khz”;这个BWP的标签bwp{2}。SubcarrierSpacing = 30;% BWP子载波间距bwp{2}。CyclicPrefix =“正常”;% BWP循环前缀为30 kHzbwp{2}。NSizeBWP = 51;prb中BWP的大小%bwp{2}。NStartBWP = 40;在crb中BWP相对于A点的位置
PUCCH有五种不同的格式,每一种用于不同的控制目的。使用这些特定于格式的配置对象来定义一系列PUCCH实例。
本节使用单元阵列在波形中指定一组PUCCH传输实例。单元格数组中的每个元素定义了一个PUCCH传输实例序列,并且必须是上面列出的对象之一。这个例子定义了三个PUCCH序列,模拟三种UE传输:PUCCH格式3、PUCCH格式2和PUCCH格式0。本节中分配的一些属性只适用于某些PUCCH格式。有关特定格式的所有属性的列表,请参阅该格式的PUCCH配置对象的文档。
一般参数
为每个PUCCH序列设置这些参数,对所有格式都通用。
启用或禁用此PUCCH序列
为这个PUCCH序列指定一个标签
指定携带PUCCH的BWP。PUCCH使用为本BWP指定的SCS
分贝功率缩放
pucch = {nrWavegenPUCCH3Config};%为第一个UE创建一个PUCCH格式3配置对象pucch{1}。使= 1;%开启PUCCH序列pucch{1}。标签=' ue1 - PUCCH Format 3 @ 15khz ';%该PUCCH序列的标签pucch{1}。BandwidthPartID = 1;PUCCH传播的BWP %pucch{1}。权力= 0;%以dB为单位的功率缩放
为每个PUCCH序列设置这些特定格式的参数。
调制方案。
跳频配置。
第二跳的资源块偏移量。
组跳配置。
PUCCH跳跃的身份。该值用于格式0的序列生成,格式1的序列和DM-RS生成,格式3和4的DM-RS生成。
RNTI。
用于扰乱上行控制信息(UCI)位的NID。
pucch{1}。调制=“正交相移编码”;%的π/ 2-BPSK”、“正交相移编码”pucch{1}。FrequencyHopping =“intraSlot”;跳频配置pucch{1}。SecondHopStartPRB = 10;%第二跳的资源块偏移量pucch{1}。GroupHopping =“启用”;群跳配置pucch{1}。HoppingID = 1;%跳身份pucch{1}。RNTI = 11;% RNTI为第一个UEpucch{1}。NID = 0;%匆忙身份
分配
该图显示了在PUCCH分配中使用的参数。
可以通过设置这些参数来控制PUCCH分配。这些参数是相对于BWP的。
分配给每个PUCCH实例的槽中的符号。对于PUCCH格式0和2,您只能分配1或2个符号。对于PUCCH格式1、3和4,您必须在插槽中分配至少4个符号。
用于PUCCH序列的帧中的槽。
槽位分配的周期。空周期表示槽位模式没有重复。
相对于BWP分配的prb。对于格式0,1和4,只能分配一个PRB。
pucch{1}。SymbolAllocation = [3 11];%第一个符号和长度pucch{1}。SlotAllocation = [3 4];%为PUCCH序列分配的槽索引pucch{1}。时间= 6;%槽位分配周期pucch{1}。PRBSet = 0:9;%复审委员会分配
PUCCH DM-RS配置
您可以设置这些参数来控制每个PUCCH序列的PUCCH DM-RS。
增加DM-RS
DM-RS的额外功率增强
pucch{1}。AdditionalDMRS = 1;%的额外DM-RSpucch{1}。DMRSPower = 1;DM-RS的额外功率提升,分贝
UCI负载配置
为UCI负载配置设置这些参数。
启用或禁用UCI编码。
当UCI第1部分和UCI第2部分同时存在时,用于计算传输块大小的目标码率。
UCI (HARQ-ACK、SR、CSI第1部分)位数。
UCI第2部分(CSI第2部分)的位数。
UCI和UCI第2部分的数据源。您可以使用位数组或这些标准PN序列中的一个:'PN9- itu ', 'PN9', 'PN11', 'PN15', 'PN23'。您可以以{'PN9', seed}形式将生成器的种子指定为单元格数组。如果不指定种子,则用所有种子初始化生成器。
PUCCH {1} .coding = 1;PUCCH {1} .targetCoderate = 0.15;PUCCH {1} .numucibits = 20;PUCCH {1} .numuci2bits = 10;PUCCH {1} .datasourceuci =“PN9”;pucch{1}。DataSourceUCI2 =“PN9”;
指定多个PUCCH实例
为第二个BWP指定两个额外的PUCCH序列。第一个是PUCCH格式2,分配在第二个BWP的低端,没有跳和没有重复。第二个序列为PUCCH格式0,分配在第二个BWP的上半部分,其特征是槽间跳变、2个包含HARQ-ACK的UCI位和1个调度资源(SR)位。
pucch {2} = nrWavegenPUCCH2Config;%为第二个UE创建一个PUCCH格式2配置对象pucch{2}。标签=' ue2 - PUCCH Format 2 @ 30 kHz';%该PUCCH序列的标签pucch{2}。BandwidthPartID = 2;% PUCCH映射到第二个BWPpucch{2}。SymbolAllocation = [10 2];%符号分配pucch{2}。SlotAllocation = 0:2;%槽分配pucch{2}。时间= [];%指定这个PUCCH不重复插槽模式pucch{2}。RNTI = 12;% RNTI用于第二个UEpucch{2}。NID0 = 0;DM-RS置乱标识pucch {3} = nrWavegenPUCCH0Config;%为第三个终端创建一个PUCCH格式0配置对象pucch{3}。标签=' uue 3 - PUCCH Format 0 @ 30 kHz';%该PUCCH序列的标签pucch{3}。BandwidthPartID = 2;% PUCCH映射到第二个BWPpucch{3}。SymbolAllocation = [1 2];%符号分配pucch{3}。PRBSet = 40;%复审委员会分配pucch{3}。FrequencyHopping =“interSlot”;%跳频pucch{3}。SecondHopStartPRB = 30;%第二跳的资源块偏移量PUCCH {3} .InitialCyclicsHift = 3;%初始循环移位pucch{3}。NumUCIBits = 2;%包含HARQ-ACK的UCI位数pucch{3}。DataSourceSR = 1;% SR数据源
使用单元格数组在波形中指定PUSCH实例集。单元格数组中的每个元素nrWavegenPUSCHConfig
对象定义了一个PUSCH实例序列。在第一个BWP中禁用PUSCH序列。
pusch = {nrWavegenPUSCHConfig};pusch{1}。使= 0;pusch{1}。标签=“push @ 15khz”;pusch{1}。BandwidthPartID = 1;
在波形中指定SRS。单元格数组中的每个元素nrWavegenSRSConfig
对象定义与BWP关联的SRS实例序列。在第一个BWP中禁用SRS序列。
srs = {nrWavegenSRSConfig};srs{1}。使= 0;srs{1}。标签=“SRS @ 15khz”;srs{1}。BandwidthPartID = 1;
将所有的信道和信号参数分配给主载波配置对象nrULCarrierConfig
,然后生成并绘制波形。
waveconfig。SCSCarriers = SCSCarriers;waveconfig。BandwidthParts = bwp;waveconfig。PUCCH = PUCCH;waveconfig。PUSCH = PUSCH;waveconfig。SRS = SRS;%产生复基带波形(波形信息]= nrWaveformGenerator (waveconfig);
绘制基带波形的幅度。
图;情节(abs(波形));标题(“5G上行基带波形的幅度”);包含(“样本指数”);ylabel (“级”);
绘制基带波形的谱图。该图显示了三个PUCCH序列的资源分配情况。
在第一个BWP中,PUCCH格式3位于声谱图的下方。图中显示了该PUCCH的槽内跳频。
PUCCH格式2,在第二个BWP中,大约为-10 MHz。
第二个BWP中,PUCCH格式0是声谱图的中心部分。图中显示了该PUCCH的槽间跳频。
samplerve = info.resourcegrids(1).info.sampleate;nfft = info.resourcegrids(1).info.nfft;图;频谱图(波形(:,1),那些(NFFT,1),0,NFFT,“中心”samplerate,“桠溪”,“MinThreshold”, -130);标题(“5G上行基带波形谱图”);
波形发生器函数返回时域波形和结构信息
.的信息
结构包含底层资源元素网格和所有PUCCH、PUSCH和SRS实例在波形中使用的资源细分。
例如,显示第一个PUCCH的高级信息。
disp (与第一个PUCCH相关的信息:) disp (info.WaveformResources.PUCCH (1))
与第一个PUCCH相关的信息:名称:'UE 1 - PUCCH Format 3 @ 15khz ' Format: 3 cdmlength: [1 1] Resources: [1x3 struct]
的ResourceGrids
Field是一个结构数组,它包含这些字段。
对应于每个BWP的资源网格。
包含每个BWP中的信道和信号的总带宽的资源网格。
一种信息结构,其信息与每个BWP相对应。例如,显示第一个BWP的信息。
disp (与BWP 1相关的调制信息:) disp (info.ResourceGrids info) (1)
NFFT::4096 SAMPLERATE:与BWP 1相关联的调制信息61440000个CyclicPrefixLengths:[320 288 288 288 288 288 288 320 288 288 288 ...] SymbolLengths:[4416 4384 4384 4384 4384 4384 4384 4416 4384 ...]窗口化:0符号:[0 0 0 0 0 0 0 0 0 0 0 0 0] Symbolsperslot:14 slotspersubframe:1 slotsperframe:10 k0:0