LTE-TDD随机接入过程(5)-怎么生成64个前导码序列

2024-04-28 21:32

本文主要是介绍LTE-TDD随机接入过程(5)-怎么生成64个前导码序列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



转载  原文链接(http://blog.csdn.net/m_052148)

在LTE里,每个小区都有64个前导码,那么这些前导码序列Preamble Sequences是怎么生成的呢?本文就旨在说明生成前导码序列的过程。

前导码序列集合包括根序列和由该根序列生成的循环移位序列,计算过程分为两个大的步骤:

(1)生成一个ZC(Zadoff-Chu)根序列Xu(n),作为一个基准序列

(2)将基准序列Xu(n)进行循环移位,生成63个不同的循环序列Xuv(n)

如果在(2)中根据基准序列得到的移位序列不足63个,则重新进入(1),生成下一个基准序列,以及新的基准序列相应的移位序列,直至满足64个前导码序列为止。

1.选择基准序列Xu(n)

基准序列Xu(n),也就是物理根序列号为u的ZC序列,按照以下公式计算得到。

其中,

Nzc表示ZC序列的长度,前导码格式0-3时,Nzc固定等于839;前导码格式为4时,Nzc固定等于139。前导码的格式由PRACH configuration Index确定,具体参考博客《LTE-TDD随机接入过程(2)-前导码Preamble的格式与时频位置》。

u是物理根序列号(Physical root sequence number),由逻辑根序列号(Logical root sequence number)查协议表Table 5.7.2-4(前导码格式0-3时查该表)和Table 5.7.2-5(前导码格式4时查该表)得到。



逻辑根序列号(Logical root sequence number)由SIB2消息中的PRACH-Config信元的rootSequenceIndex字段配置,范围是0-837,见下面的截图。比如RRC配置的rootSequenceIndex=3,前导码格式=2,那么查表可以得到物理逻辑根序列号u=699。


2.计算循环移位序列Xuv(n)

循环移位序列Xuv(n)根据下面的公式计算得到。其中,循环移位参数Cv根据是否是约束集合,使用不同的公式计算。是否是约束集合由SIB2消息中的PRACH-Config信元的highSpeedFlag字段配置,值为FALSE表示使用Unrestricted,值为TRUE表示使用restricted,见上面的截图。


Ncs可以根据SIB2消息中的PRACH-Config信元的zeroCorrelationZoneConfig字段来获取。zeroCorrelationZoneConfig值范围是0-15,通过查表就可以获取实际的Ncs值。比如,prach-ConfigIndex=1(preamble format 0),highSpeedFlag=FALSE(Unrestricted set),zeroCorrelationZoneConfig=2,则Ncs=15。


d_startn_RA_shiftn_RA_group_n_RA_shift这四个参数与du值相关,du值取决于p值,而p是满足(p*u)modNzc=1的最小非负数。比如,u=1,Nzc=839,那么p=1,du=p=1,如果此时Ncs=0,则du>Ncs,d_startn_RA_shiftn_RA_group_n_RA_shift这四个参数可以依次根据上面的公式计算得到。

3.示例说明

前面说了怎么计算基准序列和移位序列,本节简单举一个例子说明怎么获取64个前导码序列。

SIB2中携带的参数值如下:

a) rootSequenceindex = 22

b) Highspeedflag = false

c) zeroCorrelationZoneConfig = 5      

d) prach-ConfigIndex = 1

(1)根据prach-ConfigIndex=1,可以知道前导码格式=0,Nzc=839。

(2)根据rootSequenceindex=22,可以查表得到u=1。

(3)根据Highspeedflag = false,可以知道计算Cv时选择Unrestricted set。

(4)根据zeroCorrelationZoneConfig = 5  ,可以知道Ncs=26。

(5)因为Ncs不等于0,因此Cv=v*Ncs=26*v,v的范围是:v=0,1,...,31。

(7)根据上述结果,可以依次得到的前导码如下(因博客编辑器原因,Xu的下标部分u就不另外单独特殊编辑,应该不影响理解):

第1个前导码:v=0的移位序列Xu,0(n)=Xu((n+C0)mod839)=Xu((n)mod839)=Xu(n)=X1(n),即基准序列。

第2个前导码:v=1的移位序列Xu,1(n)=Xu((n+C1)mod839)=Xu((n+26)mod839)=X1((n+26)mod839)

第3个前导码:v=2的移位序列Xu,2(n)=Xu((n+C2)mod839)=Xu((n+26*2)mod839)=X1((n+26*2)mod839)

....

第32个前导码:v=31的移位序列Xu,31(n)=Xu((n+C31)mod839)=Xu((n+26*31)mod839)=X1((n+26*31)mod839)

计算到这里,以物理根序列号u=1的移位序列已经全部获取得到,但此时还没有完成全部64个前导码的生成,因此需要继续将u递增,获取新的基准序列。

u=1的下一个是u=838(查前文的Table 5.7.2.-4),因此利用u=838计算后续的32个前导码如下:

第33个前导码:v=0的移位序列Xu,0(n)=Xu((n+C0)mod839)=Xu((n)mod839)=Xu(n)=X838(n),即新的基准序列。

第34个前导码:v=1的移位序列Xu,1(n)=Xu((n+C1)mod839)=Xu((n+26)mod839)=X838((n+26)mod839)

第35个前导码:v=2的移位序列Xu,2(n)=Xu((n+C2)mod839)=Xu((n+26*2)mod839)=X838((n+26*2)mod839)

....

第64个前导码:v=31的移位序列Xu,31(n)=Xu((n+C31)mod839)=Xu((n+26*31)mod839)=X838((n+26*31)mod839)

至此,所有的64个长度为Nzc的前导码序列已经生成完毕,随机接入过程中只选择其中的一个长度为Nzc的序列发送到eNB

4.空口映射示意图

用于PUSCH的RB,每个子载波占15K的带宽,因此6个RB(每个RB占12个子载波)总共占1.08M的带宽。特别的,用于PRACH信道的RB,每个子载波是1.25K,因此总共有864个子载波。当UE选择了一个确定的前导码后,将映射到频域中间的839个子载波中(前导码格式0-3),两边的25个子载波用于保护频带。如下图所示。


5.参考文献

(1)3GPP TS 36.211 V9.1.0 (2010-03) Physical Channels and Modulation

(2)3GPP TS 36.331 V9.18.0 (2014-06) Radio Resource Control (RRC)

(3)http://www.sharetechnote.com/

这篇关于LTE-TDD随机接入过程(5)-怎么生成64个前导码序列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Spring Boot 整合 Apache Flink 的详细过程

《SpringBoot整合ApacheFlink的详细过程》ApacheFlink是一个高性能的分布式流处理框架,而SpringBoot提供了快速构建企业级应用的能力,下面给大家介绍Spri... 目录Spring Boot 整合 Apache Flink 教程一、背景与目标二、环境准备三、创建项目 & 添

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事