Prach

图1现网中的一次随机接入


本文主要讲解随机接入过程中的前三步。

随机接入过程的步骤一是传输preamble,Preamble在PRACH上传输。eNodeB会通过广播系统信息SIB-2来通知所有的UE,允许在哪些时频资源上传输preamble。

1 Prach配置

每个小区最大有64个可用的preamble序列,UE会选择其中一个(或由eNodeB指定)在PRACH上传输。这些序列可以分成两部分,一部分用于基于竞争的随机接入,另一部分用于基于非竞争的随机接入。用于基于竞争的随机接入的preamble序列又可分为两组:group A和group B(group B可能不存在)。这些配置eNodeB是通过RACH-ConfigCommon(SIB-2)下发的。


基于竞争的随机接入信号数量等于numberOfRA-Preambles;sizeOfRA-PreambleGroupA即为group A的随机接入的preamble序列个数。

如果UE接入时估计Msg3的Size可能较大,大于messageSizeGroupA,并且路径损耗

Pathloss < PCMAX – preambleInitialReceivedTargetPower – deltaPreambleMsg3 –messagePowerOffsetGroupB

则使用group B中的preamble;否则使用group A中的preamble。

这样eNodeB就能够根据收到的preamble知道该preamble所属的group,从而了解Msg 3的大致资源需求。

2 Preamble发射功率

preamble的实际发射功率PPRACH的计算公式为

preamble的目标接收功率PREAMBLE_RECEIVED_TARGET_POWER通过下面的公式计算:


其中preambleInitialReceivedTargetPower是eNodeB期待接收到的preamble的初始功率,就是SIB2消息中的配置值。DELTA_PREAMBLE与preamble format相关


powerRampingStep是每次接入失败后,下次接入时提升的发射功率。

3 PRACH的时频资源

每个preamble在频域上占用6个连续RB的带宽,这正好等于LTE支持的最小上行带宽。因此,不管小区的传输带宽有多大,都可以使用相同的RA preamble结构。

preamble在时域上的长度取决于配置。


之所以需要这么多的PRACH格式是因为不同的格式适应于不同的小区半径,下面举例计算了一下:


Note1 : T_CP (in ms) = T_CP(in Ts) x 0.03255 x 1/1000,

where 0.03225 is one Ts in us, 1/1000 is used to convert the unit from 'us' to 'ms'

Note2 : T_SEQ (in ms) = T_SEQ(in Ts) x 0.03255 x 1/1000,

where 0.03225 is one Ts in us, 1/1000 is used to convert the unit from 'us' to 'ms'

Note3 : Guard Time (in ms) = Number of Subframe - Total Length

Note4 : Cell Radius is roughly the distance that the electromatic wave can travel during the guard time and devided by 2.

小区半径粗略的估计:300 (km/ms) x Guard Time (ms) / 2.

下图显示了PRACH Preamble信号结构,Preamble在频域的长度是6 RB,那就是1.08 Mhz;Preamble 在时域的长度包括 Guard Time (= CP Length + SEQUENCY Length + GT Length) 可能是 1 or 2 or 3 ,取决于Preamble Format;PRACH Preamble的子载波间隔1.25 Khz,而PUSCH的子载波间隔15 Khz.


对于TDD,还支持额外的preamble配置:format 4。该配置只用于特殊子帧的UpPTS字段。由于GT的长度明显小于前面介绍的format 0~3,format 4只支持覆盖范围很小的小区。


对TDD而言,每个子帧可以有多个PRACH资源,这是因为TDD中每个系统帧的上行子帧数更少,从而要求每个子帧发送更多的RA请求。在TDD中,每个10ms的系统帧内最多可发送6个RA请求。PRACH 密度值表示UE在一个10ms内有多少次随机接入的机会,对应下表中的至多6中RA配置。

PRACH时域位置示例



< FDD >

4 PRACH序列的产生

PRACH 序列按照如下产生:

1.使用rootSequenceIndex (base sequence)产生Zaddoff Chu sequence (849或者是139的频域序列)


这个值,这个值的取值范围: 

PRACH的ZaddOff Chu序列由下式生成,是频域序列,其中u是物理根序列rootsequenceIdx的映射

rootSequenceIndex是一个逻辑值,对应的物理值是u,比如下面的表格,22就对应的u是1


Nzc的含义是ZaddOff Chu 序列的长度


2.通过循环移位在此根序列上产生64个序列,循环移位的间隔由zeroCorrelationZoneConfig和Highspeedflag决定的NCS确定



所有的序列需要正交,因此需要对基本序列进行循环移位,移位的大小为Cv (Cyclic Shift Value):


得到了Cv之后,便可以通过下式计算Preamble序列 


如果Highspeedflag是TRUE,则使用'restricted sets';如果Highspeedflag是false则使用’unrestricted sets'

假设SIB2配置

a) rootSequenceindex = 22

b) Highspeedflag = false

c) zeroCorrelationZoneConfig = 5

