Downlink control information decoding


  • [dcibits,crc_rnti] = lteDCIDecode(dcilen,softbits)
  • [dcibits,crc_rnti] = lteDCIDecode(ue,softbits)



[dcibits,crc_rnti] = lteDCIDecode(dcilen,softbits) recovers a downlink control information (DCI) message vector of length dcilen from the input vector of floating-point soft bits, softbits. lteDCIDecode performs the inverse DCI processing operation as specified in section 5.3.3 of [1], rate recovery, and Viterbi and CRC decoding. lteDCIDecode recovers the DCI message bit vector dcibits from an input vector of received soft bits previously coded by the DCI processing. lteDCIDecode also returns crc_rnti, the 16-bit integer result of the CRC decoder which is equivalent to the RNTI value needed to mask (XOR) the CRC for no CRC error. This fact is used by the system to identify a DCI message with a specific ue. The function has two different ways of specifying the length of the DCI information payload to be recovered.

    Note:   Our implementation assumes symmetric link bandwidth unless you specifically assign different values to NULRB and NDLRB. If the number of resource blocks is only initialized in 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 neither, NULRB or NDLRB, is defined.

[dcibits,crc_rnti] = lteDCIDecode(ue,softbits) recovers a DCI message vector from the input vector of floating-point soft bits softbits. In this case, the length of the recovered message is defined through the ue structure in terms of DCI message format and the bandwidth.


collapse all

Decode DCI Message

Perform DCI decoding on a sample codeword.

dciInfo = lteDCIInfo(struct('NDLRB',50));
dciBits = zeros(dciInfo.Format1,1);
cw = lteDCIEncode(struct('PDCCHFormat',1,'RNTI',10,'NDLRB',50),dciBits);
[dciBits,crcRnti] = lteDCIDecode(dciInfo.Format1,cw);

The first returned output is dcibits, the decoded vector of length 45. The second output, crc_rnti, has a value of 10, corresponding to the RNTI values used in CRC masking.

Input Arguments

collapse all

dcilen — Length of recovered DCI message vectorinteger

Length of recovered DCI message vector, specified as a positive integer.

Data Types: double

softbits — Floating-point soft bitsvector

Floating-point soft bits, specified as a column vector.

Data Types: double | int8

ue — DCI message format and bandwidthstructure

DCI message format and bandwidth, specified as a structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription

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

Number of downlink (DL) resource blocks (RBs)


Positive scalar integer

Number of uplink (UL) resource blocks (RBs)


'Format0', 'Format1', 'Format1A', 'Format1B', 'Format1C', 'Format1D', 'Format2', 'Format2A', 'Format2B', 'Format2C', 'Format2D', 'Format3', 'Format3A', 'Format4'

Downlink control information (DCI) format type string


1 (default), 2, 4

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


'FDD' (default), 'TDD'

Duplexing mode, specified as:

  • 'FDD' for Frequency Division Duplex or

  • 'TDD' for Time Division Duplex

Output Arguments

collapse all

dcibits — Recovered DCI message bit vectorvector

Recovered DCI message bit vector, returned as a column vector. The length of dcibits is defined though structure ue in terms of DCI message format and the bandwidth.

Data Types: int8

crc_rnti — 16-bit integer result of the CRC decodervector

16-bit integer result of the CRC decoder, returned as a column vector. crc_rnti is equivalent to the RNTI value that would need to mask (XOR) the CRC for no CRC error.

Data Types: uint32


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

Introduced in R2014a

Was this topic helpful?