RACH

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

Random Access Procedure (RACH)

Random Access Procedure:- In order to be synchronized with the network,


RACH procedure is used.
Suppose a UE wants to access the network, so first it will try to attach or syncronise
with the network. In LTE a separate channel PRACH ( Physical Random Access Channel)
is provided for initial access to the network.

When does UE need to perform Random Access Procedure :-


As per specifications, RACH can be performed in below mentioned scenarios :-

 Initial Access - UE is trying to access the network in RRC idle state.


 During RRC connection re-establishment procedure .
 Handover
 When uplink synchronization is lost :- It means from a certain duration network has not
received anything from UE in uplink.
 When UE does not have any PUCCH resources available for SR(Scheduling Request) .
 When timing advance is needed for positioning purpose in RRC connected state for UE.

To initiate the procedure UE lower layes will send a Random Access Request(RACH
Request) after receiving request from UE RRC.

UE receives a lot of information from eNodeB in System Information (SIB2). It's


important to understand those terminologies first.

You can also refer LTE(Long Term Evolution) SIB2 parameters section.
1. RACH Configurations
2. PRACH Configurations 

How UE decides about when and where it needs to send RACH Request:-
It is decided on the basis of parameters received in SIB2 PRACH configurations.
UE can use 6 Resource blocks for sending the RACH Request.

From PRACH Config Index - There is a mapping in spec 36211 table 5.7.1-2  from which
UE can find the available subframes where it can send a RACH.
For example:- Prach Config index value = 7, From table it is clear that UE can send a
RACH Req in any system frame but subframe should be 2 and 7.

From PRACH Frequency Offset - This value is also received in SIB2 by UE. It governs
which frequency resource UE can use for the RACH Req.
Example:- If the value of PRACH Freq Offset is 10. UE can use the 6 PRB's starting from
PRB 10 for RACH Request.

What exactly RACH Request contains:-


1. Preamble Index :- There are total of 64 preambles available which are divided into
two groups Group A and Group B. UE decides the preamble index from a group on the
basis of parameters received in SIB2:-
numberofRaPreambles :- eNodeB sends this value in SIB2 which denotes the total
number of preambles available for UE to send a Rach Request.

sizeOfRaPreamblesGroupA :- It represents the number of preambles available within


Group A.

So number of preamble in Group B


=  numberofRaPreambles - sizeOfRaPreamblesGroupA

MessageSizeGroupA :- It is used for selecting a preamble from a group. Its value is in
bits. 

Now UE needs to decide the group from which it needs the preamble. Group is decided
on the basis of size of  MSG3( RRC connection request ).

If Msg3 size > messageSizeGroupA , preamble will be selected from GroupB


else preamble will be selected from Group A

The actual formula for selecting a preamble is given in spec 36321 sec 5.1.2. That
contain factors other than MSG3 size as well. But mainly this is how UE decides the
Group. From the selected group, randomly UE selects a preamble index. 

How UE decides the Power used for Rach request Transmission:- 


Now UE need to decide the power which will be used for RACH Request transmission.
Power is decided on the factors received in SIB2 as:-

preambleInitialReceivedtargetPower:- Power factor which will be used for first


transmission of Rach Request.Value varies from -120dBm to -90 dBm .

powerRampingStep:- This is mainly used when eNodeB is not able to detect the Rach
Request then UE will re transmit the RACH Request by increasing the power
to powerRampingStep factor.

power used  for Rach Request transmission = 


preambleInitialReceivedTargetPower + DELTA_PREAMBLE +
(PREAMBLE_TRANSMISSION_COUNTER – 1) *powerRampingStep

DELTA_PREAMBLE = This is preamble format based delta offset. There are four formats
available for preamble which are called as preamble formats. We will be explaining them in
detail later. Most of the time preamble format 0 is used. 

For Example:-
In Sib2, preambleInitialReceivedtargetPower = -100
                powerRampingStep = 2

First Transmission of Rach Request:-


PREAMBLE_TRANSMISSION_COUNTER = 1
For preamble format 0, DELTA_PREAMBLE = 0 
Power used = -100 + 0 + (1- 1) *2
                     = -100
Suppose eNodeB is not able to receive it
Second transmission of Rach request:-
PREAMBLE_TRANSMISSION_COUNTER = 2
Power used = -100 + 0 + (2-1) * 2
                     = -98  

