PDCCH

Physical Downlink Control Channel contains control information for the downlink data to be sent to UE in the current subframe and UL grants for the UE’s that want to send uplink data.

PDCCH occupies first 1, 2 or 3 symbols of a subframe(except in case of 1.4MHz bandwidth supported when PDCCH can occupy 4 OFDM symbols). Here 1,2 or 3 the exact number is given in PCFICH channel which occupies first symbol of a subframe. 1 advantage of allocating PDCCH at the start of a subframe is that if a UE does not get scheduled it can switch off it’s receiver circuitry for some time of the subframe.

PDCCH carries DCI(Downlink control information) message. Now, how these DCI messages are coded and mapped to REs at eNB side is a complex procedure. Similarly how the messages are decoded at UE side needs to be understood. First, I’ll explain the flow followed at each side and then we’ll understand the details of the flow.

At eNb(sender side):-

  1. Find the total number of RE’s available for PDCCH allocation
  2. From RE’s find total number of CCEs available
  3. For a particular UE, generate a DCI message to be mapped onto PDCCH
  4. Find number of CCEs that can be allocated to this UE
  5. Decide CCE index
  6. Code this message to form coded DCI bits

At UE(receiver) side:-

  1. Process first symbol of first subframe. This is PCFICH channel.
  2. From 1. find how many symbols are used for PDCCH.
  3. Calculate CCE index for PDCCH.
  4. Decode PDCCH and find DCI.
  5. From DCI, find location of PDSCH and decode it.

Now, lets get into details. Before explaining the steps I’ll first explain the basic terms that will be used. First let us understand what is a CCE. To carry a PDCCH, multiple consecutive CCE’s (Control Channel Elements)are allocated.

A CCE = 9 consecutive REG’s(Resource Element Group).

A REG = 4 RE’s.

The number of CCE’s in a PDCCH transmission depends on the PDCCH format. PDCCH format is a term that represents the number of bits to be transmitted.

PDCCH format         No. of CCE’s       No. of bits

0                                    1                       72

1                                    2                      144

2                                    4                       288

3                                    8                        576

Table 1.

Let us see how no. of bits are calculated from PDCCH format.

For PDCCH format = 0,

no. of bits = No. of CCE * no. of REG in a CCE * No. of RE in a REG * no. of bits in a RE = 1*9*4*2( Since eNodeB uses QPSK modulation) =  72 bits. Similarly, we can find for other formats.

eNB cab also use PDCCH to send control information to all UEs i.e. for broadcasting purpose. To simplify the procedure of decoding PDCCH, CCEs are divided into 2 types of search spaces:-

1. Common search space– It is used for control information that is to be sent to all UEs. Max number of CCE’s available in common search space is 16.

2. UE specific search space– It contains CCE’s that are used to send information to a particular UE.

Aggregation Level defines the number of  consecutive CCEs used for PDCCH allocation to a UE.

Search space Number of PDCCH candidates
Type Aggregation level Size [in CCEs]
UE-specific 1 6 6
2 12 6
4 8 2
8 16 2
Common 4 16 4
8 16 2

Table 2.

A term PDDCH candidate is used in the table. A PDCCH candidates are the number of CCE indices searched by a UE in a subframe for a particular search space. Now you can map AL, PDCCH candidates and CCEs. For ex, if AL is 8 in UE specific search space, 2 PDCCH candidates are used, this implies 2  groups of CCEs is used each containing 8 consecutive CCEs, hence, total CCE’s = 8*2 = 16.

Now let us move to explaining the details of steps.

At  eNb:-

1. Find the total number of RE’s available for PDCCH allocation:-

No. of RE’s for PDCCH  = Total RE’s – (No. of RE’s for PHICH + No. of RE’s for PCFICH+ No. of RE’s for reference signals). Now, lets see how the total RE’s are calculated. Total RE’s here refers to all RE’s in first ‘n’ OFDM symbols, where n is the value in PCFICH. Total RE’s in first ‘n’ OFDM symbols = n* total number of RB’s *number of subcarrires in 1 RB.

2. From RE’s find total number of CCE’s available:-

As discussed, number of CCE = RE’s/36. These are total CCE’s for all the UE’s.

3. For a particular UE, generate a DCI message to be mapped onto PDCCH:-

