Sunteți pe pagina 1din 21

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.

PHICH

PHICH (Physical Hybrid ACK/NACK Indicator


Channel)
It is a downlink channel available in LTE for sending the feedback of uplink data
received on PUSCH. In simpler words, eNodeB sends feedback in terms of ACK or NACK
to UE for the data received.
Timing of PHICH message sent by eNodeB after receiving the data on PUSCH :As we know that uplink transmission is always synchronized which means that timing is
always fixed for ACK/NACK reception and uplink re-Transmissions.
PHICH timings are cleary mentioned in spec 36213 section 9.1.2. For a PUSCH
transmission in subframe n , UE shall always determine the PHICH in subframe
n+kPHICH
where
For FDD,
kPHICH = 4

For TDD,
Please refer table 9.1.2-1 in spec 36213
FDD Example:UE has transmitted the uplink data at subframe number 2. UE will look for the
corresponding PHICH at subframe 6.

Number of bits used for PHICH ACK/NACK transmission :MAC will provide value 1(Ack) for a positive HI and value 0(Nack) for a negative
HI. These values are coded as mentioned in spec 36212 sec 5.3.5.1.
As shown in spec, 3 bits are used for ACK or NACK transmission as shown in
table above. 000 will be used for HI NACK and 111 will be used for HI ACK.
According to table 6.9.1-2 of spec 36211 , Each bit of PHICH is spreaded by a factor
as

NSF PHICH = Spreading factor to be used


For Normal cyclic prefix = 4
Extended cyclic prefix = 2
In case of normal cyclic prefix 3 bits of PHICH will become 12 bits after applying
spreading factor of 4.

Spreading Factor:- It is a layer1 fundamental to make the information more


redundant and transmit the same information in different frequency domain. This
increases the possibility of successful detection at UE. If channel condition at
particular frequency is bad, same information can be decoded from different
frequency by UE.

PHICH location on resource Grid :PHICH location on resource grid depends upon its duration type. PHICH duration is
of two types
1. Normal duration :- PHICH will be present on the first OFDM symbol of the
resource grid.
2. Extended duration :- PHICH can be present in first 3 OFDM symbols

Resource Allocation Types

Resource Allocation :- In control information or more specifically


inside DCI , eNodeB has sent the details regarding resources on which UE can decode
its downlink data or UE can send their uplink data.
As control information data is made up of CCE's , similarly actual data information is
composed of RB's. We have already discussed about RB ( Resource Block ) in basic LTE
section.
In 20 Mhz we have 100 RB's . Suppose eNodeB wants to allocate 20 RB's to a UE . To
send this information inside DCI such that UE can figure out which 20 RB's out of 100
are allocated to that UE , eNodeB needs to send 100 bits each bit representing 1 RB.
But this procedure will increase too much data on control information .

1.
2.
3.
1.
2.

To reduce the size of control information , LTE introduces different resource allocation
strategies:Resource Allocation Type 0
Resource Allocation Type 1
Resource Allocation Type 2
Localized
Distributed
According to spec 36213 section 7.1.6 , There is a fixed mapping exist between DCI
format used in downlink and the RAT policy used for allocation in downlink.

How UE comes to know about the RAT policy


used by eNodeB :

In PDCCH (or In DCI ) There is a field present called Resource allocation field which
includes two parts
Resource Allocation Header Field :- It is 1 bit information in which value 0 is
indicated for RAT0 and RAT1 is indicated otherwise. This field is not present for RAT2
2. Actual resource block assignment :- It contains the actual resource information.
For Example:1.

The example clearly illustrates the presence of Header field and the actual allocation in
blue color for DCI format 1. How the actual resource block assignment is decoded will
be explained below in each resource allocation policy.

Type 0 Resource Allocation(RAT0) :In RAT0 allocation happens in terms of RBG( Resource block group ).
1 RBG = n consecutive RB's in frequency domain
where n depends on system bandwidth or the total number of RB's in the system for
one subframe.
According to spec 36213 value of n will be as:-

So total number of RBG's in the system will be :Number of RBG = Total number of RB's / n
If Total number of RB's % n > 0 , then
Number of RBG = Number of RBG +1 with last RBG containing the remaining
RB's
Lets take an example
We are working on 10 Mhz, so total number of RB's will be 50.
From above table value of n will be 3 for 50 RB's in system. So total number of RBG's
will be
Number of RBG = 50 / 3 = 16
As 50 % 3 > 0
So Total number of RBG = 16 +1 =17
And the last RBG will contain only 2 RB's

