5G NR:RACH流程-- Msg1之生成PRACH Preamble

       随机接入流程中的Msg1,即在PRACH信道上发送random access preamble。涉及到两个问题:

  • 一个是如何产生preamble?
  • 一个是如何选择正确的PRACH时频资源发送所选的preamble? 

一、PRACH Preamble是什么

        PRACH Preamble从数学上来讲是一个长度为L_RA(839或者139)的ZaddOff Chu (ZC)序列 {x(0),x(1),….x(LRA-1)}, 其中x(i)的定义如下。在下面的公式里注意x(i)是用x_u(i)表示的,多了一个下标u,这个u是用来表示这个ZC序列是根据root sequence number u 生成的。

        众所周知,终端要根据配置参数生成64个preamble,也就是64个序列。产生不同的序列有两种方法,一种是根据不同的root sequence number生成,即在上面的公式中采用不同的u;另外一种是基于同一个root sequence number做cyclic shift循环移位生成,即对下面的公式采用不同的Cv。

         对于生成64个preamble的方式协议38211有明确的规定,先在一个root sequence上进行循环移位,如果不足以生成64个,在换root sequence,直到64个premable全部产生为止。

There are 64 preambles defined in each time-frequency PRACH occasion, enumerated in increasing order of first increasing cyclic shift Cv of a logical root sequence, and then in increasing order of the logical root sequence index, starting with the index obtained from the higher-layer parameter prach-RootSequenceIndex. Additional preamble sequences, in case 64 preambles cannot be generated from a single root Zadoff-Chu sequence, are obtained from the root sequences with the consecutive logical indexes until all the 64 sequences are found.                                       

                                                                                                                                 -----摘自38.211

        上面介绍了preamble的时域信号,再看看频域信号,即对时域信号x_{u,v}(n)做离散傅里叶变换DFT,公式如下:

经过DFT后也是长度为L_RA点的序列,即频域上占有L_RA个子载波

二、PRACH Preamble的分类

        Preamble总体上分为两大类,即long preamble和short preamble。

  • long preamble分为四种format,分别为format0/1/2/3,
  • short preamble分为九种A1/A2/A3/B1/B2/B3/B4/C0/C2。

        Preamble结构一般由三部分组成:Cyclic Prefix(CP) + Preamble Sequence (重复) + Guard Period(GP),其中核心部分preamble sequence可能重复多次,取决于不同的format。

        从下图可以看出不同format的preamble长度不同,包括不同长度的CP,不同preamble seq的重复次数,不同长度的GP。这些preamble可以应用于不同的覆盖场景。

        下面两张表格来自于协议38211,分别描述了long preamble和short preamble各种format的子载波间隔,preamble sequence的长度以及CP的长度,还有是否可以用于限制集restricted sets。限制集会对preamble的循环移位有影响。一些特殊的覆盖场景可能会定义限制级,这时会对循环移位有特殊的要求,防止发生preamble检测错误。

对于long preamble,以format 2为例:

  • 子载波间隔为1.25kHz
  • preamble sequence重复4次,长度为:

 

  • CP长度为 

注意:上述计算公式中的 

        其中Ts是LTE的基本时间单位,Tc是NR的基本时间单位。38211协议中所有时间长度单位在没有特殊明确指定时,单位为 

 

Throughout this specification, unless otherwise noted, the size of various fields in the time domain is expressed in time units Tc

                                                                                                                                ----- 摘自38211

        上面介绍了时域长度,下面看看频域占多少RB。下面这个摘自38211的table 6.3.3.2-1总结了NR支持的PRACH和PUSCH的子载波间隔SCS的不同组合,以及每种组合下的频域占多少个RB。

 三、PRACH Preamble是如何产生的

        在第一部分“PRACH Preamble是什么?”中其实已经讨论了preamble是如何生成的。下面以一组PRACH参数配置来看看这64个preamble生成过程中用到了哪些参数并且如何使用的。

 rach-ConfigCommon setup :
 {
    rach-ConfigGeneric
     {
       prach-ConfigurationIndex 2,
       msg1-FDM one,
       msg1-FrequencyStart 2,
       zeroCorrelationZoneConfig 6,
       preambleReceivedTargetPower -100,
       preambleTransMax n10,
       powerRampingStep dB4,
       ra-ResponseWindow sl20
     },
    ssb-perRACH-OccasionAndCB-PreamblesPerSSB four : 13,
    ra-ContentionResolutionTimer sf64,
    rsrp-ThresholdSSB 0,
    prach-RootSequenceIndex l839 : 439,
    restrictedSetConfig unrestrictedSet
 },

 了解了前面,可以知道生成preamble离不开两个基本元素,root sequence number 和 cyclic shift。

  •  sequence number u 是根据logical root sequence index i 查下表(节选)得到的, logical root sequence index i 是根据参数prach-RootSequenceIndex l839 :439得到的。

  •  cyclic shift Cv 根据下面公式得到。对于我们给的参数配置,可以看到restrictedSetConfig = unrestrictedSet,对于unrestricted sets公式会用到Ncs。

  • Ncs由参数zeroCorrelationZoneConfig = 6查表所得。根据参数prach-ConfigurationIndex = 2可以查表得到preamble format是format 0。 format 0的子载波间隔是1.25kHz。因此通过下表可以得到Ncs=32。根据上面的公式知道v的取值如下

