5GNR漫谈12:PRACH随机接入信道
先撸一下随机接入发起前的一些前提。终端开机后进行小区搜索,解调SSB获得MIB信息以及系统帧号和帧边界,MIB信息里面包含有8位pdcch-ConfigSIB1指示,告知了SIB1调度信息可能出现的时频资源位置,也即search space和CORESET。UE再根据这个时频资源位置采用SI-RNTI(System Information RNTI)去盲检SIB1的调度信息,获得SIB1的调度指示,即SIB1会出现在哪里,UE需要在哪个地方蹲点把SIB1接收解调。SIB1有个花名叫RMSI(remaining minimum system information ),包含了终端发起初始随机接入前所需要知道的系统信息,它以160ms周期性的承载在PDSCH上发送。SIB1中包含的RACH信息如下所示RACH-CconfigCommon。
在漫谈11中,已经了解了随机接入preamble的数学生成公式,参数多,初次接触,不搞物理算法的小伙伴看着也头痛脑胀,云里雾里,一时半会不知道为啥搞这么复杂。我们把上图中RACH信息红圈圈搞明白就差不多了。
Prach-RootSequenceIndex是小区基站告诉终端,本小区长短preabmle可以采用的根号,即u值。
Msg1-SubcarrierSpaceing告知终端在发起随机接入第一条msg1时所采用的子载波间隔。zeroCorrelationZoneConfig告诉终端对应的限制集和NCS移位数。NCS移位有什么用?无非就是改变ZC序列的相位,相位的旋转表现为时延上的扩展。作用就是同一个根序列可以区分多用户,所以长preamble可以支持多个NCS移位,这个小区也就支持更多的用户,小半径就比短preamble要大了。后面再讲讲怎么接收检测preamble,怎么区分用户。
Prach-ConfiguationIdex告知终端可在哪个时间点发射PRACH,即哪个系统帧,哪个子帧,哪个slot,起始symbol,这个表很长,总共有256个index。
msg1-FDM告知终端,当前时间点发射的频域上有多少个PRACH Occasion;msg1-FrequecnyStart告知终端频域上的起始位置。在漫谈11中说到preamble带宽M(个RBs)和频域RACH occasions(K)确定K*M总的PRACH频域,那么preamble的带宽又从何而来呢?由preamble的长度和子载波间隔共同确定,如何确定?看一下漫谈11中preamble发射处理流程就明白。以PRACH的子载波间隔来统计不直观,以PUSCH的子载波间隔和RB数来做参考就好理解了。比如,长preamble,序列长为839,子载波间隔为1.25kHz,PUSCH子载波间隔为15KHz,那PRACH占用的RB数为839X1.25/15/12=6(RB)。
RACH-CconfigCommon中还包含了基于接收下行信号来估计下行路损而得到的preamble发射功率,以及随后的功率爬坡值。一开始终端不知道离基站远还是近,不知道以多大功率发射上行信号才合适,所以聪明地通过估计下行信号来获得参考。
好了,终端知道用哪些系统参数生成preamble,在哪些时频域地点去发射preamble,也大概知道以多大功率来发射信号了,终端是不是就可以愉快的发射PRACH了呢?且慢,如果这样,那不就是和LTE没有什么多大差别了,体现不出5GNR的先进性。那NR比LTE多了啥比较明显的不同?Massive MIMO。如何在PRACH体现利用Massive MIMO的好处?beam.这不是在小区搜索里通过SSB index已经确定了吗?那是终端确定的下行最合适自己的beam,终端要设法告知基站自己扫到的最合适的beam,如果另外增加别的系统消息来指示,太浪费资源了,因此上行通过想办法早早就让基站接收PRACH时就可以知道终端小区搜索确定的beam Index。这样,SSB和PRACH就勾搭起来了。前面RACH-CconfigCommon有两个信息ssb-perRACH-OccasionAndCB-PreamblePerSSB和msg1-FDM告知了两者之间的关系。我们看到ssb-perRACH-OccasionAndCB-PreamblePerSSB这个参数有分数也有整数,假如其值为N,当N<1, 那么一个SSB Index对应1/N个RACH Occasion,每个RACH Occasion中包含所有的Preamble;当N>1,那么一个PRACH Occasion对应N个SSB Index。RACH Occasion(RO)是一个时频域的概念,SSB和PRACH关联用文字表述太麻烦了,无非就是先频域再时域,一个挤在一起还是多个挤在一起,或者是一个占用多个。 上图才是硬道理。通过这种映射关系,基站在检测到终端发射的preamble,就可以确定哪个beam是最合适终端的。
SSB和prach关联后,可以发起初始随机接入了。Msg1也即preamble的发射,然后基站接收解调,得到终端相对于基站的时间偏移量TA值,然后发送msg2,告知终端收到了发送的preamble以及之后的上行(msg3)需要的时间调整量TA。Msg3和msg4主要是用于解决preamble的碰撞机制,因为有可能会有两个终端在相同的时间,相同的地点发射preamble。终端收到msg4之后,就完成了RRC连接,也即正式完成了注册在案,正式为基站所接纳。
终端在以下场景可以发起随机接入:小区切换的时候对新小区发起随机接入;太长时间没有上行业务而与基站失步需要重新建立上行同步;上行调度申请得不到基站满足时重新发起随机接入申请调度。
至于基站是怎么检测PRACH的,后面我再研究。
喜欢 文章可添加公众号,回复SSB,LDPC可获得代码:
声明:文中部分图片来源于http://www.sharetechnote.com/
本文地址:https://blog.csdn.net/guet208/article/details/109455141