With this RBG formation now eNodeB needs to send bits equivalent to the total number
of RBG's with each bit representing one RBG. The RBG's are always indexed in the
order of increasing frequency. The order of RBG to bitmap bit mapping is in such a way
that RBG index 0 to RBG index n-1 are mapped to MSB to LSB of the bitmap.

Bitmap is the bits pattern transmitted in DCI for actual resource block assignment
where each bit represents one RBG.
Lets take an Example for allocation in RAT 0 and how the RBG's are mapped to
the bitmap transmitted in DCI.
Suppose the downlink bandwidth is 20 Mhz which means eNodeB has 100 RB's for its
allocation

As per spec for 100 RB's, each RBG will contain 4 RB's. So eNodeB has 25 RBG's as
RBG index 0 to RBG index 24 as shown below.
For 25 RBG's , 25 bits are needed in DCI to send their control information.
In the diagram below, RB coding is the bitmap transmitted in DCI for the allocation of
resources to a particular UE. After converting the bitmap to binary , we can see the 25
bits used by eNodeB for 25 RBG's starting from MSB bit.
First RBG will always start from the last bit of bitmap i.e. RBG index 0 will be
represented by MSB of the bitmap always as per specifications.
From below bitmap it is quite clear that, RBG index 2 ,RBG index 3 and all other places
in the bitmap where the bit value is 1 are allocated to this particular UE.
Important points about RAT0 :Advantage will be that the size of control information on PDCCH will be reduced.
But as the allocation will happen only in terms of RBG so some RB's can get wasted.
Suppose some UE needs 5 RB's for 20 MHz system bandwidth where each RBG contains
4 RB's. So to give 5 RB's eNodeb needs to allocate 2 RBG which in turn will waste the 3
RB's.

Type1 Resource Allocation( RAT1 ) :As described above , In PDCCH Resource Allocation Header field represents the
resource allocation type used. For RAT1 header field value will be 1.
Type1 Allocation also uses the bitmap fundamental. But as we know the limitations of
Type0 that allocation happens in terms of RBG's which can lead to the wastage of RB's
as explained above. So to provide more granularity in the resource allocation Type1
came into picture.
In Type1 one extra field is added which is subset to provide the granularity and
frequency diversity in the system. Allocation happens in terms of RB's belonging to the
same subset.
Let's take an example for subset formation and what exactly a subset
contains:Number of subsets in the system = Number of RB's in 1 RBG
As defined in spec 36213:-

Each Subset p will contain every nth RBG starting from RBG p.
n = Number of RB's in a RBG from the above table.
Example:Suppose system bandwidth is 20 Mhz.
Total number of RB's =100
From above table, n = 4
Number of subsets = 4 (From table)
As total number of subsets are 4,
p = 0 to 3
So, subset 0 will contain every 4th RBG starting from RBG 0.
Similarly subset 1 will contain every 4th RBG starting from RBG1
Please refer the below image for the RBG's mapped to different subsets using the
formula explained.
Now, UE need to know which subset EnodeB has used for the allocation. In resource
block assignment, n number of bits are used for the transfer of subset number
information.
where n is,
n = ceiling(log2 P) where P is the total number of subsets in the system.
For Example:
In 20 Mhz system, P = 4
n =ceiling(log2 4) = 2
In 5 MHz, P = 2
n = ceiling(log2 2) = 1
So number of bits transmitted depends upon the system bandwidth.
Number of RB's in a subset can be calculated as:According to spec 36213 sec 7.1.6.2 , Number of RB's in a subset can be calculated
from the formula as:where P = Total number of subsets in the system
NRBDL = Total number of downlink RB's
p = Current subset number ranging from "0 to (P-1)"
Lets take the same example of 20 Mhz bandwidth:NRBDL = 100
P=4
p = 0 to 3
RB's in subset 0 will be:-