进而可以求出Cv

        经过上面这些准备工作,可以通过下面伪代码的形式给出这64个preamble的产生过程: 

当logical root sequence index = 439 => sequence number = 662,通过循环移位产生26个preamble


preamble_index[0]: sequence number = 662, Cv=0
preamble_index[1]: sequence number = 662, Cv=32
preamble_index[2]: sequence number = 662, Cv=64
preamble_index[3]: sequence number = 662, Cv=96
                   ............
preamble_index[24]: sequence number = 662, Cv=768
preamble_index[25]: sequence number = 662, Cv=800


通过当前的root sequence number并且循环移位只能产生26个,不够64个,需要使用下一个logical root seq index
当logical root sequence index = 440 => sequence number = 196,通过循环移位产生26个preamble


preamble_index[26]: sequence number = 196, Cv=0
preamble_index[27]: sequence number = 196, Cv=32
                   ............
preamble_index[50]: sequence number = 196, Cv=768
preamble_index[51]: sequence number = 196, Cv=800


通过两个root sequence number仍然未能产生够64个,继续使用下一个logical root seq index
当logical root sequence index = 441 => sequence number = 643,通过循环移位产生12个即可


preamble_index[52]: sequence number = 643, Cv=0
preamble_index[53]: sequence number = 643, Cv=32
                   ............
preamble_index[62]: sequence number = 643, Cv=320
preamble_index[63]: sequence number = 643, Cv=352


至此,64个preamble全部产生!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/91216.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

考研408 | 【操作系统】 内存管理

内存的基础 内存和内存的作用: 几个常用的数量单位: 指令的工作原理: 问题:如何将指令中的逻辑地址转换为物理地址? 解决办法:装入的三种方式 1.绝对装入 2.可重定位装入 3.动态重定位 从写程序到程…

TabBar组件如何跳转页面?

