主要内容

5G NR PRACH配置

本例显示如何配置TS 38.211章节5.3.2和6.3.3中定义的5G新无线电(NR)物理随机访问通道(PRACH) [1].您可以了解PRACH时间资源,它们与PRACH序文的关系,并学习如何生成PRACH序文而不需要查找配置表。本例还展示了如何将PRACH符号映射到资源网格,以及如何为单个PRACH序文生成时域波形。

配置Carrier和PRACH

金宝app支持的子载波间距组合

TS 38.211中支持的PRACH和物理上行共享信道(PUSCH)初始访问时金宝app的子载波间距组合如表6.3.3.2-1所示。可以直接从PRACH配置对象访问该表。

disp (nrPRACHConfig.Tables金宝app.SupportedSCSCombinations)
上帝抵抗军PRACHSubcarrierSpacing PUSCHSubcarrierSpacing NRBAllocation千巴  ____ ______________________ ______________________ _____________ ____ 839 1.25 15 6 7 839 1.25 30 3 839 1.25 60 133 839 5 839年15日24日12 5 30 60 12 839 5 6 7 139 15 15 12 2 139 15 30 6 139 139 15 60 3 2 30 15 24 139 139 30 30 12 2 30 60 6 2 139 60 60 12 2 139 60 60 139 120 24 120 139 120 120 571 2 30 15 96 2 571 30 30 48 571 30 60 24 96 1151 1151 15 15 15 30 48 1151 15 60 24 1

系统信息块1 (SIB1)包含无线电资源控制(RRC)信息元素UplinkConfigCommonSIB(TS 38.331第6.3.2节)[2]),定义PUSCH的子载波间距。在随机访问过程中,用户设备(UE)需要这些信息来传输PRACH前导。

载波配置

由于在PRACH前导传输时没有定义PUSCH,因此要配置PUSCH子载波间距和资源网格的频域维度,请使用nrCarrierConfig对象。

carrier = nrCarrierConfig;母舰。年代ubcarrierSpacing = 15;%子载波间距,kHz (15,30,60,120)

由于PRACH前导是相对于载波调制的,改变载波子载波间距会导致不同的PRACH波形。要查看不同的载波如何影响生成的波形,请检查与PRACH OFDM调制相关的信息中若干载波的输出为单个PRACH导言生成波形节,。

开环结构

属性的属性值可以配置PRACH参数nrPRACHConfig对象。根据TS 38.211,并非所有的PRACH参数组合都是有效的。的属性的更多信息nrPRACHConfig反映这些限制,参见nrPRACHConfig

prach = nrPRACHConfig;开环。FrequencyRange =“FR1”%频率范围('FR1', 'FR2')开环。DuplexMode =“FDD”双工模式('FDD', 'TDD', 'SUL')开环。ConfigurationIndex = 27;配置索引(0…255)。这个值在下一节中自动更新。开环。年代ubcarrierSpacing = 15;%子载波间距,kHz (1.25, 5, 15, 30, 60, 120)开环。年代equenceIndex = 0;%逻辑根序列索引(0…837)开环。PreambleIndex = 0;单元格内的标量前缀索引(0…63)开环。RestrictedSet =“UnrestrictedSet”%受限集类型('UnrestrictedSet','RestrictedSetTypeA','RestrictedSetTypeB')开环。ZeroCorrelationZone = 0;%循环移位配置指数(0…15)开环。RBOffset = 0;%初始上行带宽部分BWP相对于运营商资源网格的起始资源块索引(0…274)开环。FrequencyStart = 0;初始上行BWP物理资源块0在频域最低PRACH传输场合的频率偏移量%(0…274)开环。FrequencyIndex = 0;频域(0 ~ 7)PRACH传输次数的%指数开环。TimeIndex = 0;PRACH在时域(0…6)传输次数的%指数对于格式B2和B3,这个值在下一节中自动更新。开环。一个ctivePRACHSlot = 0;子帧内的活动PRACH槽号或60 kHz槽(0,1)开环。NPRACHSlot = 0;% PRACH槽位号

