Documentation

ltePDCCHSearch

PDCCH downlink control information search

Syntax

  • [dcistr,dcibits] = ltePDCCHSearch(enb,chs,softbits)
    example

Description

example

[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.

Examples

collapse all

Get DCI Message Structure and Bits

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}
decDCIFormat = decDCI.DCIFormat
txDCIFormat = rmc.PDSCH.DCIFormat
decDCI = 

           DCIFormat: 'Format1'
                 CIF: 0
      AllocationType: 1
          Allocation: [1x1 struct]
           ModCoding: 14
              HARQNo: 0
             NewData: 1
                  RV: 0
            TPCPUCCH: 0
            TDDIndex: 0
    HARQACKResOffset: 0


decDCIFormat =

Format1


txDCIFormat =

Format1

Get Two DCI Messages

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. Becasue 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. Demonstate 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.

rxDCI = ltePDCCHSearch(enb,chs,pdcchmux)
rxDCI{:}
rxDCI = 

    [1x1 struct]    [1x1 struct]


ans = 

           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 = 

         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

enb — Cell-wide settingsstructure

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

Parameter FieldRequired or OptionalValuesDescription
NDLRBRequired

Scalar integer (6,...,110). Standard bandwidth values are 6, 15, 25, 50, 75, and 100. NDLRB also accepts the standardized bandwidths in string format from the set {'1.4MHz', '3MHz', '5MHz', '10MHz', '15MHz', '20MHz'}.

Number of downlink (DL) resource blocks (RBs)

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

NULRBRequired

Positive scalar integer

Number of uplink (UL) resource blocks (RBs).

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

NSubframeRequired

Nonnegative 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

chs — User-equipment-related channel configurationstructure

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

RNTI — Radio network temporary identifier1 (default) | numeric scalar

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

Data Types: double

EnableCarrierIndication — Option to enable carrier indication'Off' (default) | 'On' | optional

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

EnableSRSRequest — Option to enable SRS request'Off' (default) | 'On' | optional

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

EnableMultipleCSIRequest — Option to enable multiple CSI requests'Off' (default) | 'On' | optional

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

NTxAnts — Number of UE transmission antennas1 (default) | 2 | 4 | optional

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

softbits — Input vector of soft bitsnumeric column vector

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

Data Types: double

Output Arguments

collapse all

dcistr — Downlink control information (DCI) message structurescell array of structures

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.

DCIFormat — DCI format type'Format0' | 'Format1' | 'Format1A' | 'Format1B' | 'Format1C' | 'Format1D' | 'Format2' | 'Format2A' | 'Format2B' | 'Format2C' | 'Format3' | 'Format3A' | 'Format4'

DCI format type, specified as a string. 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'
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
CQIReq1-bit CQI request
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.

'Format1'DCIFormat    -'Format1'
AllocationType

1-bit

Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

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
TDDIndex2-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.

'Format1A'DCIFormat     -'Format1A'
AllocationType1-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
TDDIndex2-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.

'Format1B'DCIFormat     -'Format1B'
AllocationType1-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
TPMI         2 bits for two antennas

4 bits for four antennas

PMI information
PMI          1-bitPMI confirmation
TDDIndex2-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.

'Format1C'DCIFormat     - 'Format1C'
Allocation   Varies Resource block assignment/allocation
ModCoding     5-bits Modulation and coding scheme
'Format1D'DCIFormat     - 'Format1D'
AllocationType1-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
TPMI         2 bits for two antennas

4 bits for four antennas

Precoding TPMI information
DlPowerOffset1-bit Downlink power offset
TDDIndex2-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.

'Format2'DCIFormat     - 'Format2'
AllocationType1-bit Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

Allocation   Varies Resource block assignment/allocation
TPCPUCCH2-bits PUCCH TPC command
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
PrecodingInfo3 bits for two antennas

6 bits for four antennas

Precoding information
TDDIndex2-bitsFor TDD config 0, this field is not used.

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

Not present for FDD.

'Format2A'DCIFormat     -'Format2A'
AllocationType1-bit Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

Allocation   Varies Resource block assignment/allocation
TPCPUCCH     2-bits PUCCH TPC command
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
PrecodingInfo0 bits for two antennas

2 bits for four antennas

Precoding information
TDDIndex2-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.

'Format2B'DCIFormat - 'Format2B'
AllocationType1-bit Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

AllocationVaries Resource block assignment/allocation
TPCPUCCH2-bits PUCCH TPC command
HARQNo3 bits (FDD)

4 bits (TDD)

HARQ process number
ScramblingId1-bitScrambling identity
ModCoding1   5-bits Modulation and coding scheme for transport block 1
NewData1     1-bit New data indicator for transport block 1
RV12-bits Redundancy version for transport block 1
ModCoding25-bits Modulation and coding scheme for transport block 2
NewData21-bit New data indicator for transport block 2
RV22-bits Redundancy version for transport block 2
TDDIndex2-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.

'Format2C'DCIFormat-'Format2C'
AllocationType1-bit Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

AllocationVaries Resource block assignment/allocation
TPCPUCCH2-bits PUCCH TPC command
HARQNo3 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
RV12-bits Redundancy version for transport block 1
ModCoding25-bits Modulation and coding scheme for transport block 2
NewData21-bit New data indicator for transport block 2
RV22-bits Redundancy version for transport block 2
TDDIndex2-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.

'Format2D'DCIFormat-'Format2D'
AllocationType1-bit Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

AllocationVaries Resource block assignment/allocation
TPCPUCCH2-bits PUCCH TPC command
HARQNo3 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
RV12-bits Redundancy version for transport block 1
ModCoding25-bits Modulation and coding scheme for transport block 2
NewData21-bit New data indicator for transport block 2
RV22-bits Redundancy version for transport block 2
REMappingAndQCL2 bits

PDSCH RE Mapping and Quasi-Co-Location Indicator

'Format3'DCIFormat- 'Format3'
TPCCommandsVaries TPC commands for PUCCH and PUSCH
'Format3A'DCIFormat- 'Format3A'
TPCCommandsVaries TPC commands for PUCCH and PUSCH
'Format4'DCIFormat- 'Format4'
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.

CQIReqVariesCQI request
SRSRequest2-bits SRS request
AllocationType1-bits Resource allocation header: non-hopping PUSCH resource allocation type 0, type 1
ModCoding5-bits Modulation, coding scheme, and redundancy version
NewData1-bits New data indicator
ModCoding15-bits Modulation and coding scheme for transport block 1
NewData11-bits New data indicator for transport block 1
ModCoding25-bits Modulation and coding scheme for transport block 2
NewData21-bits New data indicator for transport block 2
PrecodingInfo3 bits for two antennas

6 bits for four antennas

Precoding information

Data Types: char

Data Types: cell

dcibits — DCI message bitscell array of numeric vectors

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

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.

DCI messages are blindly decoded based on their lengths. The lengths and order in which they are searched for is provided by lteDCIInfo. If one or more messages have the same length, then the message format that is first in the list is used to decode the message. The other potential message formats are ignored. The function does not consider transmission mode (TM) during blind search, and no DCI message format is filtered based on transmission mode. This function does not search for format 3 and 3A (power adjustment commands for PUSCH and PUCCH).

Specifying Number of Resource Blocks

The number of resource blocks specifies the uplink and downlink bandwidth. The LTE System 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. "Multiplexing and channel coding." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.

Introduced in R2014a

Was this topic helpful?