长话短说,直接开始正题。
Zaddof-Chu序列
因为具有良好的自相关性和互相关性,恒幅低峰均比等特性,使用Zaddof-Chu序列作为PRACH 信道的上行同步序列
在PRACH 信道上发送ZC 序列,也称为PRACH Preamble,前导码。
支持两种长度的ZC 序列,根据根索引序列,通过循环移位生产多个序列
LTE Nzc=839/139
NR中更名为Lra =839/139
PRACH preamble 的相关内容主要集中在38.211
RA sequence
LRA=839 :u有838个(38.211 Table6.3.3.1-3 ),序列长度是839,其实最终就是用838个长度为839的ZC序列去生成 Preamble,LRA=139 也是类似的情况。
序列的长短主要由PRACH preamble format决定,而基站通过是通过RRC参数PRACH Configuration Index告知UE使用的Preamble format。
如何确认LRA?
1 以初始RA 为例,SIB1 中带band信息 ,显示驻留的band 是N78 是TDD band,应该查6.3.3.2-3。为什么NR SIB1 带band信息?因为不同的band 会有频率上的重叠,单纯通过频率无法确定到底是哪个band,所以SIB1 中会带band 信息。;例如下图中N5 和N26 ,可以看到频率是重叠的,为了避免band混淆的情况,在NR SIB1 会指示所在Band信息。
2 SIB1中会配置RACH 参数,其中prach-ConfigurationIndex 17 通过查表确定 应该用preamble format 0发送 进而LRA 是839
PRACH Preamble
1 限制级主要考虑的是移动速度。针对不同的速度设置不同的限制级。非限制级正常速度 限制级A 对应350km/h左右,限制级B 500 km/h左右
2 当Ncs =0时,就是不循环移位,按规定一个小区需要64个preamble,如果不循环移位,那 839/64 =13 只能用于13个小区,接下来有第14个小区的话,就要复用preamble 就会有干扰。实网中 看到Ncs 配置的都不是0 ,考虑的可能就是上述情况
3 PRACH occasion 需要64个preambles. 如果一个根索引生产的preamble 小于64个,则用下一个根索引继续生成,直到达到64个为止。在UE静止或低速移动场景下,不考虑多普勒频移时,循环移位的使用没有限制。UE 根据小区下发的高层参数zeroCorrelationZoneConfig,即Ncs计算循环移位,代入公式得到一共64个随机接入preamble。zeroCorrelationZoneConfig 和Ncs的关系 有几张表 38.211 6.3.3.1-5~
6.3.3.1-7 主要与的取值相关。
在UE 高速移动场景下,由于多普勒频移效应,频偏会导致基站在检测PRACH 信道 时域上出现额外的相关峰。伪相关峰会影响基站对PRACH 的检测,因此在UE 高速移动场景下,针对不同的根索引序列,要限制使用某些循环移位,来规避这个问题。因此PRACH 的循环移位,支持限制集配置。配置限制集后,在循环移位集合的计算上,会变得复杂一些。NR 限制集B可以支持更高速度移动场景,所能支持的循环移位个数更少。
继续上面的例子
确定要用preamble format 0发送 LRA 是839,同一张表可以确定的值,delta f_RA对应的是1.25khz。zeroCorrelationZoneConfig =3 ,restrictedSetConfig unrestrictedSet 进而可以确定 Ncs =18
对于一个根序列,经过循环移位后生成的Preamble个数为 LRA/Ncs 向下取整;如果小于64 时,根据根索引序号+1 后,继续通过循环移位生产preamble,直到满足64个preamble.
当循环移位配置为0时,直接通过根索引递增的方式,生成64个Preamble。
prach-RootSequenceIndex 根据R15 38.331 有两种取值范围 1839 对应的取值范围是[0,837] 1139 对应的取值范围是[0,137] 查表 对应的是38.211 6.3.3.1-3(LRA=837) 和6.3.3.2-4(LRA=137)
此例中 prach-RootSequenceIndex 1839 : 0, 对应0 。u=129 从129开始算,不够64再用下一个 u=710
如果prach-rootsequenceindex =1 u=710则是先 从710开始算,710不足以生成64个preamble,则按顺序再取下一个u=140,继续生成preamble 序列....
根据现有参数Lra/Ncs=839/18=46 小于 64 ,所以用u=129 按照公式 产生46 个preamble 序列后,再按u=710 再生成 18 个preamble。
46+18=64
Ncs =18
v=0,1....45
Cv=0,18,36,54.......
Xu,v(n) =Xu((n+Cv)mod LRA)
X129,0=X129(n)
.......
X129,45 只生成了46个序列 还要用下一个u继续生成18个序列
X710,0(n)
.....
X710,17(n) u=710 生成18个序列 46+18 =64 个序列。
至此preamble 生成完毕。
从日志中也可以看到Msg1的相关参数 与上面的一致。微信同步更新欢迎关注同名“modem协议笔记”。