Main Content

ltePDCCHSearch

PDCCH downlink control information search

Description

[dcistr,dcibits] = ltePDCCHSearch(enb,chs,softbits) recovers downlink control information (DCI) message structures, dcistr, and corresponding vectors of DCI message bits, dcibits, after blind decoding the multiplexed physical downlink control channels (PDCCHs) within the control region given by the softbits input vector, cell-wide configuration, enb, and UE-specific channel configuration, chs. For more information, see PDCCH Search Processing.

example

Examples

collapse all

Extract and decode the PDCCH symbols from the control region of a subframe grid created by the DL waveform generator, lteRMCDLTool. Use the blind search function, ltePDCCHSearch, to search the common and UE-specific spaces by demasking all PDCCH candidates with the configured RNTI.

Use a waveform generator to create a full subframe grid containing a reference PDSCH and associated DCI in UE-specific search space. Extract and decode all the PDCCH multiplex (control region) bits.

rmc = lteRMCDL('R.0');
[~,txGrid] = lteRMCDLTool(rmc,[1;0;0;1]);

pdcchSymbols = txGrid(ltePDCCHIndices(rmc));
rxPdcchBits = ltePDCCHDecode(rmc,pdcchSymbols);

Configure the UE-specific parameters that affect the DCI message lengths to match those of the reference UE.

ueConfig.RNTI = rmc.PDSCH.RNTI;
ueConfig.EnableCarrierIndication = 'Off';
ueConfig.EnableSRSRequest = 'Off';
ueConfig.EnableMultipleCSIRequest = 'Off';
ueConfig.NTxAnts = 1;

Use PDCCH blind search to find the DCI that schedules the PDSCH. Extract and display first DCI message structure from the search list. Compare the format of the DCI message returned in the previous step with the format used by the waveform generator.

[rxDCI,rxDCIBits] = ltePDCCHSearch(rmc,ueConfig,rxPdcchBits);

decDCI = rxDCI{1}
decDCI = struct with fields:
           DCIFormat: 'Format1'
                 CIF: 0
      AllocationType: 1
          Allocation: [1x1 struct]
           ModCoding: 14
              HARQNo: 0
             NewData: 1
                  RV: 0
            TPCPUCCH: 0
            TDDIndex: 0
    HARQACKResOffset: 0

decDCIFormat = decDCI.DCIFormat
decDCIFormat = 
'Format1'
txDCIFormat = rmc.PDSCH.DCIFormat
txDCIFormat = 
'Format1'

Map a pair of format 0 uplink and format 1A downlink grants into a UE-specific search space in the PDCCH multiplex. Use the blind search function to recover them. Because the search space is UE-specific, you can extend the messages to include the Release 10 SRS request field and a 2-bit CSI request field for the format 0 DCI. For simplicity, the example does not include any PDCCH channel processing steps.

Create a vector containing the control region PDCCH multiplex bits.

enb = lteRMCDL('R.0');
pdcchinfo = ltePDCCHInfo(enb);
pdcchmux = zeros(1,pdcchinfo.MTot);

Configure the UE-specific parameters to control the DCI and encoding.

chs = struct('RNTI',1,'PDCCHFormat',2);
chs.ControlChannelType = 'PDCCH';
chs.SearchSpace = 'UESpecific';
chs.EnableCarrierIndication = 'Off';
chs.EnableSRSRequest = 'On';
chs.EnableMultipleCSIRequest = 'On';
chs.NTxAnts = 1;

List the formats to create and get the UE-specific search space candidate locations in the PDCCH multiplex.

formats = {'Format0','Format1A'};
candidates = ltePDCCHSpace(enb,chs);

For each DCI format, create the DCI info bits and encode them for PDCCH mapping. Demonstrate setting of the ModCoding field to a nondefault value. Select a candidate to carry the target PDCCH.

for f = 1:length(formats)
    
    dciin = struct('DCIFormat',formats{f},'ModCoding',f);
    [dci,dcibits] = lteDCI(enb,chs,dciin);
    pdcch = lteDCIEncode(chs,dcibits);
    
    pdcchmux(candidates(f,1):candidates(f,2)) = pdcch;
end

Search PDCCH multiplex bits for any DCI messages directed at UE RNTI.

rxPdcchBits = 2*pdcchmux - 1;
rxDCI = ltePDCCHSearch(enb,chs,rxPdcchBits)
rxDCI=1×2 cell array
    {1x1 struct}    {1x1 struct}

