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

在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序列,按照以下公式计算得到。

[置顶] LTE-TDD随机接入过程(5)-怎么生成64个前导码序列_第1张图片

其中,

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时查该表)得到。


[置顶] LTE-TDD随机接入过程(5)-怎么生成64个前导码序列_第2张图片

逻辑根序列号(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,见上面的截图。

[置顶] LTE-TDD随机接入过程(5)-怎么生成64个前导码序列_第3张图片

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

[置顶] LTE-TDD随机接入过程(5)-怎么生成64个前导码序列_第4张图片

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个子载波用于保护频带。如下图所示。

[置顶] LTE-TDD随机接入过程(5)-怎么生成64个前导码序列_第5张图片

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个前导码序列)