UE will send the RACH Request containing these values in the specified subframe by
using the specified resources.

In nutshell, steps followed by UE for sending a Rach request:- 

How eNodeB behaves after receiving Random Access Request:-

1. Allocation of temporary RNTI(Radio Network temporary Identifier) :- After


receiving RACH Request, enodeB allocates a temporary identity to the UE which is made
permanent after successful RACH procedure. The permanent identity is called as CRNTI
( Cell RNTI ). This TC-RNTI is transmitted to the UE as part of RACH Response which
will be used for further communication between the UE and the network.

2. Timing Advance :- After receiving RACH Request, eNodeB PHY(Physical layer)


calculates the timing advance which is transmitted to the UE as part of response
message.

As part of Rach response, absolute Timing advance value is transmitted.

Timing advance calculation for RACH Response message:-


As per 3GPP spec,
Ts = 1/(15000 * 2048)  seconds
NTA = TA * 16 where TA = 11 bit value for random access response varying from
0,1,2 .... 1282

NTA = Amount of time alignment

So transmission of uplink radio frame from the UE shall start =


                        (NTA + NTA offset) * Ts

NTA offset = 0 ( For type 1 frame structure)

                        = ((NTA + 0) * 1)/ (15000 * 2048)


                        = (TA * 16)/(15000 * 2048 )seconds

Mainly this timing advance fundamental is used for eNodeB PHY to receive the UE
message at correct timing. It is possible that UE is far away from the eNodeB , so for
eNodeB to receive the data from UE at correct timing this timing adjustments are done.

If timing advance is received in subframe n, UE should do the adjustment from


the starting of subframe (n +6) . 
After the Random access response message, enodeB does not send absolute timing
advance value. It will send a value which UE will use to adjust the already stored timing
advance value. We will explain this in Timing advance section later. 
  
Refer spec 36213 sec 4.2.3 and spec 36211 sec 8.1 for details about timing
adjustments 

3. Allocate uplink Resources ( UL GRANT ):- eNodeB will provide the required


information in Random Access Response(RAR) message for UE to send the MSG3( RRC
Connection Request) .

UL Grant is a 20 bit message with contents from MSB to LSB as:-

 Hopping Flag :- This is 1 bit of information which governs whether frequency hopping is


enabled or not. If the value of the bit is 1 and resource block assignment is type 0 , UE
should perform PUSCH frequency hopping.
What is Frequency Hopping:- 
As we know that RB allocation is contiguous in uplink which means eNodeB allocates
continuous RB's in frequency domain. As in downlink we have multiple resource
allocation policies to achieve frequency diversity.

So in uplink, to achieve frequency diversity Frequency Hopping is used. eNodeB


communicates required parameters to UE's in SIB2 which are needed for performing
frequency hopping at UE.

For Example:-
Suppose eNodeB has allocated 5 RB's to a particular UE in uplink as shown below.
 
It is clear that the allocation in uplink in terms of RB is contiguous. But eNodeB has
enabled frequency hopping for this UE. 

We are able to achieve frequency diversity in contiguous allocation as well due to


hopping. In the figure above, same color represents the hopping of UE data in different
slots for a particular RB.

There is a lot more to discuss in frequency hopping. we will be taking it later in that
particular section.

As of now,we can summarize it as :-


Frequency hopping is used to provide frequency diversity in uplink. Its main advantage
is, suppose in frequency domain at RB0 channel conditions are bad but at RB3
conditions are good. So in that case, UE can decode the data of RB0 after combining
the same colored data. 

 Resource Block Assignment :- It is 10 bits of information embedded in UL Grant


message.
How UE decodes the 10 bit RB Assignment :-
According to spec 36213 sec 6.1.1, UE decodes it as:-

If NULRB <= 44
Truncate the fixed size resource block assignment to its b least significant bits where,
b = ceiling ( log2(NULRB * (NULRB + 1)/2) )

and interpret the truncated resource block assignment according to the rules for a
regular DCI format 0  

else
Insert b most significant bits with value zero where, 
b = (ceiling ( log2(NULRB * (NULRB + 1)/2) )) - 10
and interpret the expanded resource block assignment according to the rules for a
regular DCI format 0

