Main Content

lteDCIEncode

Downlink control information encoding

Description

cw = lteDCIEncode(ue,dcibits) returns the vector resulting from downlink control information (DCI) processing of the input bit vector, dcibits, given the field settings in the structure, ue.

As described in TS 36.212 [1], Section 5.3.3, DCI processing involves CRC attachment with ue.RNTI masking of the CRC, convolutional coding, and rate matching to the capacity of the PDCCH format.

example

cw = lteDCIEncode(ue,dcibits,outlen) rate matches the output to outlen. For this syntax, ue.PDCCHFormat is ignored if present. The ability to request arbitrary output length makes this syntax useful for golden reference comparisons. Use this syntax for DCI encoding of PDCCH or EPDCCH transmissions.

example

Examples

collapse all

Perform DCI processing on an all-zero input. This processing results in an all-zero output when you set RNTI to 0.

Generate a dcibits input vector with zeros for a DCI format 1 message. enb is defined with 50 downlink RBs, 1 cell-specific reference signal antenna port, and FDD duplex mode.

enb = struct('NDLRB',50,'CellRefP',1,'DuplexMode','FDD');
dciInfo = lteDCIInfo(enb);
dcibits = zeros(dciInfo.Format1,1);

Define a ue parameter structure with PDCCH format 1 and RNTI set to 0.

ue = struct('PDCCHFormat',1,'RNTI',0);

Encode the DCI bits.

cw = lteDCIEncode(ue,dcibits);
cw(1:5)
ans = 5x1 int8 column vector

   0
   0
   0
   0
   0

For PDCCH format 1, the output vector length is 144. For this example, the output is an all-zero vector because the DCI bits were 0 and RNTI was set to 0.

Perform DCI processing on an all-zero input with RNTI set to 1. This processing results in a nonzero output when you set RNTI to 1.

Generate a dcibits input vector with zeros for a DCI format 1 message. enb is defined with 50 downlink RBs, 1 cell-specific reference signal antenna port, and FDD duplex mode.

enb = struct('NDLRB',50,'CellRefP',1,'DuplexMode','FDD');
dciInfo = lteDCIInfo(enb);
dcibits = zeros(dciInfo.Format1,1);

Define a ue parameter structure with PDCCH format 1 and RNTI set to 1.

ue = struct('PDCCHFormat',1,'RNTI',1);

Encode the DCI bits.

cw = lteDCIEncode(ue,dcibits);
cw(1:10)
ans = 10x1 int8 column vector

   0
   0
   0
   0
   0
   0
   0
   1
   0
   0

For PDCCH format 1, the output vector length is 144. For this example, with RNTI set to 1, the output vector is not all-zeros.

Perform DCI processing on an all-zero input. Set the output length to 100 bits.

Define enb with 50 downlink RBs, 1 cell-specific reference signal antenna port, and FDD duplex mode. Use lteDCIInfo to determine DCI message lengths for the defined configuration. Generate a dcibits input vector with zeros for a format 1 DCI message.

enb = struct('NDLRB',50,'CellRefP',1,'DuplexMode','FDD');
dciInfo = lteDCIInfo(enb);
dcibits = zeros(dciInfo.Format1,1);

Define a ue parameter structure with PDCCH format 1 and RNTI set to 0.

ue = struct('PDCCHFormat',1,'RNTI',0);

Encode the DCI bits.

cw1 = lteDCIEncode(ue,dcibits);
size(cw1)
ans = 1×2

   144     1

Encode the DCI bits again, setting the output length to 100 bits.

cw2 = lteDCIEncode(ue,dcibits,100);
size(cw2)
ans = 1×2

   100     1

The output vector length for cw2 is 100, rather than the encoded PDCCH format 1 length of 144 bits in cw1, as expected for the configuration.

Use the DCI encoding function, lteDCIEncode, to code a DCI for transmission on EPDCCH. The required size is output by the lteEPDCCHIndices function and defined by info.EPDCCHG.

Specify the cell-wide settings in parameter structure enb.

enb.NDLRB = 6;
enb.NSubframe = 0;
enb.NCellID = 0;
enb.CellRefP = 1;
enb.CyclicPrefix = 'Normal';
enb.DuplexMode = 'FDD';
enb.NFrame = 0;
enb.CSIRSPeriod = 'Off';
enb.ZeroPowerCSIRSPeriod = 'Off';

Specify the channel transmission configuration in parameter structure chs.

chs.ControlChannelType = 'EPDCCH';
chs.SearchSpace = 'UESpecific';
chs.EnableCarrierIndication = 'Off';
chs.EnableMultipleCSIRequest = 'Off';
chs.EnableSRSRequest = 'Off';
chs.NTxAnts = 1;
chs.EPDCCHECCE = [2 3];
chs.EPDCCHType = 'Localized';
chs.EPDCCHPRBSet = 4:5;
chs.EPDCCHStart = 2;
chs.EPDCCHNID = 0;
chs.PDCCHFormat = 1;
chs.RNTI = 1;
dciInfo = lteDCIInfo(enb,chs);
dciin = zeros(dciInfo.Format1A,1);

Determine the EPDCCH data bit capacity, output by lteEPDCCHIndices in info.EPDCCHG.

[ind,info] = lteEPDCCHIndices(enb,chs);
info
info = struct with fields:
         EPDCCHG: 114
        EPDCCHGd: 57
         nEPDCCH: 114
           NECCE: 8
     NECCEPerPRB: 4
    NEREGPerECCE: 4
     EPDCCHPorts: 4

Encode the DCI bits.

cw1 = lteDCIEncode(chs,dciin);
size(cw1)
ans = 1×2

   144     1

Encode the DCI bits again, setting the output length to info.EPDCCHG bits.

cw2 = lteDCIEncode(chs,dciin,info.EPDCCHG);
size(cw2)
ans = 1×2

   114     1

The output vector length for cw2 is 114, rather than the encoded format 1A length of 144 bits in cw1, as expected for the configuration.

Input Arguments

collapse all

Parameter structure for DCI processing, specified as a structure that must have these fields.

Parameter FieldRequired or OptionalValuesDescription
PDCCHFormatRequired

0, 1, 2, 3

PDCCH format

RNTIRequired

0 (default), scalar integer

Radio network temporary identifier (RNTI) value (16 bits)

DCI message bit vector, specified as a column vector. dcibits are the DCI processing input bits to be transmitted on a single PDCCH.

Data Types: double | int8

Output vector length, specified as a nonnegative scalar integer.

Output Arguments

collapse all

Output vector resulting from DCI processing, returned as a column vector. cw is the result of DCI processing the input vector, dcibits. Depending on the function syntax used, the length of cw is either:

  • 72*2ue.PDCCUFormat elements, where 2ue.PDCCUFormat represents the number of control channel elements (CCE) and one CCE is 72 bits.

  • Rate matched to outlen.

Data Types: int8

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.

Version History

Introduced in R2013b