eNb can send many PDCCH/DCI in a subframe. Depending on the purpose of control message( which can be different for different UE’s, for ex, a UE may support SISO mode whereas other may support MIMO mode), different DCI formats are supported. A DCI message will contain all the information necessary to identify the resources required to decode PDSCH and decode it. DCI formats:-

  • Format 0 for transmission of Uplink Shared Channel (UL-SCH) allocation. i.e. for providing ul grants.
  • Format 1 for transmission of DL-SCH allocation for Single Input Multiple Output (SIMO) operation
  • Format 1A for compact transmission of DL-SCH allocation for SIMO operation or allocating a dedicated preamble 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 Format 3A for transmission of TPC command for an uplink channel.

How eNB decides which DCI format to use for this UE is governed by RNTI type and transmission mode. Following table contains this information. dci_assignment1 According to the DCI format, a DCI message is generated that contains all the information mentioned earlier.

4. Find number of CCEs that can be allocated to this UE:-

For each DCI, number of bits that can be sent in that DCI is fixed. According to the number of bits, number of CCEs and the corresponding PDCCH format is decided as given in table 1. For ex, if size of a DCI format is 80 then according to the table, 2 CCEs will be used. Generally this mapping is available at the init time. It is also possible that eNB allocates more number of CCEs than required by the DCI format. This is done dynamically later when we get information from UE. Like if channel conditions are reported bad, mac will provide redundant bits to UE in the PDCCH to decode information by soft combining or on receiving RI(Rank indicator) from UE, eNB can decide number of CCE for that UE.

Rank Indicator is an indicator telling how well multiple antennas work i.e. an indicator of how much interference is there between the antennas. 

5. Decide CCE index:-

eNodeB has fixed some indices for a particular UE based on the rnti and the subframe. In Common Search Space- 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, then it can only allocate CCE’s starting with indexes which satisfies (CCE index) mod 4 = 0 Also from table 2, number of PDCCH candidates for AL 4 are 4, hence, 4 indices will be supported in common space as

CCE index 0 – will contain consecutive CCE’s from 0 to 3

CCE index 4 – will contain consecutive CCE’s from 4 to 7

CCE index 8 – will contain consecutive CCE’s from 8 to 11

CCE index 12 – will contain consecutive CCE’s from 12 to15

Similarly if eNodeB wants to allocate with aggregation level 8, then possible indices 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

In UE specific Search Space– As per the specifications following formula is used to determine the CCE indices for a UE:- pdcch formula-page-001 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 )

Yk = (A * Yk-1 ) mod D

k = subframe number

A = 39827

D = 65537

As k = 0 Yk-1 = RNTI value for that UE, lets suppose its 100.

Ex, Yk = (39827 * 100) mod 65537 = 50480

Let AL= 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. To find next index only value of m i.e. PDCCH candidate changes to 1. Similarly, eNB can find all CCE indices for a UE in it’s AL.

It can happen that candidate set of indices for 2 or more UE’s can coincide. But in that case, eNB can use it for only 1 UE.

6. Code this message to form coded DCI bits:-

A 16 bit CRC is added to the DCI message formed. The CRC is then masked with an RNTI according to the owner or usage of PDCCH. If the PDCCH is for a specific UE, the CRC will be masked with a UE unique identifier, for example a Cell-RNTI (C-RNTI). If the PDCCH contains paging information, the CRC will be masked with a paging indication identifier i.e. Paging-RNTI (P-RNTI). If the PDCCH contains system information, a system information identifier i.e. a system information-RNTI (SI-RNTI) will be used to mask the CRC.

At UE side:-

UE does blind decoding of PDCCH because:-

  • UE does not have idea about the CCE’s used by PDCCH
  • UE does not know the aggregation level used by eNodeB
  • UE have no information about the DCI format used by eNodeB

i.e. the UE is not informed about the location of its PDCCH. It finds its PDCCH by monitoring a set of PDCCH candidates in every subframe. This is referred to as blind decoding.

  1. Process first symbol of first subframe:

This is PCFICH channel. By decoding this UE comes to know the number of symbols used for PDCCH.  