rxDCI{:}
ans = struct with fields:
           DCIFormat: 'Format1A'
                 CIF: 0
      AllocationType: 0
          Allocation: [1x1 struct]
           ModCoding: 2
              HARQNo: 0
             NewData: 0
                  RV: 0
            TPCPUCCH: 0
            TDDIndex: 0
          SRSRequest: 0
    HARQACKResOffset: 0

ans = struct with fields:
         DCIFormat: 'Format0'
               CIF: 0
       FreqHopping: 0
        Allocation: [1x1 struct]
         ModCoding: 1
           NewData: 0
               TPC: 0
        CShiftDMRS: 0
          TDDIndex: 0
        CSIRequest: 0
        SRSRequest: 0
    AllocationType: 0

Input Arguments

collapse all

Cell-wide settings, specified as a structure with these fields.

Parameter FieldRequired or OptionalValuesDescription
NDLRBRequired

Scalar integer from 6 to 110

Number of downlink resource blocks (NRBDL)

For information on link bandwidth assignment, see Specifying Number of Resource Blocks.

NULRBRequired

Scalar integer from 6 to 110

Number of uplink resource blocks. (NRBUL)

For information on link bandwidth assignment, see Specifying Number of Resource Blocks.

NSubframeRequired

0 (default), nonnegative scalar integer

Subframe number

CellRefPRequired

1, 2, 4

Number of cell-specific reference signal (CRS) antenna ports

DuplexModeOptional

'FDD' (default), 'TDD'

Duplexing mode, specified as one of the following:

  • 'FDD' — Frequency division duplex (default)

  • 'TDD' — Time division duplex

Data Types: struct

User-equipment-related (UE-related) channel configuration, specified as a structure containing the following UE-specific fields.

Radio network temporary identifier value, specified as a numeric scalar.

Data Types: double

Option to enable carrier indication UE configuration, specified as 'Off' or 'On'. Default configuration is disabled. When enabled, 'On', the carrier indication field is present.

Data Types: char | string

Option to enable SRS request in the UE configuration, specified as 'Off' or 'On'. By default, EnableSRSRequest is disabled. When EnableSRSRequest is enabled ('On'), the SRS request field is present in UE-specific formats 0/1A for FDD or TDD and formats 2B/2C/2D for TDD.

Data Types: char | string

Option to enable multiple CSI requests in the UE configuration, specified as 'Off' or 'On'. By default, EnableMultipleCSIRequest is disabled. When EnableMultipleCSIRequest is enabled ('On'), the UE is configured to process multiple channel state information (CSI) requests from cells. Enabling multiple CSI requests affects the length of the CSI request field in UE-specific formats 0 and 4.

Data Types: char | string

Number of UE transmission antennas, specified as 1, 2, or 4. The number of UE transmission antennas affects the length of the precoding information field in DCI format 4.

Data Types: double

Data Types: struct

Input vector of soft bits, specified as a column vector.

Data Types: double

Output Arguments

collapse all

Downlink control information (DCI) message structures, returned as a cell array of structures. Each structure represents a successfully decoded DCI whose fields match fields of the associated DCI format. Each structure contains the fields associated with one or more decoded DCI messages. Because multiple PDCCHs can be transmitted in a subframe, the UE must monitor all possible PDCCHs directed at it. If more than one PDCCH is directed to the UE or is successfully decoded, dcistr contains that number of decoded DCI messages.

Each cell contains a structure with the fields associated with the DCI format of the received PDCCHs.

DCI format type, specified as a character vector. This table presents the fields associated with each DCI format as defined in TS 36.212 [1], Section 5.3.3.

DCI Formatsdciout FieldsSizeDescription
'Format0' DCIFormat-'Format0'
CIF0 or 3 bitsCarrier indicator field
FreqHopping1 bit PUSCH frequency hopping flag
AllocationVaries Resource block assignment/allocation
ModCoding5 bits Modulation, coding scheme, and redundancy version
NewData1 bit New data indicator
TPC2 bits PUSCH TPC command
CShiftDMRS3 bits Cyclic shift for DM RS
TDDIndex2 bits

For TDD config 0, this field is the Uplink Index.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

CSIRequest1, 2, or 3 bitsCSI request
SRSRequest0 or 1 bit