As p =0
(floor((NRBDL -1) / P)) mod P = (floor((100 -1)/ 4)) mod 4
= (floor(99 /4)) mod 4
=0=p
It satisfies the condition 2nd from the above formula.
Number of RB's in subset 0 will be =
(floor((NRBDL -1) /P2)) * P + (NRBDL -1) mod P + 1
= (floor((100 -1)/16)) * 4 + (100 -1) mod 4 + 1
= 24 + 3 + 1
= 28
RB's in subset 1 will be :As p =1
(floor((NRBDL -1) / P)) mod P = (floor((100 -1)/ 4)) mod 4
= (floor(99 /4)) mod 4
=0
As p > 0
It satisfies the condition 3rd from the above formula
Number of RB's in subset 1 will be = (floor((NRBDL -1) /P2)) * P
= (floor((100 -1)/16)) * 4
= 24
Similarly we can calculate the RB's for subset 2 and subset 3.

Type1 bitmap:As we know that total size of the bitmap is same in Type1 as in Type0 allocation. But in
Type1 each bit of the Resource assignment maps to an RB instead of RBG as in Type0.
Type1 bitmap is divided into three parts
1. Subset Information :- UE can decode the subset used by eNodeB from this field.
Number of bits used for subset information can be calculated from the formula
explained above.
2. Shift :- This 1 bit in the bitmap ensures whether eNodeB has used the shift or not.
Value 1 maps to shift is used and 0 otherwise.
3. Actual Resource Assignment :- Each bit of the bitmap represents the RB allocation
within the subset calculated from subset information.
Why Shift is needed :Shift is required to cover or allocate all the RB's within a subset.
Let's take the same example:As we have already calculated the number of RB's in each subset for 20 Mhz system.
RB's in subset 0 = 28 (calculated above)
Total number of RB's that can be given from a subset can be calculated from the
formula in spec 36213 sec 7.1.6.2 as

NRB = ceil (NRBDL / P) ceil(log2(P)) - 1


As P = 4 ( Number of subsets)
NRB = 25 - 2 - 1

= 22
Now total number of RB's in subset 0 is 28 but we can allocate only 22 from
the bitmap. So to avoid the situation of allocating the same RB's from a
subset, shift is used.
Amount of shift needed = Total number of RB's in a subset Total number of RB's which can be given
= 28 - 22
=6
How shift is used in the system:Lets consider an Example of 20 Mhz(100 RB system)
RBG and RB mapping of subset 0 will look like this
These are the total number of RB's available in subset 0.
As we have calculated above,
Amount of shift needed for subset0 = 6
If shift bit is 0
RB's which can be used from subset 0 are shown in yellow below:If shift bit is 1
RB's which can be used from subset 0 are shown in yellow below:-

Lets take an example of mapping of bitmap information with the resources


available :-