2.  Find the number of RE’s used for PDCCH:- This is calculated using the same formula as used at eNB. No. of RE’s for PDCCH  = Total RE’s – (No. of RE’s for PHICH + No. of RE’s for PCFICH+ No. of RE’s for reference signals). From RE’s total CCE’s can be calculated.    

 3. Calculate CCE index for PDCCH:-  

UE follows the same procedure as used at eNB. As discussed earlier-

For AL 4,

(CCE index) mod 4 = 0 Also from table 2, number of PDCCH candidates for AL 4 are 4, hence, 4 indices will be supported in common space as

CCE index 0 – will contain consecutive CCEs from 0 to 3

CCE index 4 – will contain consecutive CCEs from 4 to 7

CCE index 8 – will contain consecutive CCEs from 8 to 11

CCE index 12 – will contain consecutive CCEs from 12 to15

For AL 8, possible indices will be

CCE index 0 – will contain consecutive CCEs from 0 to 7

CCE index 8 – will contain consecutive CCEs from 8 to 15

As UE 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. To find CCE indices in UE specific search space, UE applies the same formula as applied at eNB.  

 4.  Decode PDCCH and find DCI:-

Now, if after decoding the PDCCH candidates, UE finds no CRC error, UE can decode the DCI.    

 5. From DCI, find location of PDSCH and decode it.

Published by:

Neha Katyal

I am a research enthusiast, a software developer, a passionate writer and a seeker. From researching on various aspects of software design, to designing and developing 4G/5G algorithms, everything excites me. Besides my inclination towards software, I have a strong interest in spirituality. I am a seeker; learning yoga, meditation, aura cleansing, Vedic astrology, reading Vedic scriptures that can bring me closer to the ultimate truth, are a few things that has formed an integral part of my life. Apart from these, writing, reading fiction and sketching are the places where I find my home. I cannot just pass a bookstore, I cannot come out of a storm until I write a poem, I cannot admire an actor/actress until I sketch their portrait. Yes, I can be called as a 'multipotentialite'. I love to learn a lot, travel, imagine, read, write, draw, design, code, engage in dhyana and yog, serve others, spend time with family. Because, I feel, life is all about learning, falling, rising, feeling, enjoying every moment :-)

Categories LTE, NB-IoT8 Comments

8 thoughts on “PDCCH”

  1. I have some questions about RACH and CCE. what means of this parameters?
    Number of UL grants per RAR = 3
    Number of CCEs allocated for PDCCH = 16
    Number of CCEs per PDCCH = 4
    How many users in step2 and step4(in RACH) can get resources in every subframe ?
    thanks

    Like

    1. Hi,

      Sorry for late reply.
      For RACH part, I haven’t studied RACH in depth. I think I should not answer this, until I understand deeply about it.
      For PDDCH part, I feel, statements are quite vague.
      As per my understanding, ‘number of cce per PDCCH’ should mean number of CCE used in a PDCCH transmission by a user. This depends on PDCCH format. So, if it’s 4, then PDCCH format should be 2.
      And ‘Number of CCEs allocated for PDCCH’ should mean total number of CCE’s that are available in the system for PDCCH region.
      I hope it helps.

      Thanks,
      Neha

      Like

  2. Hi Neha , I have gone through PDCCH allocation and blind decoding… I must say , your explanation skills are awesome.. I also I m eager to learn all your blogs like IOT & LTE , RRC conn & Bearers ,etc…

    I think you work on LTE + Machine learning + Future technology……

    Actually this exactly my interest & I m exploring this field. Can you pls give your Email ID or contact , I wish some guidance from you!! I have been Working on RF-Telecom-2G-3G-4G since 9 years.

    Like

    1. Hi Ravi,

      Thank you very much for appreciating the blog. This boosts morale.

      I’ve sent you a mail. You can connect through it. Though, I am 4 years experienced, I hope I’ll be of help. 🙂

      Thanks,
      Neha

      Like

      1. Hi Bijay,
        I have not pasted anything from techplayon.
        Please check the published date of this post and date of the post on techplayon.
        My blog came way earlier than that blog. And infact, I’ve contributed my article on techplayon.
        Thanks,
        Neha

        Like

  3. Hi Neha..i have one query, for UE Specific search space, UE does blind decoding only for 2 DCI formats..why?
    How UE will decode if enode is transmitting using other DCI formats?

    Like

Leave a comment