SRS request. This field can only be present in DCI formats scheduling PUSCH which are mapped onto the UE specific search space given by the C-RNTI

AllocationType1 bit

Resource allocation type, only present if NRBULNRBDL.

'Format1' DCIFormat     -'Format1'
CIF0 or 3 bitsCarrier indicator field
AllocationType

1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

Allocation    VariesResource block assignment/allocation
ModCoding     5 bitsModulation and coding scheme
HARQNo       

3 bits (FDD)

4 bits (TDD)

HARQ process number
NewData       1 bit New data indicator
RV            2 bits Redundancy version
TPCPUCCH      2 bits PUCCH TPC command
TDDIndex 2 bits

For TDD config 0, this field is not used.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

HARQACKResOffset2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

'Format1A' DCIFormat      -'Format1A'
CIF0 or 3 bitsCarrier indicator field
AllocationType 1 bit VRB assignment flag: 0 (localized), 1 (distributed)
Allocation    Varies Resource block assignment/allocation
ModCoding     5 bits Modulation and coding scheme
HARQNo       

3 bits (FDD)

4 bits (TDD)

HARQ process number
NewData       1 bitNew data indicator
RV            2 bits Redundancy version
TPCPUCCH      2 bits PUCCH TPC command
TDDIndex 2 bits

For TDD config 0, this field is not used.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

SRSRequest0 or 1 bit

SRS request. This field can only be present in DCI formats scheduling PUSCH which are mapped onto the UE specific search space given by the C-RNTI

HARQACKResOffset2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

'Format1B' DCIFormat      -'Format1B'
CIF0 or 3 bitsCarrier indicator field
AllocationType 1 bit VRB assignment flag: 0 (localized), 1 (distributed)
Allocation    Varies Resource block assignment/allocation
ModCoding     5 bits Modulation and coding scheme
HARQNo       

3 bits (FDD)

4 bits (TDD)

HARQ process number
NewData       1 bitNew data indicator
RV            2 bits Redundancy version
TPCPUCCH      2 bits PUCCH TPC command
TDDIndex 2 bits

For TDD config 0, this field is not used.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

TPMI         

2 bits for two antennas

4 bits for four antennas

PMI information
PMI           1 bitPMI confirmation
HARQACKResOffset2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

'Format1C' DCIFormat      - 'Format1C'
Allocation    Varies Resource block assignment/allocation
ModCoding      5 bits Modulation and coding scheme
'Format1D' DCIFormat      - 'Format1D'
CIF0 or 3 bitsCarrier indicator field
AllocationType 1 bit VRB assignment flag: 0 (localized), 1 (distributed)
Allocation    Varies Resource block assignment/allocation
ModCoding     5 bits Modulation and coding scheme
HARQNo       

3 bits (FDD)

4 bits (TDD)

HARQ process number
NewData       1 bitNew data indicator
RV            2 bits Redundancy version
TPCPUCCH      2 bits PUCCH TPC command
TDDIndex 2 bits

For TDD config 0, this field is not used.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

TPMI         

2 bits for two antennas

4 bits for four antennas

Precoding TPMI information
DlPowerOffset 1 bit Downlink power offset
HARQACKResOffset2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

'Format2' DCIFormat      - 'Format2'
CIF0 or 3 bitsCarrier indicator field
AllocationType 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

Allocation    Varies Resource block assignment/allocation
TPCPUCCH 2 bits PUCCH TPC command
TDDIndex 2 bits

For TDD config 0, this field is not used.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

HARQNo       

3 bits (FDD)

4 bits (TDD)

HARQ process number
SwapFlag      1 bitTransport block to codeword swap flag
ModCoding1    5 bits Modulation and coding scheme for transport block 1
NewData1      1 bit

New data indicator for transport block 1

RV1           2 bits Redundancy version for transport block 1
ModCoding2    5 bits Modulation and coding scheme for transport block 2
NewData2      1 bit New data indicator for transport block 2
RV2           2 bits Redundancy version for transport block 2
PrecodingInfo

3 bits for two antennas

6 bits for four antennas

Precoding information
HARQACKResOffset2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

'Format2A' DCIFormat      -'Format2A'
CIF0 or 3 bitsCarrier indicator field
AllocationType 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

Allocation    Varies Resource block assignment/allocation
TPCPUCCH      2 bits PUCCH TPC command
TDDIndex 2 bits

For TDD config 0, this field is not used.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