Suppose the downlink bandwidth is 20 Mhz ( 100 RB's system )


As per spec 36213 distribution of RB's in each subset after the calculations explained
above will look like this.RB's are mentioned with their indexes in the actual system.
From the bitmap it is clear that , 2 bits are used for subset information. 01 corresponds
that subset 1 is used.
1 bit is used for shift, 0 represents shift is not used. So all the RB's shown in yellow are
available for current allocation.
Actual resource assignment will contain 22 bits where each bit represents 1 RB of
subset mentioned.

According to spec, MSB of the bitmap will always point to the RB with the lowest
frequency.
Each bit with value 1 in RB coding bitmap shows that RB is allocated by eNodeB.
Important Points about Type1 Allocation :It helps in achieving granularity. Now the allocation happens at RB level, so resources
won't be wasted as in Type0 allocation.
As you can see the RB's allocated from subset 1 are distributed in frequency.In one
subset eNodeB can allocate RB's like RB index 4 and RB index 52 which helps in
achieving frequency diversity.

All about PDCCH and CCE allocation

PDCCH ( Physical downlink Control Channel


) :- This channel carries the control information about the data being transmitted on

the current subframe and the information about the resources which UE need to use for
the uplink data. That means it is mandatory for the UE to decode it successfully if it
wants to send some data or receive something.
After knowing PDCCH, I personally feel that it is the heart of LTE . So we should try to
understand it completely that:What information it carries?
Where it carries the information?
And for whom it carries the information?
PDCCH carries a message called DCI ( Downlink Control Information ) which includes
resource assignments for a UE or group of UE's. EnodeB can transmit many DCI's or
PDCCH's in a subframe. Actually enodeB need to send a lot of parameters to the UE for
its operation but there may be the cases that some information is not required for a
particular UE.
For Example:- Some UE does not support MIMO ( Multiple Input Multiple Output ), so
for that UE there is no need to send the MIMO related parameters because they will
increase the signalling overhead.
There comes in the picture the different formats for sending the information which are
called DCI formats. Even we would not like to have so many formats because they will
increase the complexity. So to cover the most useful cases we have following DCI
formats:DCI format 0 is used for uplink allocation, all other formats are used for allocating the
resources in downlink.

Format 0 for transmission of resources to UE for sending their uplink data

Format 1 for downlink allocation of resources for Single Input Multiple Output
(SIMO)case
Format 1A for downlink allocation of resources for SIMO operation or allocating a
dedicated preample signature to a UE for random access
Format 1B for transmission control information of Multiple Input Multiple Output
(MIMO) rank 1 based compact resource assignment
Format 1C for very compact transmission of PDSCH assignment
Format 1D same as format1B with additional information of power offset
Format 2 and Format2A for transmission of DL-SCH allocation for closed and open loop
MIMO operation, respectively
Format 3 and format3A for transmission of TPC command for an uplink channel
We will explain the structure of each format later with their sizes and thorough
explanation of their specific use.
Allocation of resources happens in terms of CCE ( Control Channel Elements ).
1 CCE = 9 continuous REG's ( Resource element Group )
1 REG = 4 RE ( Resource Element )

CCE allocation for PDCCH :PDCCH uses the resources present in first n OFDM symbols where
n - Value present in PCFICH ( Number of OFDM symbols )
So the number of CCE's present to transmit the control information will be variable
depending on the

PCFICH value
Bandwidth of the system from 1.4 Mhz to 20 Mhz.
Number of antenna ports present which in turn will effect the reference signals present.
Lets take an example for the number of CCE available calculation:Step -1 :- We need to find the total number of RE's available in first n OFDM symbols
where n is coming from the value of PCFICH.
Suppose n = 3
Total RE's = n * x * y
n - PCFICH value
x - number of subcarriers in 1 RB
y - total number of RB's considering 10 Mhz bandwidth
Total RE's = 3 * 12 * 50 = 1800 RE's
RE's for PDCCH = Total RE's Number of RE's used for reference signals Number of RE's used in PHICH Number of RE's used in PCFICH
CCE's available for PDCCH = RE's for PDCCH /36

as 1 CCE = 36 RE's.
eNodeB uses the PDCCH for sending the control information for a particular UE or a
group of UE's. It means eNodeB uses the PDCCH for some broadcast information also
which is common for all the UE's. So to make that process easier eNodeB divided its
CCE's into two parts which we call them as search space:
1. Common search space :- It consists of CCE's which are used for sending the control
information which is common for all the UE's .Maximum number of CCE present in
common search space is 16. For Example:- Common search space CCE's are used by
eNodeB for sending the control information of SIB's which is common for all UE's.
2. UE specific search space :- CCE's belonging to UE specific space are used for sending
the control information for a particular UE only. That means information present on UE
specific CCE's can only be decoded by a specific UE.
eNodeB can also send the control information for a specific UE on the common search
space.
Lets suppose there are total 100 CCE's eNodeB has for sending the control information
combining both common space and UE specific search space.
Suppose enodeB has used 85th CCE number for a UE named ravan for sending his
control information.
Now how the Ravan will come to know which CCE he needs to decode for getting his
information. Either he needs to scan all 100 CCE's one by one and try to find the
information. This procedure will consume a lot of battery power for the UE. So to
simplify this process,
eNodeB has fixed some indexes for a particulat UE based on the rnti and the subframe,
so now ravan needs to find his control information only on those specific CCE indexes.

How eNodeB calculate those CCE indexes for


a UE:First we should be familiar with some terms used in this procedure:

Aggregation Level :- It is defined as number of CCE's used for sending a control


information. Its values can be 1,2,4 and 8. Suppose for UE named ravan eNodeB is
using some DCI format whose size comes out to be 90 bits after applying the code rate.
Code rate:- It is mainly a physical layer funda for sending the information in a
redundant way such that chances of UE successfully decoding it gets increased.
As we know that :1 CCE = 36 RE's
1 RE = 2 bits ( For QPSK modulation)
4 bits( For 16 QAM )
6 bits ( For 64 QAM)

And eNodeB uses QPSK modulation technique for PDCCH ,


Number of bits in 1 CCE = 36 * 2 = 72 bits.
In the example for UE ravan eNodeb needs to send 90 bits , so it need to use
atleast 2 CCE's for the control information on PDCCH. It means it will send the control
information with aggregation level 2.

It is also possible that enodeB uses a higher aggregation level( more number of
CCE's) even if the bits transmitted on PDCCH are less. This happens when channel
conditions are bad , so to provide more redundant information to UE such that it can
decode the PDCCH.
PDCCH candidates :- Number of CCE indexes serached by a UE in a subframe for a
particular search space. These values are fixed by spec 36213 as mentioned in table :-

Search space
Aggregation
Type
level
1
2
UEspecific
4
8
4
Common
8

Size [in CCEs]


6
12
8
16
16
16

Number of
PDCCH
candidates
6
6
2
2
4
2

PDCCH Format :- There are four PDCCH formats available as shown below
The set of indexes searched by a UE depends on a formula given by spec as:where Yk is defined as

L - Aggregation level
A PDCCH consisting of n consecutive CCE's may only start on a CCE index fulfilling
i mod n = 0
where i = CCE number
For Example:eNodeB wants to allocate PDCCH for some UE or group of UE's on aggregation level 4 (
Means 4 CCE's are required), Then it can only allocate CCE's starting with indexes
which satisfies
(CCE index) mod 4 = 0

How to find CCE indexes on common search

space:-

As shown in table eNodeB uses only aggregation level 4 and 8 for the allocation in
common search space .
Maximum number of CCE's present in common search space is fixed as 16. If the total
number of CCE's available in the system are less than 16 for any bandwidth then all the
CCE's will be present in common search space.
The position of Common search space CCE's is always fixed starting from the first CCE
index.
For example:We have 100 CCE's belonging to PDCCH as shown above from CCE index 0 to 99.
As we know that starting CCE's are common search space CCE's , so in the diagram
green color CCE's are common search space CCE's from index 0 to 15.
Suppose eNodeB wants to allocate CCE's for SIB on common search space for
aggregation level 4
And we know that it should satisfy the formula
1. (CCE Index ) mod 4 = 0,
2. And from the table above , the number of PDCCH candidates ( starting CCE indexes)
for aggregation level 4 in common space can be 4.
By meeting the above two conditions 4 indexes will be supported by aggregation level 4
in common space as
CCE
CCE
CCE
CCE

index
index
index
index

0 - will contain consecutive CCE's from 0 to 3


4 - will contain consecutive CCE's from 4 to 7
8 - will contain consecutive CCE's from 8 - 11
12 - will contain consecutive CCE's from 12 -15

Similarly if eNodeB wants to allocate with aggregation level 8, then possible indexes
meeting the two conditions will be
CCE index 0 - will contain consecutive CCE's from 0 to 7
CCE index 8 - will contain consecutive CCE's from 8 to 15
As we know that UE does the blind PDCCH decoding , means it does not have any idea
about the aggregation level or DCI format used by the eNodeB. So a UE in common
space needs to make
(4 try in aggregation level 4 + 2 try in aggregation level 8 ) * DCI format supported for
common space

only small sizes DCI formats are supported in common search space as 0/1A/3/3A/ and
1C
so if enodeB supports 1A and 1C DCI formats, so UE needs to do 12 tries maximum to
decode its PDCCH information.

How to find the CCE indexes in UE specific


search space in a subframe:According to the formulas in spec 36213 as:The set of indexes searched by a UE in a subframe is:where Yk is defined as
if k =0 , Y-1 = RNTI value for that UE ( As given in spec 36213 sec 9.1.1 )
A = 39827
D = 65537
Lets take an example:Subframe number = 0
Aggregation level = 1
We know from the table above that for aggregation level 1, number of PDCCH
canditates ( CCE indexes) can be 6.
Yk = (A * Yk-1 ) mod D
k = subframe number
As k = 0
Yk-1 = RNTI value for that UE, lets suppose its 100.
Yk = (39827 * 100) mod 65537
= 50480
CCE index =
L = aggregation level
i = 0 to (Aggregation Level - 1)
Ncce = Number of CCE's available for PDCCH ( suppose 100)
m' = 0 to ( Number of PDCCH canditates -1 )
CCE index = 1 { (50480 + 0 ) mod (100/1)} + 0
= 80
So first CCE index for aggregation level 1 for this UE in subframe 0 will be 80.
Lets calculate next CCE index for the same UE in the same subframe.
Yk value changes with the subframe only so withion the subframe same value will be

used.
CCE index = 1 { ( 50480 + 1 ) mod ( 100 /1 )} + 0
= 81
Similarly you can calculate the remaining CCE indices for this UE in the current
subframe
Lets try to find the CCE indices for subframe 1 now with aggregation level 2:As we know that Yk value changes with subframe
Yk = (A * Yk-1) mod D
= (39827 * 50480) mod 65537
= 53948
Yk-1 will be the value calculated for subframe 0
For aggregation level two also
m' will be 0 to 5 as number of PDCCH candidates are 6 for aggregation level 2
CCE index = 2 {(53948 + 0) mod (100/2)} + 0
=96
As in Aggregation level 2, two CCE's will be allocated for the same PDCCh candidate
Second CCE will be = 2{(53948 +0)mod (100/2)} + 1
= 97
So first CCE index for this UE in subframe 1 for aggregation level 2 will be 96. This
PDCCH candidate will contain 2 CCE's with indexes 96 and 97.
In similar ways UE can find the CCE indexes available in all subframes for the different
aggregation levels.

CCE Allocation Examples:-

If terminal A is using the CCE's 16 to 23 then terminal B cannot be addressed on


Aggregation level 4 as the CCE's are already blocked by terminal A.
We can also notice that, CCE's 24- 31 belongs to both of the UE's PDCCH candidate set
for aggregation level 8. That means overlap can also happen but eNodeB can actually
use it for one terminal either A or B.
For point 1 like case, common search space CCE's can be used to resolve the
contention. This is also another inportant use of common search space.
It is also clear that first 16 CCE's are used for common search space in both
aggregation level 4 and 8.

How EnodeB decides which DCI Format to

use:-

It is decided by enodeB on the basis of transmission mode and the RNTI type used for
that particular PDCCH.
RNTI types:

SI- RNTI :- Used for transmission of system information messages.


RA-RNTI :- Used for PRACH responses.
P-RNTI :- Used for the paging messages
C-RNTI :- Used for the transmission to a specific UE after RACH.
T-CRNTI :- Mainly used during Rach.
There are tables present in spec 36213 in sec 7.1 which describes which format to use.
I am consolidating that information from spec in a easy way to understand.
Usually all the common information gets scheduled in common search space with the
CRC scrambled with all RNTI's except CRNTI. We use DCI format 1A or 1C irrespective
of Transmission mode.
Please find the table for the mapping :-

PDCCH order is also transmitted with DCI format 1A.

How EnodeB decides the Aggregation Level to


use :It is decided on the basis of size of DCI and the CQI ( channel quality indicator ) value
received in uplink. The size of different DCI formats is defined in spec. After selecting
the DCI format we know the number of bits needs to send on PDCCH after applying the
code rate.
As we know that in 1 CCE 72 bits can be transmitted as QPSK modulation is used in
PDCCH. After considering the DCI size and the CQI value, eNodeB decides the
aggregation level to use or the number of CCE's required for the control information for
this particulat DCI.

Blind Decoding of PDCCH by UE :UE does the blind decoding because:

UE does not have idea about the CCE's used by PDCCH


UE does not know the aggregation level used by eNodeB
UE do not have idea about the DCI format used by eNodeB
Steps followed by UE for the blind decoding of PDCCH:After each blind detection UE checks the CRC with the corresponding RNTI. If CRC is
decoded successfully with that RNTI, UE can find the DCI format from the payload size
and the RNTI in that PDCCH .

Important points about PDCCH :

ULSCH PDCCH or DCI format 0 which is used for uplink grant is scrambled with
Antenna selection mask . It is done to intimidate the UE about the antenna port it
needs to use for its transmission.
PDCCH shall be transmitted on the same set of antenna ports as PBCH.
PDCCH is transmitted in starting OFDM symbols to save battery at UE.
In one subframe or 1 ms , multiple DCI's needs to be send by eNodeB for sending the
data to different UE's.
For 1 UE, eNodeB can send multiple DCI's if it needs to send data and give uplink grant
in the same tick.
UE needs to keep on decoding CCE's if it is expecting more than one DCI's.
Posted 23rd May 2013 by Nitin Tayal

S-ar putea să vă placă și