• 5G NR:RACH流程 -- Msg1之选择正确的PRACH时频资源


    PRACH的时域资源是如何确定的

            PRACH的时域资源主要由参数“prach-ConfigurationIndex”决定。拿着这个参数的取值去协议38211查表6.3.3.2-2/3/4,需要注意根据实际情况在这三张表中进行选择:

    • FR1 FDD/SUL
    • FR1 TDD
    • FR2 TDD

    Random access preambles can only be transmitted in the time resources given by the higher-layer parameter prach-ConfigurationIndex                                  

                                                                                                                       --摘自38211

            本博客沿用上一篇博客中的例子----2.6GHz/TDD的NR系统,使用prach-ConfigurationIndex参数就去查FR1 TDD的表(38211  6.3.3.2-3),这张表里都有什么呢?

    • preamble的format
    • SFN(nSFN mod x = y,这个公式其实暗含了PRACH的配置周期,周期为x)
    • SubFrame
    • Starting symbol
    • 1个subframe里面有多少个PRACH slot
    • 1个PRACH slot里面有多少个时域的RACH Occasion (RO)
    • PRACH duration

            这些参数里面前三个标红色的没什么异议,对于后面4个标黄色的参数是有说法的,主要体现在不同preamble(839 or 139)长度情况下理解有差异,最明显的比如“1个subframe有多少个PRACH slot”和“一个PRACH slot有多少个PO”这两个参数,看看下面两个例子,对于长preamble format 0这两项无值,而对于短preamble format C2,这两项是有值的。

            通过查表可以得出以上信息,但是目前时域信息只能精确到subframe。究竟在这个subframe的哪个symbol上开始还是个未知数,38211给出了如下计算公式来确定: 

            先计算 l 的取值,会用到上面提到的标黄色的四个参数: (带入公式时,注意长短preamble和PRACH SCS对有些参数的取值有影响)。

    prach-ConfigurationIndex=2:

    prach-ConfigurationIndex=202:

            计算完 l 的取值还没最终结束,真正的时间起点是t_{start}^{RA},还需要注意PRACH的SCS和PUSCH/PDSCH的SCS可能不同,这样会导致计算出来的符号长度不一致。

    •  prach-ConfigurationIndex=2 & PUSCH SCS=30KHz & PRACH SCS=1.25KHz:

    • prach-ConfigurationIndex=202 & PUSCH SCS=30KHz & PRACH SCS=15KHz:

             有了起点,再根据下表计算PRACH的长度:

    综合以上计算,可以知道上面的两个例子对应PRACH时域起点和长度

    至此,如何根据参数配置计算PRACH的时域资源已经解释完毕。

    PRACH的频域资源是如何确定的

            PRACH的频域资源主要由两个参数“msg1-FrequencyStart”和“msg1-FDM”决定。这里面涉及两个问题,PRACH频域资源的起始位置在哪里?以及PRACH频域占多少个RB?

    Random access preambles can only be transmitted in the frequency resources given by the higher-layer parameter msg1-FrequencyStart                                         

                                                                                                                                  --摘自38211

    •  频域的起点:

            msg1-FrequencyStart会告知PRACH资源的起点距离initial BWP或当前active BWP起点的offset,此时你可以得到PRACH资源在BWP的相对位置。如果想知道绝对位置,还需要计算BWP的起点以及一个carrier实际有效使用RB的起点。上图的括号中给出了相应的RRC参数。

    • 频域占多少RB:

            频域一共占多少个RB取决于某一时间点上频域映射了多少个PRACH资源以及每个PRACH资源占多少个RB。频域映射了多少个PRACH资源由参数“msg1-FDM”决定;每个PRACH资源占多少RB可通过查下面这个表格得到。

    正确的PRACH时频资源(PRACH Occasion)是如何选择的

            生成了preamble,也知道了PRACH的时频域资源,是否可以把preamble放在某个PRACH上发出去了呢?还差最关键的一步,确定PRACH与SSB的映射关系。
            5G里面凡事都会涉及到Beam这个概念,RACH流程也不例外。我们已经知道一个5G小区会发射多个SSB,也就是说有很多个下行的beam。终端会monitor和测量这些beam,挑选一个信号最好的SSB或者beam进行驻留。很明显,终端要获得比较好的上下行传输性能,需要与基站建立一个beam pair(发送beam和接收beam)。这里要强调一点,beam是分发送和接收的,并不是只有发送有beam,接收也有。另外,说到发送beam和接收beam,这里要区分上下行。

    • 上行(UE->gNB): beam pair指基站接收beam,终端发送beam
    • 下行(gNB->UE): beam pair指终端接收beam,基站发送beam

            以下面这个图(摘自KeySight的一份报告5G Boot Camp)来说说终端是如何通过初始接入完成与基站之间的beam pair建立过程的。这里面用到一个最关键的原理就是3GPP协议将不同时频域的PRACH资源或不同的preamble与SSB index进行了关联。换句话说,基站通过在不同的时域或频域或检测到的preamble index就能反过来推理出哪个SSB是对当前这个终端的最佳下行beam。

    • 1)小区广播5个SSB
    • 2)终端通过测量发现SSB 2是最好的。对于终端来讲,此时的下行beam pair已经形成(基站发送beam SSB2,终端接收beam),只是基站还不知道这个信息
    • 3)终端根据刚才最佳的SSB2接收beam方向,反过来在这个方向上发送PRACH,根据上面说的PRACH与SSB index的关联关系选择PRACH或preamble资源,这样基站收到PRACH preamble就会根据映射关系,反推出下行SSB 2是最这个终端最好的下行beam,以后的给这个终端的下行传输都在SSB2上做。
    • 4)通过上面三步,终端和基站都知道了自己的最佳发送或者接受beam是什么了

            下面来看看协议上或者参数上是如何控制PRACH资源与SSB的映射关系的。其中一个最为关键的参数为 ssb-perRACH-OccasionAndCB-PreamblesPerSSB。其实可以把这个参数分为两部分来看,一是ssb-perRACH-Occasion,用于表明一个RACH Occasion (RO)对应几个SSB;二是CB-PreamblesPerSSB,每个SSB上映射多少个基于竞争的preamble,注意是 基于竞争的preamble。

            解释下上面这段协议描述:假设一个RO对应N个SSB并且每个SSB在每个RO内对应R个基于竞争的preamble。如果N<1,则意味着1个SSB对应1/N个连续的RO并且每个RO对应R个基于竞争的preamble,preamble index从0开始;如果N>=1,意味着一个RO里面映射了多个SSB并且每个一个RO内的SSB映射R个基于竞争的preamble,对于SSB n (0=

    • 例子1:ssb-perRACH-OccasionAndCB-PreamblesPerSSB four : 13 & msg1-FDM one & ssb-PositionsInBurst mediumBitmap : '11110000'

            这是一个从现网的log摘取的配置,该小区一共发射4个SSB,1个RO对应4个SSB,每个SSB对应13个基于竞争的preamble。基站通过检测到的Preamble index的范围,就可以判断SSB的index,映射关系为{SSB0:0-12,SSB1:16-28,SSB2:32-44,SSB3:48-60},其实从这个结果还可以继续计算出用于基于非竞争的preamble index,就是64个preamble剔除基于竞争的剩下的12个preamble{13-15,29-31,45-47,61-63}

     

    • 例子2:ssb-perRACH-OccasionAndCB-PreamblesPerSSB 1 : 52 & msg1-FDM two & ssb-PositionsInBurst mediumBitmap : '11110000'

            改变一下上面的配置,可以看到在这个例子中一个SSB对应一个RO,每个RO或者SSB使用了全部的52个基于竞争的preamble。这样基站是无法通过preamble index来区分SSB的,只能看不同时频资源的RO来区分。4个SSB分别映射到了4个不同时频资源的RO,从RO0到RO3。

     

    SS/PBCH block indexes provided by ssb-PositionsInBurst in SIB1 or in ServingCellConfigCommon are mapped to valid PRACH occasions in the following order where the parameters are described in [4, TS 38.211].

    First, in increasing order of preamble indexes within a single PRACH occasion
    Second, in increasing order of frequency resource indexes for frequency multiplexed PRACH occasions
    Third, in increasing order of time resource indexes for time multiplexed PRACH occasions within a PRACH slot
    Fourth, in increasing order of indexes for PRACH slots

    根据上述协议描述,SSB和RO的映射遵循以下原则:

    • 首先,在一个RO内按照preamble index的升序映射
    • 其次,按照频域RO升序映射
    • 然后,按照一个PRACH slot内时域RO升序映射
    • 最后,按照PRACH slot升序映射
  • 相关阅读:
    【Vue】改变 vuex 中的 state ,子组件 watch 监听不到对象值变化。
    企业邮箱“成员收发权限”功能详解【如何开通企业邮箱】
    Docker套件之Mysql服务配置
    Vue 2.0 与 Vue 3.0 的主要差异
    麒麟V10系统打包Qt免安装包程序
    CV攻城狮入门VIT(vision transformer)之旅——VIT原理详解篇
    Linux相关命令整理
    Linux(CentOS)安装msf
    【5G MAC】随机接入流程中的 Msg2 (RAR)
    零时科技创始人邓永凯先生受邀对话《公链隐私保护及生态安全》
  • 原文地址:https://blog.csdn.net/hhd1988/article/details/132555839