HARQNo       

3 bits (FDD)

4 bits (TDD)

HARQ process number
SwapFlag      1 bitTransport block to codeword swap flag
ModCoding1    5 bits Modulation and coding scheme for transport block 1
NewData1      1 bit New data indicator for transport block 1
RV1           2 bits Redundancy version for transport block 1
ModCoding2    5 bits Modulation and coding scheme for transport block 2
NewData2      1 bit New data indicator for transport block 2
RV2           2 bits Redundancy version for transport block 2
PrecodingInfo

0 bits for two antennas

2 bits for four antennas

Precoding information
HARQACKResOffset2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

'Format2B' DCIFormat  - 'Format2B'
CIF0 or 3 bitsCarrier indicator field
AllocationType 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

Allocation Varies Resource block assignment/allocation
TPCPUCCH 2 bits PUCCH TPC command
TDDIndex 2 bits

For TDD config 0, this field is not used.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

HARQNo

3 bits (FDD)

4 bits (TDD)

HARQ process number
ScramblingId 1 bitScrambling identity
ModCoding1    5 bits Modulation and coding scheme for transport block 1
NewData1      1 bit New data indicator for transport block 1
RV1 2 bits Redundancy version for transport block 1
ModCoding2 5 bits Modulation and coding scheme for transport block 2
NewData2 1 bit New data indicator for transport block 2
RV2 2 bits Redundancy version for transport block 2
HARQACKResOffset2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

'Format2C'DCIFormat-'Format2C'
CIF0 or 3 bitsCarrier indicator field
AllocationType 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

Allocation Varies Resource block assignment/allocation
TPCPUCCH 2 bits PUCCH TPC command
TDDIndex 2 bits

For TDD config 0, this field is not used.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

HARQNo

3 bits (FDD)

4 bits (TDD)

HARQ process number
TxIndication3 bitsAntenna ports, scrambling identity, and number of layers indicator
SRSRequestVariesSRS request. Only present for TDD.
ModCoding1    5 bits Modulation and coding scheme for transport block 1
NewData1      1 bit New data indicator for transport block 1
RV1 2 bits Redundancy version for transport block 1
ModCoding2 5 bits Modulation and coding scheme for transport block 2
NewData2 1 bit New data indicator for transport block 2
RV2 2 bits Redundancy version for transport block 2
HARQACKResOffset2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

'Format2D'DCIFormat-'Format2D'
CIF0 or 3 bitsCarrier indicator field
AllocationType 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

Allocation Varies Resource block assignment/allocation
TPCPUCCH 2 bits PUCCH TPC command
TDDIndex 2 bits

For TDD config 0, this field is not used.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

HARQNo

3 bits (FDD)

4 bits (TDD)

HARQ process number
TxIndication3 bitsAntenna ports, scrambling identity, and number of layers indicator
SRSRequestVariesSRS request. Only present for TDD.
ModCoding1    5 bits Modulation and coding scheme for transport block 1
NewData1      1 bit New data indicator for transport block 1
RV1 2 bits Redundancy version for transport block 1
ModCoding2 5 bits Modulation and coding scheme for transport block 2
NewData2 1 bit New data indicator for transport block 2
RV2 2 bits Redundancy version for transport block 2
REMappingAndQCL 2 bits

PDSCH RE Mapping and Quasi-Co-Location Indicator

HARQACKResOffset2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

'Format3' DCIFormat - 'Format3'
TPCCommands Varies TPC commands for PUCCH and PUSCH
'Format3A' DCIFormat - 'Format3A'
TPCCommands Varies TPC commands for PUCCH and PUSCH
'Format4'DCIFormat- 'Format4'
CIF0 or 3 bitsCarrier indicator field
AllocationVariesResource block assignment/allocation
TPC2 bits PUSCH TPC command
CShiftDMRS3 bits Cyclic shift for DM-RS
TDDIndex2 bits

For TDD config 0, this field is Uplink Index.

For TDD config 1–6, this field is the Downlink Assignment Index.

Not present for FDD.

CSIReqVariesCSI request
SRSRequest2 bits SRS request
AllocationType1 bit

Resource allocation header type 0 or type 1.

ModCoding5 bits Modulation, coding scheme, and redundancy version
NewData1 bitNew data indicator
ModCoding15 bits Modulation and coding scheme for transport block 1
NewData11 bitNew data indicator for transport block 1
ModCoding25 bits Modulation and coding scheme for transport block 2
NewData21 bit New data indicator for transport block 2
PrecodingInfo

