此示例显示了如何配置TS 38.211第5.3.2和6.3.3节中定义的5G新无线电(NR)物理随机接入信道(PRACH)[1.].您可以了解PRACH时间资源、它们与PRACH序言的关系,以及如何在不需要查找配置表的情况下生成PRACH序言。这个示例还展示了如何将PRACH符号映射到资源网格,以及如何为单个PRACH序言生成时域波形。
表6.3.3.2-1列出了初始接入时PRACH和PUSCH (physical金宝app uplink shared channel)支持的子载波间距组合。您可以直接从PRACH配置对象访问该表。
disp(nrPRACHConfig.Tables.金宝appSupportedSCS组合)
研究者们将这些研究者作为研究者,研究者们将这些研究者作为研究者,研究者们将这些研究者作为研究者,研究者们将这些研究者作为研究者,研究者将这些研究者作为研究者将研究者作为研究者将研究者作为研究者,研究者将研究者作为研究者,研究者将研究者作为研究者,研究者将研究者们们将在UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU10 839 5 60 6 7 139 15 12 2 139 15 30 6 2 139 15 60 3 2 139 30 15 24 2 139 30 12 139 30 60 6 2 139 60 12 139 60 120 6 2139 120 60 24 2 139 120 120 12 2 571 30 15 96 2 571 30 30 48 2 571 30 60 24 2 1151 15 15 96 1 1151 15 30 48 1 1151 15 60 24 1
系统信息块1(SIB1)包含无线资源控制(RRC)信息元素UplinkConfigCommonSIB(TS 38.331第6.3.2节[2.)来定义PUSCH的子载波间距。用户设备(UE)在随机访问过程中需要该信息来传输PRACH序言。
由于PUSCH在PRACH前序传输时没有定义,要配置PUSCH子载波间距和资源网格的频域维数,请使用nrCarrierConfig
对象
载体= nrCarrierConfig;母舰。subcarrierSpacing = 15;%以kHz为单位的子载波间距(15、30、60、120)
因为PRACH前导是相对于载波进行调制的,改变载波副载波间距会导致不同的PRACH波形。要查看不同的载波如何影响产生的波形,请检查与PRACH-OFDM调制相关的信息
输出为几个载波在单PRACH序言的波形生成第节。
可以通过设置属性值来配置PRACH参数nrPRACHConfig
对象根据TS 38.211,并非所有PRACH参数组合都有效。有关如何设置的属性的详细信息nrPRACHConfig
反映这些限制,请参阅nrPRACHConfig
.
开环= nrPRACHConfig;开环。FrequencyRange =“FR1”;%频率范围('FR1', 'FR2')双工模式=“FDD”;%双工模式('FDD', 'TDD', 'SUL')开环。CoNfigurationIndex = 27;配置索引(0…255)。下一节将自动更新此值。开环。subcarrierSpacing = 15;%子载波间距在kHz (1.25, 5, 15, 30, 60, 120)开环。sequenceIndex = 0;%逻辑根序列索引(0…837)开环。PreambleIndex = 0;%单元格内的标量序言索引(0…63)prach限制集=“无限制设置”;%限制集类型('UnrestrictedSet',' restricted settypea ',' restricted settypeb ')prach.ZeroCorrelationZone=0;%循环移位配置索引(0…15)开环。RBOffset = 0;%初始上行带宽部分(BWP)相对于运营商资源网格的启动资源块索引(0…274)开环。FrequencyStart = 0;%初始上行BWP的物理资源块0在频域中最低PRACH传输次数的频偏(0…274)开环。FrequencyIndex = 0;PRACH在频域传播场合的%指数(0…7)开环。TimeIndex = 0;PRACH传输场合在时域的指数(0…6)%对于格式B2和B3,该值将在下一节中自动更新。prach.ActivePRACHSlot=0;%子帧或60 kHz时隙内的活动PRACH时隙号(0,1)prach.nprachlot=0;% PRACH槽位号
的值也可以修改prach.LRA
使用3GPP规范第16版中引入的PRACH前导序列长度的值。
这个ConfigurationIndex
和时间索引
属性取决于PRACH格式。这个SubcarrierSpacing
,ActivePRACHSlot
,及NPRACHSlot
属性确定PRACH前导是否处于活动状态。接下来的两部分将讨论如何设置这些属性。
ConfigurationIndex
基于首选格式TS 38.211中的表6.3.3.2-2至6.3.3.2-4定义了时域内所有可能的PRACH配置。频率范围和双工模式的组合指定使用哪个配置表。有效的组合是:
FR1和FDD (paired spectrum):表6.3.3.2-2
FR1和SUL(补充上行链路):表6.3.3.2-2
FR1和TDD (unpaired spectrum):表6.3.3.2-3
FR2和TDD(未配对光谱):表6.3.3.2-4
有关成对和非成对频谱如何与双工模式相关的更多信息,请参阅字段FDD-OrSULRRC信息元素的定义频率信息TS 38.331第6.3.2节。
属性可以访问这些配置表表
财产nrPRACHConfig
对象例如:
nrPRACHConfig.Tables.ConfigurationsFR1PairedSUL%TS 38.211表6.3.3.2-2nrPRACHConfig.Tables.configurationsfr1未配对%TS 38.211表6.3.3.2-3nrPRACHConfig.Tables.ConfigurationsFR2%TS 38.211表6.3.3.2-4
TS 38.211定义了13种PRACH格式,并将它们分类为长序言或短序言。长序言有一个长度序列 ,而短序言则有一定的长度 .与长序言相关的格式是: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中的配置索引定义了每个前导格式可以传输的时间资源。每个前导格式都与多个配置索引关联。您可以通过设置ConfigurationIndex
基于首选格式。此值对应于可以传输首选前导格式的最大时间资源范围。
格式=“B2”;%PRACH前导码格式('0','1','2','3','A1','A2','A3','B1','B2','B3','B4','C0','C2'))
选择配置表频响
和双工模式
.
如果strcmpi(开环。频响,“FR1”)如果strcmpi(prach.DuplexMode,“TDD”)%TS 38.211表6.3.3.2-3configTable=nrPRACHConfig.Tables.configurationsfr1未配对;其他的%TS 38.211表6.3.3.2-2configTable = nrPRACHConfig.Tables.ConfigurationsFR1PairedSUL;结束其他的%TS 38.211表6.3.3.2-4configTable=nrPRACHConfig.Tables.ConfigurationsFR2;结束
在表6.3.3.2中相同短序言格式对应的所有配置中,倒数第二个配置用于传输PRACH序言的时间资源最多。在所有其他情况下,包括表6.3.3.2中的混合格式,最后一个配置用于传输PRACH序言的时间资源数量最大。属性的值ConfigurationIndex
属性。如果选择格式B2或B3,此示例将设置时间索引
.
如果strcmpi(开环。频响,“FR1”)&strcmpi(prach.DuplexMode,“FDD”) &&...任何(strcmpi(格式,{“A1”,“A2”,“A3”,“B1”,“B4”,‘C0’,“C2”}))开环。CoNfigurationIndex = find(strcmpi(configTable.PreambleFormat,format),1,“最后”) - 2;其他的如果~任何(strcmpi(格式,{“B2”,“B3”}))开环。CoNfigurationIndex = find(strcmpi(configTable.PreambleFormat,format),1,“最后”) - 1;其他的格式B2和B3只出现在混合格式,所以选择%适当的混合格式并设置TimeIndex的最大值prach.ConfigurationIndex=find(endsWith(configTable.PreambleFormat,format),1,“最后”) - 1;开环。TimeIndex = prach.NumTimeOccasions - 1;结束结束
SubcarrierSpacing
,ActivePRACHSlot
,及NPRACHSlot
生成主动PRACH序言TS 38.211中的表6.3.3.2-2到6.3.3.2-4描述了哪个PRACH槽对应一个活动的PRACH序言。这些表的第三和第四列表示对应于一个活动PRACH序言的系统框架编号。根据选择的频率范围,FR1或FR2,第五列分别表示15khz或60khz子载波间距的槽号,对应一个有源PRACH序言。如果PRACH序言在当前时间资源中不活跃,则不会发生时间传输。
例如,如果PRACH子载波间距设置为15khz,则所选PRACH配置在任何系统帧和子帧中都是激活的,如表6.3.3.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
的输出恩普拉赫
函数。如果PRACH前导在当前插槽中不活动,则此输出为空。要生成活动的PRACH前导,请遍历NPRACHSlot
财产直至prachSymbols
非空的。
本节介绍的案例说明了如何检查当前PRACH短前导码是否处于活动状态。这两种情况都考虑了PRACH短前导格式B2。如果更改格式,PRACH前导可能会对NPRACHSlot
和ActivePRACHSlot
与本示例中显示的属性不同的属性。
情况1:典型的PRACH子载波间隔配置
用典型的子载波间距配置为所选格式设置PRACH序言。本例考虑15khz子载波间距,这是FR1中短序言的典型值。如果更改子载波间距或格式的值,则可能需要更改ActivePRACHSlot
和NPRACHSlot
要获得活动的PRACH插槽。
%存储用户定义的配置子载波间隔=prach.subcarrierSpacing;activePRACHSlot=prach.activePRACHSlot;nPRACHSlot=prach.nPRACHSlot;%设置SubcarrierSpacing、ActivePRACHSlot和NPRACHSlot的值%的情况如果任何(strcmpi(格式,{'0','1','2'}))prach.SubcarrierSpacing=1.25;elseifstrcmpi(格式,'3')prach.SubcarrierSpacing=5;其他的%简短的前言如果strcmpi(开环。频响,“FR1”)开环。subcarrierSpacing = 15;%有效值为(15,30)其他的%FR2prach.SubcarrierSpacing=60;%有效值为(60、120)结束结束prach.ActivePRACHSlot=0;prach.nprachlot=0;
根据TS 38.211中的表6.3.3.2,UE可以在任何槽中传输PRACH。
prachSymbols = nrPRACH(载体、开环);积极= ~ isempty (prachSymbols);disp (['活动:'num2str(积极)))
活动:1
情况2:备选PRACH子载波间隔配置
PRACH子载波间距设置为30khz, carrier子载波间距设置为默认值15khz。这意味着每个载波槽包含两个PRACH槽。这种情况下不考虑PRACH长序言和频率范围FR2,因为它们不兼容30 kHz的子载波间距。
在30 kHz PRACH子载波间距的情况下,在15 kHz子载波间距的两个PRACH槽中只有一个是活跃的。根据TS 38.211中的表6.3.3.2,对于PRACH序言格式B2,可以激活第一个或第二个PRACH槽。的价值开环。A.ctivePRACHSlot
属性定义当前载波子帧中哪个PRACH槽是活动的。这个属性是
TS 38.211第5.3.2节中定义的参数。
本例显示了NPRACHSlot
和ActivePRACHSlot
属性值并测试PRACH前导是否处于活动状态。本例显示了两种组合的PRACH前导的时域结构图。该图显示,当ActivePRACHSlot
是0
时,占用载波槽位的后半部分ActivePRACHSlot
是1.
。有关此绘图的详细信息,请参阅绘制所选PRACH前导码的时域结构部分。
如果~任何(strcmpi(格式,{'0','1','2','3'}))&strcmpi(实际频率范围,“FR1”)%短序言格式和FR1仅%设置子载波间距为30 kHz开环。subcarrierSpacing = 30;%定义所有NPRACHSlot和ActivePRACHSlot的组合来检查nPRACHSlotCase2 = [0, 1, 2];activePRACHSlotCase2 =[0,1]; / /激活prachslotcase2[NPRACHSlotCase2, ActivePRACHSlotCase2] = meshgrid(NPRACHSlotCase2, ActivePRACHSlotCase2);prachActivityTable =表(NPRACHSlotCase2 (:), ActivePRACHSlotCase2(:),假*的(元素个数(NPRACHSlotCase2), 1),...“VariableNames”,{“NPRACHSlot”,“活性普拉斯洛特”,“主动的”});%循环所有组合对于i=1:numel(NPRACHSlotCase2)prach.NPRACHSlot=NPRACHSlotCase2(i);prach.ActivePRACHSlot=ActivePRACHSlotCase2(i);prachSymbols=nrPRACH(carrier,prach);active=~isempty(prachSymbols);%检查PRACH前导码在当前插槽中是否处于活动状态激活(i)=激活;如果活跃的& &开环。NPRACHSlot < 2绘制PRACH序言的时域结构%在前两个槽中激活PRACH序言hPRACHPreamblePlot(载体,开环);结束结束其他的%显示已筛选案例的消息如果任何(strcmpi(格式,{'0','1','2','3'}))disp([“PRACH长前导格式”格式'与30 kHz子载波间隔不兼容。'])其他的%FR2disp (“频率范围FR2不兼容30 kHz的副载波间隔。”)结束结束
对于具有30 kHz子载波间距的短序言格式,该表显示了PRACH序言对于每个选择的值的组合是否有效NPRACHSlot
和ActivePRACHSlot
财产。
如果~任何(strcmpi(格式,{'0','1','2','3'}))&strcmpi(实际频率范围,“FR1”)%短序言格式和FR1仅disp (prachActivityTable)结束
NPRACHSlot活动PrachSlot活动\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0 0 1 0 0 1 1 2 1 0
将PRACH配置对象设置回用户定义的配置
开环。subcarrierSpacing = subcarrierSpacing; prach.ActivePRACHSlot = activePRACHSlot; prach.NPRACHSlot = nPRACHSlot;
PRACH配置对象还具有只读属性,可提供有关当前配置的其他信息:
序言格式:格式
Zadoff-Chu序言序列的长度:上帝抵抗军
允许的最大PRACH时间次数:NumTimeOccasions
PRACH时隙网格中与一个传输场合对应的OFDM符号的数量:PRACHDuration
当前PRACH场合的第一个OFDM符号位置:SymbolLocation
副主任(普拉赫)
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 Constant properties: Tables: [1x1 struct]
此图以浅色显示了所有可能的PRACH场合(在当前载波槽中)和当前PRACH场合(对应于所选时间索引
)深色。此图包含循环前缀(CP)、PRACH活动序列周期和最终保护周期(GP)分别为红色、蓝色和绿色。如果PRACH前导在当前时隙中未激活,则绘图为空。绘图显示所选PRACH配置的时间相关属性和载波时隙中的PRACH位置。如果PRACH子载波间距小于载波子载波间距,则绘图显示最小数量传输PRACH前导码所需的载波时隙数。最后一次PRACH时间并不总是对应于载波时隙的结束。对于当前PRACH配置不允许PRACH传输的时间值,绘图为空。
hPRACHPreamblePlot(载体,开环);
PRACH资源网格在时域和频域上都显示了PRACH前导的位置。使用此资源网格,您可以:
在时域和频域中目视检查PRACH前导
产生PRACH波形,该波形是通过调制资源网格得到的
PRACH资源网格生成包括以下步骤:
生成一个空网格
在PRACH波形中生成要传输的符号
生成PRACH符号所在的频率索引和时间索引
将PRACH符号映射到PRACH资源网格
生成一个空的PRACH资源网格。
prachGrid=nrPRACHGrid(承运人,prach);尺寸(prachGrid)
ans =1×2624 14
生成PRACH符号。符号的数量取决于PRACH配置。这个prachSymbols
如果PRACH前导在当前插槽中未激活,则输出为空。
prachSymbols = nrPRACH(载体、开环);
生成PRACH索引。的每个元素中的值prachIndices
是每个元素位置的线性索引prachSymbols
在PRACH资源网格中。
prachIndices = nrPRACHIndices(载体、开环);
使用索引将PRACH符号映射到PRACH资源网格。代表 在TS 38.211第6.3.3.2节中,映射将比例因子1应用于PRACH符号。
prachGrid(prachIndices)=1*prachSymbols;
这个hPRACHResourceGridPlot
辅助函数绘制PRACH资源网格以显示活动PRACH的位置。图中显示了PRACH可以被传输的所有时间场合。图中显示了当前载波槽中所有可能的PRACH场合(浅蓝色)和当前PRACH场合(对应于所选时间索引
)深蓝色的。对于当前配置中未被任何PRACH场合使用的OFDM符号,图中为空。如果PRACH序言在当前槽位不活跃,则plot为空。
HPR网格图(载体,prach);
PRACH资源网格包含14个OFDM符号,除了以下情况:
对于长前导码格式0,每个前导码具有跨越一个子帧的一个活动序列周期。因此,与格式0相关的时隙网格具有一个OFDM符号。
对于长前导码格式1,每个前导码具有跨越两个子帧的两个活动序列周期。因此,与格式1相关的时隙网格具有两个OFDM符号。
对于长序言格式2,每个序言有四个活动序列周期,跨越四个子帧。因此,与格式2相关的槽网格有四个OFDM符号。
对于长序言格式3,每个序言有四个活动序列周期,跨越一个子帧。因此,与格式3相关的槽网格有四个OFDM符号。
对于短前导码格式C0,每个前导码具有一个活动序列周期。然而,由于保护和循环前缀,前导码跨越两个OFDM符号。因此,与格式C0相关的时隙网格具有七个OFDM符号。
您可以从PRACHDuration
PRACH配置对象的。
通过调制PRACH资源网格,为单个PRACH前导生成时域波形。要设置应用OFDM符号加窗和重叠的时域采样数,请使用窗口
.这个例子使用默认的窗口值。有关窗口的详细信息,请参见NRPRachofdmodulate
.
窗口= [];[prachWaveform, prachInfo] = nrPRACHOFDMModulate (prachGrid载体,开环,“窗口”,开窗);
输出prachWaveform
为时域波形对应的列向量。输出普拉钦福
是提供与PRACH相关的维度信息的结构。这个例子通过使用hPRACHInfoDisplay
helper函数。显示与CP、PRACH活性序列周期对应的样本数量相关的信息
,和GP。该表列出了适合资源网格的所有OFDM符号。对于短前导码格式,用*
对应于所有可能的PRACH场合,除了当前(在资源网格图中标记为浅蓝色)。对于短序言格式,尖括号内的值表示当前配置中没有任何PRACH场合使用的OFDM符号(对应于资源网格图中的时间空白)。
检查与OFDM符号相关的信息PRACHDuration
,SymbolLocation
,及NumTimeOccasions
属性。这些属性显示:
每个PRACH场合持续4个符号
当前PRACH时机从OFDM符号8开始
3 . PRACH场合是可以及时的
hPRACHInfoDisplay(载体、开环、窗口);
与PRACH相关的信息:子载波间隔:15 kHz子载波数:624与PRACH OFDM调制相关的信息:Nfft:1024加窗:72偏移量:0个样本符号TCP TSEQ GP---------------0*296*1024*0*1*0*1024*0*2*0*1024*0*3*0*1024*0*4*296*1024*0*5*0*0*0*6*0*1024*0*7*0*1024*0*8 180 1024 0 9 0 1024 0 10 0 1024 0 11 0 1024 108<12><0><13><0><1024><0>*:用于未使用的PRACH时间场合的OFDM符号<#>:任何PRACH时间场合未用于当前配置的OFDM符号总采样数:15360采样率:15.360 MHz持续时间:1.000毫秒子帧总数:1
这个示例演示了如何配置PRACH,根据所选格式设置配置索引,以及确定当前时间资源中的PRACH序言是否处于活动状态。这个例子指导您通过PRACH资源网格和时域波形生成。绘制PRACH序言的时域结构,显示在一个子帧内所选配置的所有可用PRACH场合。绘制资源网格将在时域和频域显示所选配置的所有可用PRACH场合。
这个例子展示了如何为一个PRACH序言生成一个波形。为多个PRACH序言生成波形的示例,请参见5G NR PRACH波形生成.
此示例使用以下帮助器函数:
3 gpp TS 38.211。“NR;物理通道和调制。”第三代合作伙伴项目;技术规范无线电接入网.
3GPP TS 38.331.“NR;无线资源控制(RRC);协议规范。”第三代合作伙伴项目;技术规范无线电接入网.