的值也可以修改开环。上帝抵抗军使用3GPP规范第16版中引入的PRACH前导序列长度的值。

ConfigurationIndex而且TimeIndex属性依赖于PRACH格式。的SubcarrierSpacingActivePRACHSlot,NPRACHSlot属性确定PRACH前导是否激活。接下来的两节将讨论如何设置这些属性。

如何设置ConfigurationIndex基于首选格式

TS 38.211中的表6.3.3.2-2到6.3.3.2-4定义了所有可能的PRACH在时域中的配置。频率范围和双工模式的组合指定使用哪个配置表。有效的组合是:

  • FR1和FDD(配对谱):表6.3.3.2-2

  • FR1和SUL(补充上行链路):表6.3.3.2-2

  • FR1和TDD(未配对谱):表6.3.3.2-3

  • FR2和TDD(未配对谱):表6.3.3.2-4

有关成对和未成对频谱如何与双工模式相关的更多信息,请参阅字段FDD-OrSUL的RRC信息元素FrequencyInfoULTS 38.331第6.3.2节。

方法访问这些配置表的属性nrPRACHConfig对象。例如:

nrPRACHConfig.Tables.ConfigurationsFR1PairedSUL表6.3.3.2-2 . % TS 38.211nrPRACHConfig.Tables.ConfigurationsFR1Unpaired表6.3.3.2-3 . % TS 38.211nrPRACHConfig.Tables.ConfigurationsFR2表6.3.3.2-4 . % TS 38.211

TS 38.211定义了13种PRACH格式,并将它们分为长序文和短序文。长的序言有一个长度序列 l R 一个 8 3. 9 ,而短的序言有一个长度序列 l R 一个 1 3. 9 .与长序文相关的格式为:0、1、2、3。与短序文相关的格式有:A1, A2, A3, B1, B2, B3, B4, C0, C2,包括混合格式A1/B1, A2/B2和A3/B3。

表6.3.3.2-2至6.3.3.2-4中的配置索引定义了每种序文格式可以传输的时间资源。每个序文格式都与几个配置索引相关联。的值可以选择PRACH格式,而不需要查找配置表ConfigurationIndex基于首选格式。此值对应于可以传输首选序文格式的最大时间资源范围。

格式=“B2”%是开序言格式(' 0 ',' 1 ',' 2 ',' 3 ',A1, A2, A3, B1, B2, B3, B4, C0, C2)

根据,选择配置表FrequencyRange而且DuplexMode