3 bits for two antennas

6 bits for four antennas

Precoding information
'Format5'DCIFormat- 'Format5'
PSCCHResource6 bits

Resource for PSCCH

TPC1 bit

TPC command for PSCCH and PSSCH

FreqHopping1 bit

Frequency hopping flag

AllocationVaries

Resource block assignment and hopping resource allocation

TimeResourcePattern7 bits Time resource pattern
'Format5A'DCIFormat- 'Format5A'
CIF3 bitsCarrier indicator
FirstSubchannelIdx log2(NsubchannelSL)Lowest index of the subchannel allocation to the initial transmission
RIVfrom 0 to 13 bits, log2(NsubchannelSL×(NsubchannelSL+1)2)Resource indication value
TimeGap4 bits

Time gap between initial transmission and retransmission

SLIndex2 bitsSL SPS configuration index

Data Types: char

Data Types: cell

DCI message bits, returned as a cell array of one or more numeric vectors. Each vector contains the bit stream of a recovered DCI message, including any zero-padding. Each vector of bit values corresponds to successfully decoded DCI messages. For more information, see lteDCI.

Data Types: cell

More About

collapse all

PDCCH Search Processing

PDCCH search processing blindly decodes DCI messages based on their lengths. The lengths and order in which DCI messages are searched for is provided by lteDCIInfo. If one or more messages have the same length, the first message format in the list is used to decode the message. The other potential message formats are ignored. The ltePDCCHSearch function does not consider transmission mode (TM) during blind search, and no DCI message format is filtered based on transmission mode. It also does not search for format 3 and 3A (power adjustment commands for PUSCH and PUCCH). For more information on the association between transmission mode, transmission scheme, DCI format, and search space, see TS 36.213 [2], Section 7.1 and Table 7.1-5.

The UE is required to monitor multiple PDCCHs within the control region. The UE is informed only of the width, in OFDM symbols, of the control region within a subframe, and is not aware of the exact location of PDCCHs relevant to it. The UE finds the PDCCHs relevant to it by monitoring a set of PDCCH candidates, that is, a set of consecutive control candidate elements (CCEs) on which PDCCH can be mapped, in every subframe. For details, see ltePDCCHSpace. This process is referred to as blind decoding.

To simplify the decoding task at the UE, the whole control region is subdivided into common and UE-specific search spaces which the UE monitors (monitor implies attempting to decode each PDCCH). Each search space comprises 2, 4, or 6 PDCCH candidates whose data length depends on its corresponding PDCCH format. Each PDCCH must be transmitted on 1, 2, 4, or 8 CCE (1 CCE = 72 bits). The common search space is limited to only two aggregation levels, 4 and 8, while the UE-specific search space can have an aggregation level of 1, 2, 4, or 8.

All UEs within a cell monitor the common search space that carries control information common to all UEs. The common control information carries initial important information including paging information, system information, and random access procedures. The UE monitors the common search space by demasking each PDCCH candidate with different RNTIs, for example, P-RNTI, SI-RNTI, RA-RNTI and so on.

In the UE-specific search space, the UE finds the PDCCH relevant to it by monitoring a set of PDCCH candidates in every subframe. If no CRC error is detected when the UE demasks a PDCCH candidate with its RNTI (16-bit C-RNTI value), the UE determines that the PDCCH candidate carries its own control information.

The number and location of candidates within a search space is different for each PDCCH format. There are four PDCCH formats (0, 1, 2, or 3). If the UE fails to decode any PDCCH candidates for a given PDCCH format, it tries to decode candidates for another PDCCH format.

Specifying Number of Resource Blocks

The number of resource blocks specifies the uplink and downlink bandwidth. The LTE Toolbox™ implementation assumes symmetric link bandwidth unless you specifically assign different values to NULRB and NDLRB. If the number of resource blocks is initialized in only one link direction, then the initialized number of resource blocks (NULRB or NDLRB) is used for both uplink and downlink. When this mapping is used, no warning is displayed. An error occurs if NULRB and NDLRB are both undefined.

References

[1] 3GPP TS 36.212. “Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

[2] 3GPP TS 36.213. “Evolved Universal Terrestrial Radio Access (E-UTRA); Physical layer procedures.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

Version History

Introduced in R2014a