5G NR 随机接入RACH流程(3)-- Msg1之选择正确的PRACH时频资源
上一篇文章讨论了如何生成64个PRACH preamble,本文接着回答上一篇文章中的另一个问题“如何选择正确的PRACH时频资源去发送所选的preamble”。
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的那张表,这张表里都有什么呢?
- 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,这两项是有值的。(不要急,看完下面的计算过程,也许你就能悟出点什么~~)
prach-ConfigurationIndex | format | 长 or 短 | SFN | SubFrame |
---|---|---|---|---|
2 | 0 | 长, L=839 | 每4帧1,5,9,13….. | 9 |
202 | C2 | 短,L=139 | 每帧 | 9 |
通过查表可以得出以上信息,但是目前时域信息只能精确到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=<n<=N-1)对应的preamble index 从n*N_total_preamble/N开始。说的比较抽象,看两个例子吧。
- 例子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升序映射
笔者在微信公众号GiveMe5G定期发布学习文章,发布周期原则为一周,欢迎订阅和分享
文章主要用于记叙和讨论对3GPP协议的学习和理解,欢迎留言讨论,谢谢!
5G NR 随机接入RACH流程(3)-- Msg1之选择正确的PRACH时频资源相关推荐
- 5G NR 随机接入RACH流程(2)-- Msg1之生成PRACH Preamble
笔者在微信公众号GiveMe5G定期发布学习文章(更多更及时),欢迎订阅和分享,文章下方有二维码. 谈论到随机接入流程中的Msg1,即在PRACH信道上发送random access preamble ...
- 5G NR 随机接入RACH流程(1)-- 概述
本人微信公众号GiveMe5G,欢迎订阅交流讨论! 终端成功解出SSB后便获得了NR系统的下行同步,要想完成上行同步以并与NR网络建立RRC连接,那么随机接入RACH流程必不可少. 随机接入的触发原因 ...
- 5G NR 随机接入RACH流程(4)-- Msg1发送时RA-RNTI的计算及功率控制
笔者在微信公众号GiveMe5G定期发布学习文章(更多更及时),欢迎订阅和分享,文章下方有二维码. 前面两篇文章介绍了Msg1的两个重要问题,如何产生PRACH preamble和如何选择合适的时频资 ...
- 5G NR 随机接入RACH流程(6)-- Msg3/4与Contention Resolution
笔者在微信公众号GiveMe5G定期发布学习文章(更多更及时),欢迎订阅和分享,文章下方有二维码. Msg3和Msg4主要用于竞争解决(Contention Resolution).随机接入过程的前两 ...
- 5G NR 随机接入RACH流程(7)--分类和重要RACH流程总结
笔者在微信公众号GiveMe5G定期发布学习文章(更多更及时),欢迎订阅和分享,文章下方有二维码. 前面几篇文章逐一讨论了随机接入流程中的Msg1/2/3/4,那么这些消息是如何组合起来应用到实际当中 ...
- 5G NR 随机接入RACH流程(5)-- Msg2
笔者在微信公众号GiveMe5G定期发布学习文章(更多更及时),欢迎订阅和分享,文章下方有二维码. 终端向基站发送了Msg1,很自然期望得到基站的Msg2(RAR)响应.本文主要针对Msg2讲两个重要 ...
- LTE随机接入RACH流程preamble发送
首先对于TDD与FDD模式,随机接入处理流程一致.参考36.300 10.1.5触发随机接入的场景有如下六种: 1.ue由RRC_IDLE态发起初始接入流程 2.RRC Connection Re-e ...
- 5G NR CSI-RS介绍(1)-- 物理时频资源映射
笔者在微信公众号GiveMe5G定期发布学习文章(更多更及时),欢迎订阅和分享,文章下方有二维码. CSI-RS是5G NR系统中非常重要的一种参考信号,我会写几篇文章介绍其相关内容.本文重点讲讲它的 ...
- 5G/NR 随机接入过程学习总结
对于随机接入过程,NR与LTE之间有相同点,也有不同点,其最大的区别在于触发场景已经Msg1的处理,详情见下文. 查看全文 http://www.taodudu.cc/news/show-309273 ...
最新文章
- arm服务器获取文件路径中文,ssh 访问远程服务器文件路径
- Linux: 系统配置 crond 和 crontab(有图有代码有真相!!!)
- 程序媛计划——python数据库
- js判断ipad还是安卓_JS判断客户端是否是iOS或者Android
- python安装jupyterlab_超级详细 centos7 安装 jupyter lab
- 快速排序思路(前后指针版),代码实现
- CAN笔记(16) CANOpen简介
- 哪些专业是毕业即失业?
- 易筋SpringBoot 2.1 | 第十七篇:SpringBoot的事务Transaction
- gephi java教程_简明gephi指导教程.pdf
- 基于Python获取一些打印机简单信息
- html中body写什么,HTML中body内常用标签
- 私钥、证书、USBKey
- 【git】git+码云上传代码
- 【Virtual Box 错误】0x00000000 指令引用的 0x00000000 内存。该内存不能为written
- php多域名跳转,旱的旱死,涝的涝死,中超联赛的怪事
- poj 1177 线段树+离散化+扫描线 求矩形并的轮廓长
- Unity之EditorUtility-ProgressBar进度条-一
- CSAPP 第三版 第十章 家庭作业and so on
- AE开发 遇到未能加载文件或程序集的问题 FileNotFoundException
热门文章
- linux系统浏览器无声音,在Deepin 20系统中外接显示器切换后浏览器没有声音的解决经历...
- ACM-ICPC 2018 南京赛区网络预赛 E. AC Challenge(状压dp)
- 《Gans in Action》第三章 用GAN生成手写数字
- ex计算机绘图基础教程怎么画图,cad制图速度小技巧,求习惯性的。实际操作的,快捷键 要最有配合价值的!感谢同仁。。。...
- 讨论OOV(新词,也叫未登录词,词典之外的词语)问题的解决方案
- 【笔记】Polygon mesh processing 学习笔记(7)
- 12、FPGA程序的固化和下载
- android 实现控件搜索折叠效果 Animation动画折叠和普通折叠
- 戴尔笔记本连接无线网络不能上网的解决方法
- cydia java_使用Cydia Substrate Hook Android Java世界