如果strcmpi(开环。FrequencyRange,“FR1”如果strcmpi(开环。DuplexMode,“TDD”表6.3.3.2-3 . % TS 38.211configTable = nrPRACHConfig.Tables.ConfigurationsFR1Unpaired;其他的表6.3.3.2-2 . % TS 38.211configTable = nrPRACHConfig.Tables.ConfigurationsFR1PairedSUL;结束其他的表6.3.3.2-4 . % TS 38.211configTable = nrPRACHConfig.Tables.ConfigurationsFR2;结束

表6.3.3.2-2中相同短序文格式对应的所有配置中,倒数第二种配置用于传输PRACH序文的时间资源最多。在所有其他情况下,包括表6.3.3.2-2中的混合格式,最后一种配置用于传输PRACH前导的时间资源最多。属性的值ConfigurationIndex财产。如果选择格式B2或B3,本示例设置的最大值TimeIndex

如果strcmpi(开环。FrequencyRange,“FR1”) && strcmpi(路径。DuplexMode,“FDD”) & &...任何(strcmpi(格式,{“A1”“A2”“A3”“B1”“B4”“C0”C2的}))开环。ConfigurationIndex = find(strcmpi(configTable.PreambleFormat,format),1,“最后一次”) - 2;其他的如果~任何(strcmpi(格式,{“B2”“单位”}))开环。ConfigurationIndex = find(strcmpi(configTable.PreambleFormat,format),1,“最后一次”) - 1;其他的格式B2和B3仅以混合格式出现,因此请选择%适当的混合格式,并设置TimeIndex的最大值开环。ConfigurationIndex = find(endsWith(configTable.PreambleFormat,format),1,“最后一次”) - 1;开环。TimeIndex = prach.NumTimeOccasions - 1;结束结束

如何选择SubcarrierSpacingActivePRACHSlot,NPRACHSlot生成主动PRACH序言

TS 38.211中的表6.3.3.2-2到表6.3.3.2-4描述了对应于活动PRACH前导的PRACH槽位。这些表的第三和第四列表示与活动的PRACH序言相对应的系统帧号。根据所选频率范围FR1或FR2,第五列分别表示对应于有源PRACH前导的15 kHz或60 kHz子载波间距的槽号。如果PRACH前导在当前时间资源中不是活动的,则不能进行时间传输。

例如,如果PRACH子载波间距设置为15khz,所选的PRACH配置在任何系统帧和子帧中都是活动的,如表6.3.3.2-2所示。

disp (configTable (prach.ConfigurationIndex + 1,:))
ConfigurationIndex PreambleFormat x y SubframeNumber StartingSymbol PRACHSlotsPerSubframe NumTimeOccasions PRACHDuration  __________________ ______________ _ _____ _______________________ ______________ _____________________ ________________ _____________ 146 {A2和B2的}{[0]}{[0 1 2 3 4 5 6 7 8 9]}0 2 3 4

若要验证PRACH前导在当前插槽中是活动的,请检查prachSymbols的输出nrPRACH函数。如果PRACH前导在当前槽中不活动,则此输出为空。的值进行循环,以生成活动的PRACH序文NPRACHSlot财产,直到prachSymbols非空的。

本节提供的案例展示了如何检查当前PRACH短序文是否处于活动状态。这两种情况都考虑了PRACH短序言格式B2。类型的值可能激活PRACH序文NPRACHSlot而且ActivePRACHSlot属性与本例中显示的属性不同。

案例1:典型的PRACH子载波间距配置

用典型的子载波间距配置为所选格式设置一个PRACH序文。本例考虑了一个15khz的子载波间距,这是FR1中短序音的典型值。如果您更改了子载波间距的值或格式,则可能需要更改的值ActivePRACHSlot而且NPRACHSlot来获得一个激活的PRACH插槽。

保存用户自定义配置subcarrierSpacing = prach.SubcarrierSpacing;activePRACHSlot = prach.ActivePRACHSlot;nPRACHSlot = prach.NPRACHSlot;为此设置SubcarrierSpacing、ActivePRACHSlot和NPRACHSlot的值%的情况如果任何(strcmpi(格式,{' 0 '' 1 '' 2 '}))开环。年代ubcarrierSpacing = 1.25;elseifstrcmpi(格式,“3”)开环。年代ubcarrierSpacing = 5;其他的简短的序言如果strcmpi(开环。FrequencyRange,“FR1”)开环。年代ubcarrierSpacing = 15;%有效值为(15,30)其他的% FR2开环。年代ubcarrierSpacing = 60;%有效值为(60,120)结束结束开环。一个ctivePRACHSlot = 0; prach.NPRACHSlot = 0;

根据TS 38.211中表6.3.3.2-2所示,UE在任何槽位都可以传输PRACH。

prachSymbols = nrPRACH(载体,prach);active = ~isempty(prachSymbols);disp ([”活动,“num2str(积极)))
活动:1

案例2:替代PRACH子载波间距配置

PRACH子载波间距设置为30 kHz,而载波子载波间距设置为默认值15 kHz。即每个载波槽包含两个PRACH槽。本例不考虑PRACH长前导和频率范围FR2,因为它们与30 kHz子载波间距不兼容。

在30khz PRACH子载波间距的情况下,15khz子载波间距内的两个PRACH槽中只有一个可以激活。根据TS 38.211中的表6.3.3.2-2,对于PRACH序言格式B2,第一个或第二个PRACH槽都可以是活动的。的价值开环。一个ctivePRACHSlot属性定义当前载波子帧中哪个PRACH槽是活动的。这个属性是 n 年代 l o t R 一个 TS 38.211章节5.3.2中定义的参数。

的四种组合NPRACHSlot而且ActivePRACHSlot属性值并测试PRACH前导是否激活。本案例显示了两种组合的PRACH序言的时域结构图。该图显示了主动PRACH前导占用载波槽的前半部分ActivePRACHSlot0并占用载波槽的后半段ActivePRACHSlot1.有关此图的详细信息,请参见绘制所选PRACH导言的时域结构部分。

如果~任何(strcmpi(格式,{' 0 '' 1 '' 2 '“3”})) && strcmpi(prach。FrequencyRange,“FR1”%短序文格式和FR1在这种情况下,将子载波间距设置为30 kHz开环。年代ubcarrierSpacing = 30;定义要检查的NPRACHSlot和ActivePRACHSlot的所有组合nPRACHSlotCase2 = [0,1,2];activePRACHSlotCase2 = [0,1];[NPRACHSlotCase2, ActivePRACHSlotCase2] = meshgrid(NPRACHSlotCase2, ActivePRACHSlotCase2);prachActivityTable = table(NPRACHSlotCase2(:),ActivePRACHSlotCase2(:),false*ones(nummel (NPRACHSlotCase2),1),...“VariableNames”, {“NPRACHSlot”“ActivePRACHSlot”“活跃”});遍历所有组合i = 1:numel(NPRACHSlotCase2)。NPRACHSlot = NPRACHSlotCase2(i);开环。一个ctivePRACHSlot = ActivePRACHSlotCase2(i); prachSymbols = nrPRACH(carrier,prach); active = ~isempty(prachSymbols);检查PRACH前导在当前槽位是否激活prachActivityTable.active(i) = active;如果积极主动。NPRACHSlot < 2绘制PRACH序言的时域结构% active PRACH在前两个槽位进行前导hPRACHPreamblePlot(载体,开环);结束结束其他的为过滤的案例显示一条消息如果任何(strcmpi(格式,{' 0 '' 1 '' 2 '“3”})) disp (['PRACH长序言格式'格式“不兼容30 kHz的子载波间距。”])其他的% FR2disp (“频率范围FR2与30 kHz子载波间距不兼容。”结束结束

图当前PRACH的时域结构序文包含一个轴对象。在一个15 kHz载波槽(NPRACHSlot =[0,1])中,标题为PRACH前置格式A2/B2的Time-Domain Structure的axis对象包含36个patch类型的对象。这些对象表示循环前缀、序列、循环前缀-电流、序列-电流、保护周期-电流。

图当前PRACH的时域结构序文包含一个轴对象。在一个15 kHz载波槽(NPRACHSlot =[0,1])中,标题为PRACH前置格式A2/B2的Time-Domain Structure的axis对象包含36个patch类型的对象。这些对象表示循环前缀、序列、循环前缀-电流、序列-电流、保护周期-电流。

对于子载波间距为30khz的短序文格式,此表显示PRACH序文对于所选值的每个组合是否处于活动状态NPRACHSlot而且ActivePRACHSlot属性。

如果~任何(strcmpi(格式,{' 0 '' 1 '' 2 '“3”})) && strcmpi(prach。FrequencyRange,“FR1”%短序文格式和FR1disp (prachActivityTable)结束
NPRACHSlot ActivePRACHSlot活跃  __________ _______________ ______ 0 0 1 0 1 0 1 0 0 1 1 1 2 0 1 2 1 0

将PRACH配置对象设置回用户定义的配置

开环。年代ubcarrierSpacing = subcarrierSpacing; prach.ActivePRACHSlot = activePRACHSlot; prach.NPRACHSlot = nPRACHSlot;

检查PRACH配置

PRACH配置对象也有只读属性,提供有关当前配置的附加信息:

  • 序言格式:格式

  • 扎多夫-楚序言序列的长度:上帝抵抗军

  • 允许的最大PRACH时间次数:NumTimeOccasions

  • PRACH槽格中对应一个传输场合的OFDM符号个数:PRACHDuration

  • 当前PRACH场合的第一个OFDM符号的位置:SymbolLocation

disp(开环)
nrPRACHConfig属性:FrequencyRange:“FR1”DuplexMode:“FDD”ConfigurationIndex: 146 SubcarrierSpacing: 15上帝抵抗军:139 SequenceIndex: 0 PreambleIndex: 0 RestrictedSet:“UnrestrictedSet”ZeroCorrelationZone: 0 RBOffset: 0 FrequencyStart: 0 FrequencyIndex: 0 TimeIndex: 2 ActivePRACHSlot: 0 NPRACHSlot: 0只读属性:格式:“B2”NumTimeOccasions: 3 PRACHDuration: 4 SymbolLocation: 8 SubframesPerPRACHSlot: 1 PRACHSlotsPerPeriod: 10常量属性:表:[1 x1 struct]

绘制所选PRACH导言的时域结构

该图以浅色显示了所有可能的PRACH场合(在当前载波槽中)和当前PRACH场合(对应于所选的TimeIndex)深色的。该图分别以红色、蓝色和绿色包含循环前缀(CP)、PRACH活动序列周期和最终保护周期(GP)。如果PRACH序言在当前插槽中不活动,则该区域为空。该图显示了所选PRACH配置的时间相关属性和PRACH在载波槽中的位置。如果PRACH子载波间距小于载波子载波间距,则该图显示传输PRACH前导所需的最小载波槽数。最后一个PRACH时刻并不总是与载波槽的结束相对应。对于当前PRACH配置不允许任何PRACH传输的时间值,该图为空。

hPRACHPreamblePlot(载体,开环);

图当前PRACH的时域结构序文包含一个轴对象。在一个15 kHz载波插槽(NPRACHSlot = 0)中,具有标题为PRACH前置格式A2/B2的时域结构的axis对象包含36个patch类型的对象。这些对象表示循环前缀、序列、循环前缀-电流、序列-电流、保护周期-电流。

生成并映射PRACH符号到资源网格

PRACH资源网格显示了PRACH序文在时域和频域的位置。使用这个资源网格,你可以:

  • 在时域和频域目视检查PRACH序言

  • 生成通过调制资源网格得到的PRACH波形

PRACH资源网格生成由以下步骤组成:

  1. 生成一个空网格

  2. 生成PRACH波形中要传输的符号

  3. 生成PRACH符号所在的频率指数和时间指数

  4. 将PRACH符号映射到PRACH资源网格

生成一个空的PRACH资源网格。

prachGrid = nrPRACHGrid(载体,prach);大小(prachGrid)
ans =1×2624年14

生成PRACH符号。符号的数量取决于PRACH配置。的prachSymbols如果PRACH前导在当前槽中不活动,则输出为空。

prachSymbols = nrPRACH(载体,prach);

生成PRACH索引。的每个元素中的值prachIndices每个元素的位置是线性索引吗prachSymbols在PRACH资源网格中。

prachIndices = nrPRACHIndices(载体,prach);

使用索引将PRACH符号映射到PRACH资源网格。代表 β P R 一个 C H 在TS 38.211节6.3.3.2中,映射将缩放因子1应用于PRACH符号。

prachGrid(prachIndices) = 1 * prachSymbols;

hPRACHResourceGridPlothelper函数绘制PRACH资源网格以显示活动PRACH的位置。该图显示了PRACH可以传输的所有时间场合。该图以浅蓝色显示当前载波槽中所有可能的PRACH场合,以及当前PRACH场合(对应于所选的TimeIndex)深蓝色的。对于当前配置中没有被任何PRACH场合使用的OFDM符号,该图为空。如果PRACH序言在当前插槽中不活动,则该区域为空。

hPRACHResourceGridPlot(载体,开环);

图PRACH资源网格包含一个轴对象。标题为PRACH Resource Grid (Size[624 14])的axis对象包含一个image类型的对象。

除以下情况外,PRACH资源网格包含14个OFDM符号:

  • 对于长序文格式0,每个序文有一个活动序列周期,跨越一个子帧。因此,与格式0相关的槽格有一个OFDM符号。

  • 对于长序文格式1,每个序文有两个活动序列周期,跨越两个子帧。因此,与格式1相关的槽格有两个OFDM符号。

  • 对于长序文格式2,每个序文有四个活动序列周期,跨越四个子帧。因此,与格式2相关的槽格有4个OFDM符号。

  • 对于长序文格式3,每个序文有四个活动序列周期,跨越一个子帧。因此,与格式3相关的槽格有4个OFDM符号。

  • 对于短序文格式C0,每个序文有一个活动序列周期。然而,由于保护和循环前缀的存在,序文跨越了两个OFDM符号。因此,与格式C0相关的槽格有7个OFDM符号。

属性的值中检索活动序列周期的个数PRACHDuration属性。

为单个PRACH导言生成波形

通过调制PRACH资源网格,为单个PRACH序文生成时域波形。若要设置要在其上应用OFDM符号的窗口和重叠的时域样本数量,请使用窗口.本例使用默认值作为窗口。有关窗口的详细信息,请参见nrPRACHOFDMModulate

Windowing = [];[prach波形,prachInfo] = nrprachofdm调制(载波,prach,prachGrid,“窗口”,窗口);

输出prachWaveform是一个列向量,对应于时域波形。输出prachInfo是提供与PRACH相关的尺寸信息的结构。属性显示此信息hPRACHInfoDisplayhelper函数。该函数显示与CP、PRACH活动序列周期对应的采样数相关的信息 T 年代 E ,和GP为每个OFDM符号的表格格式。该表列出了所有适合资源网格的OFDM符号。对于短序文格式,用对应除当前以外的所有可能的PRACH场合(在资源网格图中以浅蓝色标记)。对于短序语格式,尖括号内的值表示当前配置中任何PRACH场合不使用的OFDM符号(对应于资源网格图中的时间空白)。

检查与OFDM符号相关的信息PRACHDurationSymbolLocation,NumTimeOccasions属性。这些性质表明:

  • 每个PRACH事件持续4个OFDM符号

  • 当前的PRACH事件从OFDM符号8开始

  • 3 PRACH场合可能及时

hPRACHInfoDisplay(载体、开环、窗口);
信息与开环:SubcarrierSpacing: 15 kHz的副载波数量:624与开环OFDM调制相关信息:Nfft: 1024窗口:72抵消:0样本TCP TSEQ GP象征  ------ ------ ------ ----- 0 * 296 * 1024 * 0 0 * 1024 * 1 * * * 2 * 0 * 1024 * 0 0 * 1024 * 3 * * * 4 * 296 * 1024 * 0 0 * 1024 * 5 * * * 6 * 0 * 1024 * 0 * 7 * 0 0 8 * 180 * 1024 * 1024 0 9 0 0 1024 108 1024 0 10 0 1024 0 11 12 > < < 0 > < 1024 > < 0 > < 13 > < 0 > < 1024 > < 0 > *:<#>:当前配置中未被任何PRACH时间场合使用的OFDM符号总采样:15360采样率:15.360 MHz持续时间:1.000 ms总子帧数:1

总结与进一步探索

本示例展示如何配置PRACH,根据所选格式设置配置索引,以及确定PRACH前导在当前时间资源中是否处于活动状态。本例指导您完成PRACH资源网格和时域波形生成。绘制PRACH序言的时域结构,在一个子帧内显示所选配置的所有可用的PRACH场合。绘制资源网格在时域和频域显示所选配置的所有可用的PRACH场合。

这个例子展示了如何为一个单独的PRACH序文生成一个波形。有关为多个PRACH序文生成波形的示例,请参见5G NR PRACH波形生成

附录

下面的例子使用了这些helper函数:

选定的参考书目

  1. 3gpp ts 38.211。“NR;物理通道和调制。”第三代伙伴计划;技术规范集团无线接入网

  2. 3gpp ts 38.331。“NR;无线电资源控制;协议规范。”第三代伙伴计划;技术规范集团无线接入网

另请参阅

功能

对象

相关的话题