Rach:: From Power-On To PRACH

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

RACH:

RACH stands for Random Access Channel. This is the first message from UE to eNB


when you power it on.

Following procedure is to list each steps from Power-On to Initial PRACH

From Power-On to PRACH

 i) UE is Off
 ii) Power On UE
 iii) < Frequency Search >
 iv) Time and Frame Synchronization : In this process, PSS and SSS will be
decoded as well.
 v) PCI (Physical Cell ID) detection
 vi) MIB decoding : UE can figure out System Bandwidth and Transmission Mode in
this process. (As you see in Downlink Framestructure, MIB/PBCH is located at the
6 RBs around the center frequency. So the success of MIB decoding does not
guarantee that signal quality across the whole band is good)
 vii) Detect CSR (Cell Specific Reference Signal) and perform Channel Estimation
and Equalization. In this process, UE will detect/measure reference signal across
the whole system bandwidth. So RSRP/RSRQ measured at this step can be a
good indicator for overall signal quality.
 viii) Decode PDCCH and extract DCI information for SIB. PDCCH is spread across
the whole bandwidth, so the signal quality across the whole bandwidth should be
good enough for this step.
 viii) SIB deconding (SIB1 should be decoded first and then SIB2 and then
remaining SIBs)
 ix) < Cell Selection > : UE may find multiple suitable cells, but it try camp on to
HPLM cell with the highest priority
 x) < Initial RACH Process >
Note 1: UE may repeat the step iii) ~viii) multiple times before it finds a suitable cell.
This sequence is part of Cell Search process.
Note 2: PCI (step v) will be automatically derived as a result of step iv).
 

Why RACH? (What is the functionality of RACH?)

The main purpose of RACH can be described as follows.


i) Achieve UP link synchronization between UE and eNB
ii) Obtain the resource for Message 3 (e.g, RRC Connection Request)
 In LTE, RACH process happens in following situation (3GPP specification, 10.1.5 Random
Access Procedure of 36.300 )
i) Initial access from RRC_IDLE
ii) RRC Connection Re-establishment procedure
iii) Handover (Contention Based or Non Contetion Based)
iv) DL data arrival during RRC_CONNECTED requiring random access procedure
    E.g. when UL synchronisation status is “non-synchronised”
v) UL data arrival during RRC_CONNECTED requiring random access procedure
    E.g. when UL synchronisation status is "non-synchronised" or there are no
PUCCH resources for SR available.
vi) For positioning purpose during RRC_CONNECTED requiring random access
procedure;
    E.g. when timing advance is needed for UE positioning
 
Two types of RACH process : Contention-based and Contention-free
 
When a UE transmit a PRACH Preamble, it transmits with a specific pattern and this
specific pattern is called a "Signature". In each LTE cell, total 64 preamble signatures are
available and UE select randomly one of these signatures.
 
UE select "Randomly" one of these signatures ?
 
Does this mean that there is some possibility that multiple UEs send PRACH with
identical signatures ?
 
Yes.
There is such a possibility. It means the same PRACH preamble from multipe UE reaches
the NW at the same time.. this kind of PRACH collision is called "Contention" and the
RACH process that allows this type of "Contention" is called "Contention based" RACH
Process. 

 In this kind of contention based RACH process, Network would go through additional
process at later step to resolve these contention and this process is called "Contention
Resolution" step.
 
But there is some cases that these kind of contention is not acceptable due to some
reason (e.g, timing restriction) and these contention can be prevented. Usually in this
case, the Network informs each of the UE of exactly when and which preamble signature
it has to use. Of course, in this case Network will allocate these preamble signature so
that it would not collide. This kind of RACH process is called "Contention Free" RACH
procedure. To initiate the "Contention Free" RACH process, UE should be in Connected
Mode before the RACH process as in Handover case.
 

Exactly when and where a UE transmit RACH?

To answer to this question, you need to refer to 3GPP specification TS36.211 - Table
5.7.1-2. This table would give you at which frame and subframe that UE is allowed to
transmit a PRACH Preamble. As you see at this table, the prach preamble timing and
prach preamble type is determined by PRACH Configuration Index. The, how PRACH
Configuration Index is determined ? It is determined by SIB2 parameter prach-
ConfigIndex.
 
How does Network knows exactly when UE will transmit the RACH?

It is simple. Network knows when UE will send the RACH even before UE sends it
because Network tells UE when the UE is supposed to transmit the RACH. (If UE fails to
decode properly the network information about the RACH, Network will fail to detect it
even though UE sends RACH).
 
How to Generate 64 PRACH Preamble Sequences?

s described above, the maximum number of PRACH Sequence a UE can use in a cell is
64. How these 64 different types of PRACH Sequence can be generated? The procedure
is as follows.
 
i) Generate a Zaddoff Chu sequence (849 samples) using rootSequenceIndex (let's call
this sequence as 'base sequence')
ii) Generate 64 different sequency by doing cyclic shift of the base sequence. The cyclic
shift interval is determined by Ncs and the Ncs is determined
by zeroCorrelationZoneConfig and Highspeedflag.
 

rootSequenceIndex
 
there are 838 root Zadoff-Chu sequences available for preambles. The length of each
root sequence is 839. RootConfigurationIndex informs the UE on which sequence to use
via SIB2 as shown below.
 
sib2
    radioResourceConfigCommon
        rach-ConfigCommon
            preambleInfo
                numberOfRA-Preambles: n52 (12)
            powerRampingParameters
                powerRampingStep: dB2 (1)
                preambleInitialReceivedTargetPower: dBm-104 (8)
            ra-SupervisionInfo
                preambleTransMax: n6 (3)
                ra-ResponseWindowSize: sf10 (7)
                mac-ContentionResolutionTimer: sf48 (5)
            maxHARQ-Msg3Tx: 4
        ...
        prach-Config
            rootSequenceIndex: 22
            prach-ConfigInfo
                prach-ConfigIndex: 3
                ..0. .... highSpeedFlag: False
                zeroCorrelationZoneConfig: 5
                prach-FreqOffset: 4
        ...
        
        additionalSpectrumEmission: 1
    timeAlignmentTimerCommon: infinity (7)
 
This rootSequenceIndex is a logical value. The real number (physical number) is called
'u' which is a variable used to generate PRACH ZaddOff-Chu Sequence. 

RACH Procedure during Initial Registration - RACH Procedure Summary


 
Follwing is an example of RACH procedure which happens during the initiail registration.
If you will be an engineer who is working on protocol stack development or test case
development, you should be very familiar with all the details of this process.
 
 
Random Access Procedure (RACH)
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.

You might also like