For Example :- 


Lets assume the 10 bits of the information as :- 1 1 1 1 1 1 1 1 1 1
Assume Total number of uplink RB's in system = 100

b =  (ceiling ( log2(NULRB * (NULRB + 1)/2) )) - 10


  = (ceiling ( log2(100 *101/2))) - 10
   = (ceiling ( 12.3)) - 10

    = 13 -10
    = 3

So, RB assignment will be :- 0 0 0 1 1 1 1 1 1 1


RB assignment ( value in decimal) =  127
Now we need to interpret it according to the rules of DCI format 0.

Number of RB's allocated = Floor( 127 /100 ) + 1


                                        = 1 + 1
                                        = 2
RB start index = 127 mod 100
                     = 27

 Modulation and Coding scheme to be used by UE:-  It is 4 bits of information in UL


grant message whose value varies from 0 to 15. The modulation and coding is
determined by UE from MCS indices 0 to 15 in table 8.6.1.1 from spec 36213.
 Power used by UE for PUSCH :- It is indicated in 3 bits as a TPC command whose value
varies from 0 to 7. TPC command to power mapping is mentioned in table below

 UL delay :- 1 bit of information which can be set to 0 or 1. It indicates whether the
delay of PUSCH is introduced or not. 
 CSI field :- This 1 bit of information determines whether an aperiodic CQI, PMI and RI
report can be included in the PUSCH transmission. For contention based Random access
CSI field is reserved. 

eNodeB will prepare a response ( Random Access Response) with above


discussed fields and send it to UE. But we need to understand the timing of
response message corresponding to Rach Request.

Timing w.r.t to Rach Request and Random Access Response:-  


RAR Response Window is the value transmitted in SIB2. You can refer the LTE basic
section for more details. Its value is in subframes.

RACH

The PRACH occupies 6 PRBs in the frequency domain and spans 1 or 2 or 3 sub frames in the time domain,
depending on the specific preamble format. In the frequency domain, several subcarriers at both ends of the 6 PRBs
are not used to avoid interference with the adjacent PUCCH/PUSCH. In the time domain, the cyclic prefix (CP) and
guard time (GT) are used to avoid interference with the previous and next subframes. As it turns out, the GT
determines the maximum cell radius.

The Preamble format is defined in LTE (3GPP TS 36.211, section 5.7).

Ts is the basic time unit in LTE, Ts = 1/(15000*2048) s = 3.25521 X 10^(-5) ms.

Cell radius supported:

Format 1:~14km,Format 2: ~30 km, Format 3: ~107 km

FDD: preamble format 0-3 used.

random access configuration for preamble format 0-3.


PRACH  position in frequency domain is given by prach-FreqOffset (present in SIB2). And  in time domain is
given by prach-ConfigIndex (present in SIB2).

TDD: preamble format 0-4 used.

In TDD usage of preamble format depends on UL/DL configuration used. There might be multiple random
access resources in an UL sub frame depending on the UL/DL configuration.

Eg: preamble format 1 requires 2sf and format 3 requires 3sf and num of available UL sf depends on UL/DL
config used.

Preamble Format 4 (Short PRACH) is only used in TD-LTE, which can be transmitted in the UpPTS part of the
special sub-frame (SF1 and/or SF6). Minimum number of symbols needed for this is 2. Hence this can be
applied only for Special sub frame configurations 5-8 with normal CP or configuration 4-6 with extended CP
(Refer: 36.211, Table 4.2-1).PRACH configuration indexes 48 to 57 will use Short PRACH

UpPTS lengths 4384 .Ts and 5120.Ts only. PRACH configuration indexes 48 to 57 will use Short PRACH
PRACH POSITION:
random access preamble mapping in time and frequency
The random access opportunities for each PRACH configuration shall be allocated in time first and then in
frequency if and only if time multiplexing is not sufficient to hold all opportunities of a PRACH configuration

TDD PRACH Resource allocation is defined by a quadruple shown below.

Details of prach-ConfigIndex is given in Table: 5.7.1-2 of 36.211.

.
Types of RACH preambles (Regular and restricted).

 Restricted set used in high speed scenarios. where UE experiences higher frequency offset
due to doppler shift which causes spurious and aliased peaks. These spurious peaks occur at
specific cyclic shift values and therefore, should be restricted in the preamble set.

