上一篇讲了PRACH的大小,这一篇来讲PRACH的位置。除了Preamble format,UE需要获知PRACH的位置,才能在合适的“时机”发送Preamble(UE需要知道的事情还有很多,比如说,MSG1的初始发送功率)。以发言为例,如果老王和学生说好,每节课前五分钟可以发言,学生就只能在这个时段请求(举手或报数),否则老王会对请求“视而不见”或“充耳不闻”(我不听我不听我不听…)。
所谓“位置”,看上去是一个词,实际隐含两个信息:一个是基准(baseline),另一个是相对于基准的偏移(offset)。我们往往会忽略基准,因为基准通常是“公认”的,但要准确的描述位置,必须先确定基准。打个比方,“2楼”在深圳和香港是两个意思 —— 因为地面在深圳称为“1楼”,而在香港称为“地下”或“地面”(ground floor,也可理解为“0楼”)。香港的“2楼”实际相当于深圳的“3楼”。那么,在LTE和NR中,时域和频域的基准是什么呢?
在时域上,UE只要参考系统定时(timing)就好。按照粒度由大到小的顺序,时间划分为系统帧(System Frame)、半帧(Half Frame)、子帧(subframe)、时隙(slot)和符号(symbol),并分别进行编号(取值范围取决于参数集)。只要给出对应编号,就可以描述PRACH的起始位置。在频域上,在LTE中,(特定小区)中心频率和系统带宽是固定不变的,可以把系统上行带宽边界作为基准,在NR中,由于引入BWP(Bandwidth Part)概念,可以把上行BWP(初始BWP或激活BWP)边界作为基准。
在“时频平面”上,PRACH是一个“方块” —— 在时域上,宽度为TCP + TSEQ + TGT;在频域上,宽度为144或864个SC。不同PRACH格式(Preamble format)占用资源数量不同,对应方块大小不同,适合布放的位置也不同。这就好像,在飞机舱里安排座位,一般人坐哪儿都行,大胖子(体重300斤)选择则会少一些,比如说,让大胖子坐在靠近过道的位置(过道都堵没了),或是让两个大胖子坐在一起(大概要打架吧),都不太合适。下面我们就来给“胖子们”安排一下座位 —— Welcome Aboard~!
先看LTE。
和TDD相比,FDD简单一些。一方面,FDD上行频段和下行频段是分开的,所有子帧都可以用于发送Preamble,而TDD只能在上行子帧,或特殊子帧的UpPTS发送 —— 在时域上,FDD没有TDD那么多限制;另一方面,TDD一个子帧可以有多个PRACH资源(PRACH的FDM),而FDD只能有一个PRACH资源 —— 在频域上,FDD没有TDD那么多可能性。
在频域上,FDD的PRACH没有FDM,PRACH起始位置只需要一个参数 —— prach Frequency Offset,表示PRACH相对于系统上行带宽边界(下边界)的偏移,单位为RB(PUSCH)。LTE的PRACH占用频宽固定为6RB(PUSCH),prach Frequency Offset取值范围为[ 0 , 上行RB总数 – 6 ](再大就溢出了)。
在时域上,FDD所有子帧都可用于PRACH,但起始位置受限于PRACH格式对应的PRACH占用时长(前面的胖子占用了太多空间)。通过PRACH Configuration Index,基站指示UE使用什么PRACH格式(Preamble format),以及在哪些系统帧(system frame)的哪些子帧(subframe)可以发送Preamble。PRACH Configuration Index和PRACH时域配置的对应关系可从3GPP TS 36.211的表格5.7.1.2获知。表格分为四个部分,分别对应format 0~3,因为FDD不支持format 4。
举个例子,如果PRACH Configuration Index为14,表示使用format 0,可在任意(any)系统帧的任意(any)子帧发送Preamble;如果PRACH Configuration Index为18,表示使用format 1,可在SFN(System Frame Number)为偶数(even)的系统帧的子帧7发送Preamble;如果PRACH Configuration Index为57,表示使用format 3,可在任意(any)系统帧的子帧1、4、7发送Preamble。
由表可见,PRACH Configuration Index为14时,PRACH资源最为“密集”,1个系统帧包含10个PRACH资源(所有子帧),这得益于format 0较为苗条的身材(占用时长为1 ms)。PRACH Configuration Index为57、58或59时,PRACH资源最为“稀疏”,1个系统帧包含3个PRACH资源 —— 基站指示UE使用format 3,而format 3是个“大胖子”(占用时长为3 ms)。
TDD相对复杂一些,需要查的表也多一些。和FDD相似,通过PRACH Configuration Index,基站指示UE使用什么PRACH格式,对应关系可从3GPP TS 36.211的表格5.7.1.3获知。同时,表格还列出了UE在一个系统帧(10 ms)有多少次随机接入的机会(包含PRACH的FDM),用DRA表示(D表示Density)。DRA最小为0.5,最大为6。
和FDD不同的是,TDD一个子帧可能有多个PRACH资源(PRACH既有TDM,也有FDM),包含时域和频域各种可能的“组合”。在TDD中,PRACH资源由四元组描述:(fRA,tRA(0),tRA(1),tRA(2))。第一项(fRA,f表示frequency)指示PRACH的频域位置,后三项(tRA,t表示time)指示PRACH的时域位置。(编辑器不支持上标和下标,标识以图为准)
先看时域。tRA(0)取值范围为0~2,表示包含PRACH资源的系统帧 —— 0:所有帧;1:偶数帧;2:奇数帧;tRA(1)取值范围为0~1,表示包含PRACH资源的半帧 —— 0:前半帧;1:后半帧;tRA(0)表示包含PRACH资源的上行子帧,不过不是子帧号,而是特殊编号 —— 两个连续的downlink-to-uplink switch point之间的上行子帧,从0开始编号(示图为TDD Configuration 1)。另外,format 4只能在UpPTS发送,对应的tRA(2)记为“*”。
举个例子。四元组(0,1,0,2)的后三位为1、0、2,分别表示偶数帧、前半帧、第3个上行子帧;四元组(0,0,1,1)的后三位为0、1、1,分别表示所有帧、后半帧、第2个上行子帧;四元组(0,2,0,*)的后三位为2、0、*,分别表示奇数帧、前半帧、UpPTS。PRACH Configuration Index和PRACH资源的对应关系可从3GPP TS 36.211的表格5.7.1.4获知(表格太长,示图只截取了部分),由表可见,某些PRACH Configuration Index对应多个PRACH资源。
根据上表,也可以推算PRACH Configuration Index对应的DRA。如果忽略PRACH的FDM,由tRA(0)和tRA(1)的取值范围可知,1个半帧最多1个PRACH资源,1个系统帧最多2个PRACH资源,2个系统帧至少1个PRACH资源 —— 由此,DRA最小取值为0.5,最大取值为2。如果考虑PRACH的FDM,从组合的角度看,FDM最大值为6,TDM最大值为2,DRA可以达到6 x 2 = 12,但协议不让FDM和TDM同时达到最大值(注意TDD Configuration),DRA最大取值只能为6。
再看频域。在TDD中,对于Preamble 0~3,PRACH的频域位置由prach Frequency Offset(对应n_RA_PRBoffset)和四元组的fRA共同决定。PRACH资源“对称”分布在上行系统带宽的两头(fRA为0、2、4时靠近低频,fRA为1、3、5时靠近高频),以保证“上行单载波的频域资源连续性”(引用自金辉老师,我理解为给PUSCH留出中间的连续资源)。对于Preamble 4,PRACH的频域位置完全由四元组的fRA决定,nf为系统帧号,NSP为downlink-to-uplink switch point的数量(取决于TDD Configuration)。
再看NR。
在频域上,NR和LTE比较相似,不过,由于引入BWP概念,PRACH频域位置的基准从上行系统带宽边界,变成了上行BWP(初始上行BWP或激活上行BWP)边界。NR的msg1 Frequency Start和LTE的prach Frequency Offset相似,用于指示第一个PRACH资源的起始位置相对“基准”(上行系统带宽边界或上行BWP带宽边界)的偏移。
和LTE-TDD相似,NR支持PRACH的FDM。Msg1 FDM用于指示复用次数,取值为1、2、4、8。如果配置PRACH的FDM,多个PRACH资源在频域上是连续分布的(没有像LTE-TDD那样分散在带宽两头),总占用带宽等于单个PRACH资源占用带宽和msg1 FDM的乘积。和LTE不同的是,NR单个PRACH资源占用带宽和PRACH的SCS相关(LTE中固定为6 RB),具体可参考《NR的随机接入(四)》。
在时域上,通过PRACH Configuration Index,基站指示UE使用什么PRACH格式,以及哪些位置可以发送Preamble。对于长前导码(format 0~3),UE主要需要知道哪些系统帧(system frame)的哪些子帧(subframe)可以发送Preamble(长前导码的起始符号通常为0,少数情况为7)。对于短前导码(formatA1、A2、A3、B1、B2、B3、B4、C0、C2),UE还需要知道哪些时隙(slot)的哪些符号(symbol)可以发送Preamble。
PRACH Configuration Index和时域资源的对应关系,可通过3GPP TS 38.211的三张表格获知:表格6.3.3.2-2对应FR1 FDD / SUL、表格6.3.3.2-3对应FR1 TDD、表格6.3.3.2-4对应FR2 TDD。每张表格都包含256个配置选项(FR2只包含短前导码)。这里先以表格6.3.3.2-2(FR1 FDD / SUL)为例进行说明。
先看长前导码。示图中PRACH Configuration Index为0~27,包含format 0所有可选配置。format 0时长为1个子帧,这里重点关注系统帧和子帧。第三、四、第五列共同决定PRACH资源的密度(注意,FR2第五列为slot number,不是subframe number)。由nSFN mod x = y可知,x还隐含了PRACH的配置周期。
x越大,PRACH资源密度越低。PRACH Configuration Index为0~3时PRACH资源密度最低,每16个系统帧有1个系统帧包含PRACH资源,并且只有1个子帧(1、4、7或9)包含PRACH资源。PRACH Configuration Index为27时PRACH资源密度最高,任意系统帧(x为1,y为0)的任意子帧(0~9)都可以发送Preamble。和LTE(不是any就是even)相比,NR配置要灵活一些。
再看短前导码。
前面提到,由于短前导码的占用时长小于1个子帧,NR引入RACH时隙(PRACH slot)和RACH时机(PRACH Occasion)概念。对于短前导码,1个子帧(或1个时隙)可能包含多个RACH时隙,1个RACH时隙可能包含多个RACH时机,配置表格需要描述这些信息,并给出计算RACH时机发送时刻的参数。这些信息反映在后四列,我们来看一下分别是什么。
示图中PRACH Configuration Index为87~116,包含format A1和format A1/B1所有可选配置。最容易理解的是最后一列:N_RA_dur,表示PRACH占用的符号数量,和PRACH格式对应(有点多余),format A1和B1的N_RA_dur都是2。接着是倒数第二列:N_RA_t,表示1个RACH时隙包含RACH时机的数量。显然,N_RA_t和N_RA_dur是关联的(也有点多余),N_RA_dur越大,N_RA_t就越小。对于format A1,N_RA_t为6,对于format A1/B1,N_RA_t为7。
上一篇提到,如果A格式和B格式(A1/B1、A2/B2或A3/B3)组合使用,RACH时隙的最后一个RACH时机使用B格式(B1、B2或B3),其他RACH时机使用A格式(A1、A2或A3)。format A1/B1和format A1的区别,就是把format A1没有占用的最后两个符号用于format B1,相对应的,N_RA_t也由6变成7。
比较费解的,是倒数第三列:N_RA_slot,表示1个“子帧”(FR1)或1个“60 KHz时隙”(FR2)包含RACH时隙的数量。为了方便理解,我换一种说法 —— N_RA_slot是1个“参考时隙”包含RACH时隙的数量。为了方便RACH时隙编号,协议假定FR1的“参考时隙”SCS为15 KHz(1个子帧正好包含1个时隙),FR2的“参考时隙”SCS为60 KHz —— 注意,“参考时隙”只用于RACH时隙编号,和系统SCS没有关系。
对于短前导码,适用于FR1的preamble SCS有两种:15 KHz和30 KHz,适用于FR2的preamble SCS也有两种:60 KHz和120 KHz。于是,preamble SCS和“参考时隙”SCS的组合只有两种可能:preamble SCS(15 KHz或60 KHz)和“参考时隙”SCS相同,或preamble SCS(30 KHz或120 KHz)是“参考时隙”SCS的两倍。
根据OFDM原理(1个符号时长为基波的1个完整周期),符号时长和SCS大小为反比关系,1个时隙包含14个符号,由此,时隙时长和SCS大小也为反比关系。于是,如果preamble SCS为30 KHz(FR1)或120 KHz(FR2),“参考时隙”可以包含2个RACH时隙,N_RA_slot可以为2或1(只配置1个RACH时隙);如果preamble SCS为15 KHz(FR1)或60 KHz(FR2),“参考时隙”只包含1个RACH时隙,N_RA_slot也只能为1。
最后是倒数第四列:l0,表示第一个RACH时机的起始符号(不一定是0,尽管示例中是0)。由l0、N_RA_slot、N_RA_t和N_RA_dur,UE可以计算出所有RACH时机的起始符号l,公式为l = l0 + n_RA_t x N_RA_dur + 14 x n_RA_slot。注意,大写N表示数量,小写n表示序号。
n_RA_t表示RACH时隙各个RACH时机的序号,取值为0 ~ N_RA_t – 1。n_RA_slot表示RACH时隙的序号,取值取决于N_RA_slot。由上,如果preamble SCS为15 KHz(FR1)或60 KHz(FR2),N_RA_slot为1,n_RA_slot为0;如果preamble SCS为30 KHz(FR1)或120 KHz(FR2):如果N_RA_slot为1(查表),n_RA_slot为1,如果N_RA_slot为1,n_RA_slot为0和1(各算一遍)。
反过来看,长前导码的SCS为1.25 KHz或5 KHz,“参考时隙”(15 KHz SCS)时长比preamble SCS对应时隙的时长短,因而,RACH时隙概念不适用于长前导码。在配置表格中,长前导码的N_RA_slot和N_RA_t都标为“-”。在计算l时,n_RA_slot和n_RA_t取值为0,l只有一个结果,就是l0。
再看一个例子,加深一下印象。示图为表格6.3.3.2-4(FR2 TDD)PRACH Configuration Index = 212的解读 —— PRACH格式为A1/B1,每个系统帧(x为1,y为0)的时隙9、19、29、39包含PRACH资源。1个60 KHz时隙包含2个RACH时隙(N_RA_slot为2),每个RACH时隙包含6个RACH时机(N_RA_t为6),最后1个RACH时机使用B1格式,其他RACH时机使用A1格式,每个RACH时机的占用时长为2个符号(N_RA_dur为2)。第一个RACH时机的起始位置为符号2(l0为2),其他RACH时机的起始位置为符号4、6、8、10、12、16、18、20、22、24、26(从第一个时隙的符号0开始计数)。
最后。
对于TDD,基站通过PRACH Configuration Index配置的RACH时机不一定都是有效的,UE还要结合帧结构进行判断。基站只是告诉UE哪些RACH时机可以用于发送preamble,实际能不能发送要UE自己判断。这就好像交通管制,交管局说你每周一三五可以上路,结果周五赶上马拉松封路,你也只能在家趴着,总不能开出去报复社会吧。
更具体的。如果UE没有收到tdd-UL-DL-Configuration,在满足以下条件时,RACH时机是有效的:UE在RACH时机对应的RACH时隙没有处理SSB,并且RACH时机和前面最近的SSB相隔至少Ngap个符号 —— 如果preamble SCS为1.25 KHz或5 KHz,或preamble format为B4,Ngap为0;如果preamble SCS为15 KHz、30 KHz、60 KHz或120 KHz,Ngap为2。
如果UE收到tdd-UL-DL-Configuration,在满足以下条件之一时,RACH时机是有效的:一、RACH时机在UL符号范围内;二、UE在RACH时机对应的RACH时隙没有处理SSB,并且RACH时机和前面最近的SSB相隔至少Ngap个符号,并且RACH时机和前面最近的DL符号相隔至少Ngap个符号,则RACH时机是有效的。Ngap取值同上。
FDD倒是没有上述限制 —— 不过,无论TDD,还是FDD,即使RACH时机是“有效的”,也不一定是“可用的”。由于波束管理的需要,RACH时机需要和SSB(波束)关联(基站通过RACH时机判断UE选择的SSB波束)。反过来,没有和SSB关联的RACH时机是“不可用的”。RACH时机和SSB如何关联,以后再谈。