当前位置: 首页 > news >正文

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=<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升序映射

相关文章:

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

PRACH的时域资源是如何确定的 PRACH的时域资源主要由参数“prach-ConfigurationIndex”决定。拿着这个参数的取值去协议38211查表6.3.3.2-2/3/4&#xff0c;需要注意根据实际情况在这三张表中进行选择&#xff1a; FR1 FDD/SULFR1 TDDFR2 TDD Random access preambles can onl…...

在vue3项目中编辑的时候,解决对话框里边的数据和列表中的数据联动了。深复制

//分析原因是从列表中拿到的数据直接复制去修改就涉及到堆里变的内容是一样的&#xff0c;直接复制其实只是把引用地址赋值给变量了&#xff0c;解决方法是 浅复制和深复制。<!-- 审批流程管理 --> <template><div style"float: left; width: 250px;backgr…...

循环结构(个人学习笔记黑马学习)

while循环语句 在屏幕中打印0~9这十个数字 #include <iostream> using namespace std;int main() {int i 0;while (i < 10) {cout << i << endl;i;}system("pause");return 0; } 练习案例: 猜数字 案例描述:系统随机生成一个1到100之间的数字&…...

ceph中PGLog处理流程

正文 struct pg_log_entry_t {ObjectModDesc mod_desc; //用于保存本地回滚的一些信息&#xff0c;用于EC模式下的回滚操作bufferlist snaps; //克隆操作&#xff0c;用于记录当前对象的snap列表hobject_t soid; …...

macOS使用命令行连接Oracle(SQL*Plus)

Author: histonevonzohomail.com Date: 2023/08/25 文章目录 SQL\*Plus安装下载环境配置 SQL\*Plus远程连接数据库参考文献 原文地址&#xff1a;https://histonevon.top/archives/oracle-mac-sqlplus数据库安装&#xff1a;Docker安装Oracle数据库 (histonevon.top) SQL*Plus…...

Mac下使用Homebrew安装MySQL5.7

Mac下使用Homebrew安装MySQL5.7 1. 安装Homebrew & Oh-My-Zsh2. 查询软件信息3. 执行安装命令4. 开机启动5. 服务状态查询6. 初始化配置7. 登录测试7.1 终端登录7.2 客户端登录 参考 1. 安装Homebrew & Oh-My-Zsh mac下如何安装homebrew MacOS安装Homebrew与Oh-My-Zsh…...

centos安装Nginx配置Nginx

1. 查看操作系统有没有安装Nginx which nginx 2. 使用epel的方式进行安装&#xff08;方法二&#xff09; 先安装epel sudo yum install yum-utils 安装完成后&#xff0c;查看安装的epel包即可 sudo yum install epel 3 开始安装nginx 上面的两个方法不管选择哪个&…...

Linux环境下搭建使用缓存中间件Redis

缓存中间件Redis搭建与使用 前言正文1 提供安装环境2 下载安装3 修改启动配置4 启动服务5 使用6 关闭服务7 卸载 前言 redis服务将在linux系统中部署&#xff0c;本文前提是已经搭建一个linux系统&#xff0c;并配置好网络等。使用vmware搭建一个linux系统&#xff0c;可以参考…...

Oracle 本地客户端连接远程 Oracle 服务端并使用 c# 连接测试

这里写自定义目录标题 前言Oracle 客户端安装先决条件下载 Oracle 客户端Oracle 客户端环境变量配置 PL/SQLPL/SQL 下载PL/SQL 配置 配置远程连接tnsnames.ora 文件配置 使用 PL/SQL 连接远程数据库使用 C# 远程访问 Oracle 数据库结语 前言 最近有一个需要使用本地的 Oracle …...

java中上传文件先下载到本地再上传还有就是直接通过文件流url地址进行上传优缺点?

在Java中上传文件到SFTP服务器时&#xff0c;有两种常见的方法&#xff1a;先下载到本地再上传和直接使用文件流URL地址进行上传。每种方法都有其优点和缺点&#xff0c;下面是对它们的简要比较&#xff1a; 先下载到本地再上传&#xff1a; 优点&#xff1a; 可以在本地对文件…...

华为复合vlan(mux vlan)

一、概念&#xff1a; Multiplex vlan&#xff1a;实现网络资源控制的的机制。 / Principle vlan&#xff1a;port 可以和mux vlan内所有接口进行通信&#xff0c;限制128个 < /Separate vlan&#xff1a;隔离型从vlan&#xff0c;只能和…...

第62步 深度学习图像识别:多分类建模(Pytorch)

基于WIN10的64位系统演示 一、写在前面 上期我们基于TensorFlow环境做了图像识别的多分类任务建模。 本期以健康组、肺结核组、COVID-19组、细菌性&#xff08;病毒性&#xff09;肺炎组为数据集&#xff0c;基于Pytorch环境&#xff0c;构建SqueezeNet多分类模型&#xff0…...

GPT带我学-设计模式-适配器模式

1 什么是适配器设计模式 适配器设计模式是一种结构性设计模式&#xff0c;用于在不兼容的接口之间进行转换。它允许将一个类的接口转换成客户端所期望的接口。 适配器模式包含以下几个角色&#xff1a; 目标接口&#xff08;Target&#xff09;&#xff1a;定义客户端所期望…...

Pyecharts教程(七):使用pyecharts创建堆叠柱状图的示例

Pyecharts教程(七):使用pyecharts创建堆叠柱状图的示例 作者:安静到无声 个人主页 目录 Pyecharts教程(七):使用pyecharts创建堆叠柱状图的示例完整代码推荐专栏在数据可视化中,柱状图是一种常见的图表类型,它可以清晰地展示各类别之间的比较关系。然而,如果我们想要在同…...

C++中的强制转换的常用类型及应用场景详解

C中的强制转换的常用类型及应用场景详解 文章目录 C中的强制转换的常用类型及应用场景详解一、静态转换&#xff08;static_cast&#xff09;二、动态转换&#xff08;dynamic_cast&#xff09;三、常量转换&#xff08;const_cast&#xff09;四、重新解释转换&#xff08;rei…...

ubuntu调整时区

ubuntu在新装系统的时候&#xff0c;所用的时区不一定是8的时区&#xff0c;需要设置一下&#xff0c;否则执行cron等定时任务的时候&#xff0c;时间就会不对 查看当前系统的时区 date -R tzselect 选择时区&#xff0c;但是没用 ,作用可能就是 选择时区 设置时区&#xff1a;…...

mybatis:动态sql【2】+转义符+缓存

目录 一、动态sql 1.set、if 2.foreach 二、转义符 三、缓存cache 1. 一级缓存 2. 二级缓存 一、动态sql 1.set、if 在update语句中使用set标签&#xff0c;动态更新set后的sql语句&#xff0c;&#xff0c;if作为判断条件。 <update id"updateStuent" pa…...

2021年09月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:抓牛 农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式: 1、从X移动到X-1或X+1,每次移动花费一分钟 2、从X移动到2*X,每次移动花费一分钟 假设牛没有意识到农夫的…...

Ansible学习笔记1

公司的服务器越来越多&#xff0c;维护一些简单的事情都会变得很繁琐。用Shell脚本来管理少量服务器效率还行&#xff0c;服务器多了&#xff0c;Shell脚本无法实现高效率运维。这种情况下&#xff0c;我们需要引入自动化运维工具&#xff0c;对多台服务器实现高效运维。 配置服…...

解决centos离线安装cmake找不到OpenSSL问题

安装方法&#xff1a;见另外一篇文章 https://blog.csdn.net/zhongxj183/article/details/118488629 按照文章下载了离线gcc 和OpenSSL&#xff0c;以及在cmake官网下载了最新版 cmake-3.27.4.tar.gz 顺利安装gcc 和OpenSSL 但执行编译cmake时&#xff0c;报错找不到OpenSSL…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...