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

相关文章

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对