The parameter High-speed-flag provided by higher layers determines if unrestricted set or restricted set shall
be used.

In high speed scenarios, there may be RAPID mismatches during RACH procedure if high
speed flag is not set  (in SIB2). If this flag is set,  UE will not use these cyclic shifts while
selecting RACH preambles.

The random access preambles are generated from Zadoff-Chu sequences, generated from one or several root
Zadoff-Chu sequences

Preamble generation:

There are 64 preambles available in each cell. The set of 64 preamble sequences in a cell is found by including
first, in the order of increasing cyclic shift, all the available cyclic shifts of a root Zadoff-Chu sequence with the
logical index rootSequenceIndex, where rootSequenceIndex  and   for preamble generation  is
broadcasted as part of the System Information. 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. The logical root sequence order is cyclic: the
logical index 0 is consecutive to 837(total of 838 Zadoff-Chu sequences).

NCS:The cyclic shift can be used to expand the preamble capacity. A small Ncs value generates more
preambles.

Numof RA preamble= 839/ NCS : where 839 Is preamble sequence length.

below diagram :The cyclic shift used by UE0 is 0 and the cyclic shift used by UE1 is Ncs and UE2 is
2NCS. At the eNB, the observed cyclic shift of UE0 will not be 0 but some value x because of the
transmission delay. As long as x is less than Ncs, the auto-correlation between the shifted x and
shifted Ncs will be zero, and eNB will be able to distinguish between the accesses from UE0 and
UEx (properties of Z-C sequences)
However, the cyclic shift cannot be configured smaller than expected cell radius, since that will block
random accesses from the cell edge and may cause drops during handovers.     
eg:NCS=119 cell radius ~16Km.
      NCS=46 cell radius ~5.5Km.

RACH trigger:

Events that will trigger random access procedure.

     Initial access from RRC_IDLE;


     Initial access after radio link failure;
     Handover requiring random access procedure;
     DL data arrival during RRC_CONNECTED when UL is “nonsynchronised”;
     UL data arrival during RRC_CONNECTED when UL is “nonsynchronised”
     or there are no PUCCH resources for SR available available.
     if UE's TA timer has expired, and UE needs to send or receive data, it performs random
access

initial preamble transmit power is set as follows: 

PPRACH = min{PCMAX , PREAMBLE_RECEIVED_TARGET_POWER + PL}  [dBm].

where PCMAX is the configured maximum UE transmitted power and PL is the downlink pathloss estimate
calculated in the UE. Based on the reference signal power signaled in SIB2 and the measured RSRP,
Random access procedure
random access procedure at the UE side.
 The UE listens to a downlink broadcast signal to obtain the transmission timing. It is also
informed of the available signatures, frequency bands and time slots for a random access.
(SIB2)
 Open-loop power control can be used to obtain a suitable transmission power. The path loss
is estimated from a downlink signal and the UE estimates the transmission power to achieve
a certain SNR target.
 The UE selects randomly a signature, a time slot and a frequency band among the available
set.
 The NodeB correlates the received signal in the RACH sub-frame with all possible signature
sequences
 The UE monitors a specified downlink channel for response from the NodeB.
 In case of positive answer:
 The UE decodes the response and adapts its transmission timing.
 If the UE does not receive any response from the NodeB: A new attempt is performed by
power ramping method or : the UE selects a new signature  after a random back-off time.
Example:

sib2 : 
{
....
prach-Config 
{
rootSequenceIndex 384,
prach-ConfigInfo 
{
prach-ConfigIndex 4,
highSpeedFlag FALSE,
zeroCorrelationZoneConfig 12,
prach-FreqOffset 2
}
...
}
prach-ConfigIndex is 4, meaning PRACH can be transmitted in any SFN and 4th sub-frame.
prach-FreqOffset is 2, meaning PRACH starts from 1st RB in frequency domain
zeroCorrelationZoneConfig  12 means NCS is 119.

UE Logs on RACH
Version = 2

Current SFN SF = 10184


Preamble Sequence = 2

Cycle Shift = 52

Preamble Format = 0

First RB for PRACH Opportunity = 17

Start RB = 17

PRACH Transmit Power = -19 dBm

Logical Root (q) = 129

You might also like