1、先引入 2、假数据 const tabs [{key: home,title: 首页,icon: <AppOutline />,badge: Badge.dot,},{key: todo,title: 待办,icon: <UnorderedListOutline />,badge: 5,},{key: message,title: 消息,icon: (active: boolean) >active ? <MessageFill /&…

Django基础5——ORM中间程序

文章目录 一、基本了解二、ORM基本操作2.1 连接数据库2.1.1 使用sqlite数据库2.1.2 使用MySQL数据库 2.2 对数据库操作2.2.1 增&#xff08;前端数据——>数据库&#xff09;2.2.2 查&#xff08;数据库——>前端展示&#xff09;2.2.3 改&#xff08;修改数据&#xff0…

如何评估分类模型的好坏

如何评估分类模型的好坏 评估分类预测模型的质量&#xff0c;常用一个矩阵、三条曲线和六个指标。 一个矩阵&#xff1a;混淆矩阵&#xff1b;三条曲线&#xff1a;ROC曲线、PR曲线、KS曲线&#xff1b;六个指标&#xff1a;正确率Acc、查全率R、查准率P、F值、AUC、BEP值、KS…

行业报告 | 2023人工智能发展白皮书

原创 | 文 BFT机器人 在科技日新月异的今天&#xff0c;人工智能已成为最具革命性的技术之一&#xff0c;有望对人类社会生活产生显著的影响。过去几年&#xff0c;人工智能相关理论研究技术创新、软硬件升级等整体推进&#xff0c;极大地促进了人工智能行业的发展。 进入2022…

盖雅工场获评2023年度苏州市服务型制造示范企业(平台)

苏州市工信局公布 2023年度苏州市服务型制造示范企业&#xff08;平台&#xff09;名单 遴选出服务型制造示范企业34家 服务型制造示范平台19个 苏州盖雅信息技术有限公司 “劳动力管理SaaS云平台服务” 获评2023年度苏州市服务型制造示范平台 全市唯一获评的人力资源服务…

【rust/egui】(五)看看template的app.rs:SidePanel、CentralPanel以及heading

说在前面 rust新手&#xff0c;egui没啥找到啥教程&#xff0c;这里自己记录下学习过程环境&#xff1a;windows11 22H2rust版本&#xff1a;rustc 1.71.1egui版本&#xff1a;0.22.0eframe版本&#xff1a;0.22.0上一篇&#xff1a;这里 SidePanel 侧边栏&#xff0c;如下图 …

UG\NX二次开发 使用BlockUI设计对话框时,如何设置默认的开发语言?

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,C\C++,Qt-CSDN博客 简介: NX二次开发使用BlockUI设计对话框时,如何设置默认的代码语言? 效果: 方法: 依次打开“文件”->“实用工具”->“用户默认设置”->“用户界面”->“操作记录”->“…

Java接口(interface)

接口&#xff08;interface&#xff09;明确了描述类被授权了哪些能力&#xff0c;但不会指定具体的方式。实现类&#xff08;implement&#xff09;一个或多个接口。–>使类完成了实现&#xff0c;是一种对于行为规范的准则的抽象。 个体的方法可以在子类中自写展现&#…

ES6中promise的使用

ES6中promise的使用 本文目录 ES6中promise的使用基础介绍箭头函数function函数状态 原型方法Promise.prototype.then()Promise.prototype.catch() 静态方法Promise.all()Promise.race()Promise.any() 链式回调 基础介绍 官网&#xff1a;https://promisesaplus.com/ window.…

k8s 安装istio (一)

前置条件 已经完成 K8S安装过程十&#xff1a;Kubernetes CNI插件与CoreDNS服务部署 部署 istio 服务网格与 Ingress 服务用到了 helm 与 kubectl 这两个命令行工具&#xff0c;这个命令行工具依赖 ~/.kube/config 这个配置文件&#xff0c;目前只在 kubernetes master 节点中…

【IO进程线程】使用标准IO函数完成用户的登录和注册

1 实现登录功能 自定义一个usr.txt&#xff0c;先手动输入其账户密码。 格式&#xff1a;账户 密码 例&#xff1a; zhangsan 12345 lisi abcde wangwu abc123 需求如下&#xff1a; 1. 从终端获取账户密码&#xff0c;与文件中的账户密码比较&#xff1b; 2. 若终端输入的账户…

SpeedBI数据可视化工具:丰富图表,提高报表易读性

数据可视化工具一大作用就是能把复杂数据可视化、直观化&#xff0c;更容易看懂&#xff0c;也就更容易实现以数据驱动业务管理升级&#xff0c;因此一般的数据可视化工具都会提供大量图形化的数据可视化图表&#xff0c;以提高报表的易懂性&#xff0c;更好地服务企业运营决策…

websocket和uni-app里使用websocket

一、HTTP是无状态协议 特点&#xff1a; 1、浏览器发送请求时&#xff0c;浏览器和服务器会建立一个连接。完成请求和响应。在http1.0之前&#xff0c;每次请求响应完毕后&#xff0c;会立即断开连接。在http1.1之后&#xff0c;当前网页的所有请求响应完毕后&#xff0c;才断…

prometheus + grafana进行服务器资源监控

在性能测试中&#xff0c;服务器资源是值得关注一项内容&#xff0c;目前&#xff0c;市面上已经有很多的服务器资 源监控方法和各种不同的监控工具&#xff0c;方便在各个项目中使用。 但是&#xff0c;在性能测试中&#xff0c;究竟哪些指标值得被关注呢&#xff1f; 监控有…

ctfshow-web13 文件上传

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先看到是一个上传页面&#xff0c;测试其他无果&#xff0c;遂进行目录遍历&#xff0c;发现upload.php.bak文件 可以看到这里的限制条件&#xff0c;大小&#xff0c;以及内容&#xff0c;这里可以使用.use…

渗透测试漏洞原理之---【XSS 跨站脚本攻击】

文章目录 1、跨站 脚本攻击1.1、漏洞描述1.2、漏洞原理1.3、漏洞危害1.4、漏洞验证1.5、漏洞分类1.5.1、反射性XSS1.5.2、存储型XSS1.5.3、DOM型XSS 2、XSS攻防2.1、XSS构造2.1.1、利用<>2.1.2、JavaScript伪协议2.1.3、时间响应 2.2、XSS变形方式2.2.1、大小写转换2.2.2…

基于Red Hat Enterprise Linux 7操作系统的PostgresSql15的备份恢复(实践笔记)

零、前言 本文是基于阿里云ECS服务器进行的实践操作&#xff0c;操作系统版本&#xff1a;Red Hat Enterprise Linux 7 PG数据库版本&#xff1a;PostgresSql 15 PG安装方式&#xff1a;yum 由于本人新接触pg数据&#xff0c;本次也是出于好奇&#xff0c;就对pg数据库的pg_du…

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效…

软考A计划-系统集成项目管理工程师-小抄手册(共25章节)-下

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…