首先Base的Zaddoff-Chu sequence with u = 1;之后得到NCS = 26 更序列

64 个不同的PRACH序列如下:

PRACH Sequence[0] = base sequence

PRACH Sequence[1] = do cyclic shift to base sequence by 1 * 26 samples

PRACH Sequence[2] = do cyclic shift to base sequence by 2 * 26 samples

....

PRACH Sequence[31] = do cyclic shift to base sequence by 31 * 26 samples

PRACH Sequence[32] = do cyclic shift to base sequence +1

PRACH Sequence[33] = do cyclic shift to base sequence +1 by 1 * 26 samples

PRACH Sequence[34] = do cyclic shift to base sequence +1 by 2 * 26 samples

….

PRACH Sequence[63] = do cyclic shift to base sequence+1 by 31 * 26 samples

下图是现网的一个配置实例,主旨大意是S111时其他的配置可以一样,但是rootSequenceindex不可以一样,否则会小区之间产生干扰:


首先配置的是Ncs,该参数确定了小区半径,是否为高速小区,Preamble格式等,计算公式如下:

Ncs * Ts >= TRTD + Gmax + TAdSch

TS: 采样间隔,Ts = 800/839(usec)

TRTD:小区最大时延,6.67*小区半径(km)(usec)

Gmax:最大多径时延扩展,5(usec)

TAdSCH:下行同步最大误差2(usec)

对于format格式0~3,公式为

Ncs >= 1.04875(6.67*R+5+2)

假设小区半径为10km,则Ncs得77.2,查表得Ncs = 93,则zeroCorrelationZoneConfig为11;则可移位的次数为839/93 =9,则需要的根序列数目为 64/9向上取整得8;因此需要为每个小区保留8个可用的根序列而不与其他相邻基站重合。

因此就有



5 RAR

RACH上去之后,基站反馈RAR,携带RA-RNTI


t_id是第一个子帧的下标,0 <≤ t_id <10

f_id对应频域偏移0≤ f_id< 6,因为FDD上行子帧多,不存在一个子帧多个PRACH资源问题,所以f_id对FDD而言,为0。

随机接入响应对于的PDU遵循MAC PDU的规则,只是里面的内容有所不同而已,它可以包含多个随机接入响应。

除了BACKOFF对应的子头部外,每一个子头部对应于一个RAR消息,如果存在BACKOFF指示,那么它对应的子头部要放在第一个MAC子头部的位置上,并且只能出现一次。一个RAR的PDU其实可以不包含RAR消息,而只是包含一个BACKOFF指示信息。

一个MAC PDU 子头部由三个头部域组成(E/T/RAPID);但是对于BACKOFF 指示的子头部包含五个域(E/T/R/R/BI);A MAC RAR 包含四个域R/Timing Advance Command/UL Grant/Temporary C-RNTI。

最后也可能存在填充,这个是隐含的,跟通常的填充规则不同,通过传输块大小减去MAC头部大小以及RAR大小就可以推断出来。

MAC : 61 00 B0 C0 4C 2C 09 // RA-Response

E = 0(False)

T = 1

RAPID = 33

Timing Advanced = 11

Hopping Flag 0 = False

Fixed Size Resource Block Assignment = 96 (RB Start = 46, RB Length = 2)

MCS = 2, I_TBS = 2, rv = 0

TPC Command for PUCCH 3 = 0

UL Delay 0 = False

CQI Request = False

T_CRNTI = 11273


RAR消息对应的MAC头部是可变长度的,定义如下

E: 扩展域用于指示MAC头部还有其它域(例如其它RAR消息对于的子头部),如果E被置为“1”,也就是说随后至少还有一个(E/T/RAPID)域,否则,就指示随后是RAR消息或者填充部分,这里我们会发现对于RAR的填充部分它是紧随MAC头部的;

T: 类型域,用于指示这个MAC子头部包含的是随机接入ID(前导序列ID)还是BACKOFF指示,T置为“0”,也就是说这个子头部包含的是BI值, 如果是“1”,就意味着在这个子头部出现的是随机接入前导ID域;

R: 预留比特,置为"0";

BI: BACKOFF指示,通常是在小区过载的情况下,指示UE延后发送随机接入过程。4比特位表示;

RAPID: 随机接入前导与指示发送的随机接入前导序列,6比特位表示。

AC RAR消息大小是固定的,包含如下域:

-     R: 预留比特,置为“0”;

-     Timing Advance Command: 11比特位表示;

-     UL Grant: 20比特位表示;

-     Temporary C-RNTI: 16比特位表示.

The content of these 20 bits starting with the MSB and ending with the LSB are as follows:

- Hopping flag – 1 bit

- Fixed size resource block assignment – 10 bits

- Truncated modulation and coding scheme – 4 bits

- TPC command for scheduled PUSCH – 3 bits

- UL delay – 1 bit

- CSI request – 1 bit

你可能感兴趣的:(Prach)