Main Content

lteEPDCCHDecode

Enhanced physical downlink control channel (EPDCCH) decoding

Description

[bits,symbols] = lteEPDCCHDecode(enb,chs,sym) returns softbits and received constellation of complex symbols resulting from performing the inverse of enhanced physical downlink control channel (EPDCCH) processing of a single configured EPDCCH candidate given cell-wide settings structure, EPDCCH transmission configuration structure, and EPDCCH symbols. The input symbols are assumed to contain ideal EPDCCH symbols, so no equalization is performed. The output received EPDCCH symbols are QPSK symbol demodulated and descrambled. For more EPDCCH processing information, see lteEPDCCH and TS 36.211[1], Section 6.8A.

When using this syntax, the input structures only require enb.NSubframe and chs.EPDCCHNID.

For more information, see Syntax Dependent Processing.

example

[bits,symbols] = lteEPDCCHDecode(enb,chs,rxsym,hest,noiseest) performs EPDCCH decoding and equalization for a single configured EPDCCH candidate given cell-wide settings structure, EPDCCH transmission configuration structure, received EPDCCH symbols rxsym, channel estimate hest, and noise estimate noiseest. The output received EPDCCH symbols are equalized, and QPSK symbol demodulated and descrambled.

example

[bits,symbols] = lteEPDCCHDecode(enb,chs,rxsym,hest,noiseest,alg) performs EPDCCH decoding and equalization for a single configured EPDCCH candidate and provides control over weighting the output soft bits with channel state information (CSI) calculated during the equalization stage using algorithmic configuration structure, alg.

[bits,symbols] = lteEPDCCHDecode(enb,chs,grid) performs EPDCCH decoding for all possible EPDCCH candidate locations given cell-wide settings structure, EPDCCH transmission configuration structure, and the resource element grid across all possible EPDCCH antenna ports. The resource element grid is assumed to contain ideal EPDCCH REs, so no equalization is performed. The decoding consists of extraction of all EPDCCH REs from grid followed by QPSK symbol demodulation. Each EPDCCH candidate is descrambled individually during EPDCCH search. For this syntax, chs.EPDCCHECCE and chs.EPDCCHNID are not required as no candidate-specific resource extraction or descrambling is performed.

[bits,symbols] = lteEPDCCHDecode(enb,chs,rxgrid,hestgrid,noiseest,alg) performs EPDCCH decoding and equalization for all possible EPDCCH candidate locations given cell-wide settings structure, EPDCCH transmission configuration structure, received resource element grid, channel estimate grid, noise estimate, and provides control over weighting the output soft bits with channel state information (CSI) calculated during the equalization stage using algorithmic configuration structure, alg. EPDCCH RE locations extracted from rxgrid and hestgrid are equalized, then QPSK symbol demodulated. Each EPDCCH candidate is descrambled individually during EPDCCH search. For this syntax, chs.EPDCCHECCE and chs.EPDCCHNID are not required as no candidate-specific resource extraction or descrambling is performed.

Examples

collapse all

Modulate and then demodulate EPDCCH symbols for a codeword of random bits.

Initialize the cell-wide settings structure and the EPDCCH transmission channel configuration structure.

enb.NSubframe = 0;
chs.EPDCCHNID = 1;

Create an input codeword for EPDCCH and generate EPDCCH symbols.

cw = randi([0 1],108,1);
sym = lteEPDCCH(enb,chs,cw);

Decode the symbols and confirm the codeword was successfully recovered.

rxcw = lteEPDCCHDecode(enb,chs,sym);
isequal(cw,rxcw>0)
ans = logical
   1

Perform DCI coding to the capacity of a particular EPDCCH candidate. EPDCCH modulate the coded message and transmit it. Add EPDCCH demodulation reference signals (DMRS) and perform channel estimation. Finally, extract the EPDCCH (and corresponding channel estimate) from the resource grid. Perform EPDCCH demodulation and decode the received DCI message.

Initialize the cell-wide settings structure.

enb.NSubframe = 0;
enb.NDLRB = 15;
enb.CyclicPrefix = 'Extended';
enb.CellRefP = 2;
enb.NCellID = 1;
enb.CFI = 1;

Initialize the EPDCCH transmission channel configuration structure.

chs.EPDCCHNID = 1;
chs.EPDCCHPRBSet = (0:3).';
chs.EPDCCHType = 'Localized';
chs.EPDCCHFormat = 2;
chs.ControlChannelType = 'EPDCCH';
chs.DCIFormat = 'Format2D';
chs.RNTI = 11;

Create a set of random bits representing a DCI message and performing DCI coding to the capacity of a particular EPDCCH candidate.

dciInfo = lteDCIInfo(enb,chs);
dcibits = randi([0 1],dciInfo.(chs.DCIFormat),1);
candidates = lteEPDCCHSpace(enb,chs);
chs.EPDCCHECCE = candidates(1,:);
[ind,info] = lteEPDCCHIndices(enb,chs);
cw = lteDCIEncode(chs,dcibits,info.EPDCCHG);

Generate EPDCCH symbols and resource element grid. Populate the grid.

sym = lteEPDCCH(enb,chs,cw);
grid = lteDLResourceGrid(enb,4);
grid(ind) = sym;
grid(lteEPDCCHDMRSIndices(enb,chs)) = lteEPDCCHDMRS(enb,chs);

Generate channel estimate.

cec.PilotAverage = 'TestEVM';
cec.Reference = 'EPDCCHDMRS';
[hestgrid,noiseest] = lteDLChannelEstimate(enb,chs,cec,grid);
[rxsym,hest] = lteExtractResources(ind,grid,hestgrid);

Decode the symbols and DCI message bits. Confirm the DCI message was successfully recovered.

rxcw = lteEPDCCHDecode(enb,chs,rxsym,hest,noiseest);
rxdcibits = lteDCIDecode(dciInfo.(chs.DCIFormat),rxcw);
isequal(dcibits,rxdcibits>0)
ans = logical
   1

Input Arguments

collapse all

eNodeB cell-wide settings, specified as a structure containing these parameter fields:

Parameter FieldRequired or OptionalValuesDescription
NDLRBRequired

Scalar integer from 6 to 110

Number of downlink resource blocks (NRBDL)

NCellIDRequired

Integer from 0 to 503

Physical layer cell identity

CyclicPrefixOptional

'Normal' (default), 'Extended'

Cyclic prefix length

CellRefPRequired

1, 2, 4

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

NSubframeRequired

0 (default), nonnegative scalar integer

Subframe number

The following parameter is only read when chs.EPDCCHStart is not present.

  CFIRequired

1, 2, or 3
Scalar or if the CFI varies per subframe, a vector of length 10 (corresponding to a frame).

Control format indicator (CFI) value. In TDD mode, CFI varies per subframe for the RMCs ('R.0', 'R.5', 'R.6', 'R.6-27RB', 'R.12-9RB')

DuplexModeOptional

'FDD' (default), 'TDD'

Duplexing mode, specified as one of the following:

  • 'FDD' — Frequency division duplex (default)

  • 'TDD' — Time division duplex

The following parameters apply when DuplexMode is set to 'TDD'.

  TDDConfigOptional

0, 1 (default), 2, 3, 4, 5, 6

Uplink–downlink configuration

  SSCOptional

0 (default), 1, 2, 3, 4, 5, 6, 7, 8, 9

Special subframe configuration (SSC)

NFrameOptional

0 (default), nonnegative scalar integer

Frame number

CSIRSPeriodOptional

'Off' (default), 'On', Icsi-rs (0,...,154), [Tcsi-rs Dcsi-rs]. You can also specify values in a cell array of configurations for each resource.

CSI-RS subframe configurations for one or more CSI-RS resources. Multiple CSI-RS resources can be configured from a single common subframe configuration or from a cell array of configurations for each resource.

The following CSI-RS resource parameters apply only when CSIRSPeriod sets one or more CSI-RS subframe configurations to any value other than 'Off'. Each parameter length must be equal to the number of CSI-RS resources required.

  CSIRSConfigRequired

Nonnegative scalar integer

Array CSI-RS configuration indices. See TS 36.211, Table 6.10.5.2-1.

  CSIRefPRequired

1 (default), 2, 4, 8

Array of number of CSI-RS antenna ports

ZeroPowerCSIRSPeriodOptional

'Off' (default), 'On', Icsi-rs (0,...,154), [Tcsi-rs Dcsi-rs]. You can also specify values in a cell array of configurations for each resource.

Zero power CSI-RS subframe configurations for one or more zero power CSI-RS resource configuration index lists. Multiple zero power CSI-RS resource lists can be configured from a single common subframe configuration or from a cell array of configurations for each resource list.

The following zero power CSI-RS resource parameter is only applicable if one or more of the above zero power subframe configurations are set to any value other than 'Off'.

  ZeroPowerCSIRSConfigRequired

16-bit bitmap character vector or string scalar (truncated if not 16 bits or '0' MSB extended), or a numeric list of CSI-RS configuration indices. You can also specify values in a cell array of configurations for each resource.

Zero power CSI-RS resource configuration index lists (TS 36.211 Section 6.10.5.2). Specify each list as a 16-bit bitmap character vector or string scalar (if less than 16 bits, then '0' MSB extended), or as a numeric list of CSI-RS configuration indices from TS 36.211 Table 6.10.5.2-1 in the '4' CSI reference signal column. Multiple lists can be defined using a cell array of individual lists.

EPDCCH-specific channel transmission configuration, specified as a structure containing these parameter fields:

Parameter FieldRequired or OptionalValuesDescription
EPDCCHECCERequired

One-element or two-element vector specifying the zero-based ECCE index or inclusive [begin, end] ECCE index range according to the aggregation level L (L = end – begin + 1). The number of ECCEs in the candidate must be one of:

  • a power of 2

  • 12 (since R2024b)

  • 24 (since R2024b)

If no transmission is required, leave this parameter empty.

Set of one of several consecutive ECCEs defining the EPDCCH transmission candidate in the overall EPDCCH set

EPDCCHTypeRequired

'Localized', 'Distributed'

EPDCCH transmission type

EPDCCHPRBSetRequired

Vector of zero-based indices for the PRB pairs corresponding to the EPDCCH PRB set. The number of PRB pair indices must be one of:

  • a power of 2

  • 6 (since R2024b)

If no transmission is required, leave this parameter empty.

EPDCCH PRB pair indices

EPDCCHStartOptional

Integer from 0 to 4

If this parameter is not present, then the cell-wide CFI parameter is used for the starting symbol.

EPDCCH starting symbol

EPDCCHNIDRequired

Nonnegative scalar integer

EPDCCH scrambling sequence initialization

RNTIRequired only when EPDCCHType is set to 'Localized'

0 (default), scalar integer

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

EPDCCH modulation symbols associated with a single EPDCCH transmission in a subframe, specified as a complex vector. This input contains the QPSK symbols.

Data Types: double

Received EPDCCH symbols, specified as a EPDCCHGd-by-NRxAnts matrix. EPDCCHGd is the EPDCCH symbol capacity, given by the info.EPDCCHGd field of lteEPDCCHIndices. NRxAnts is the number of receive antennas. This matrix contains the elements of the received resource grid in the locations of the EPDCCH REs for the candidate configured via chs.EPDCCHECCE.

Data Types: double

Channel estimate, specified as an EPDCCHGd-by-NRxAnts array. EPDCCHGd is the EPDCCH symbol capacity, given by the info.EPDCCHGd field of lteEPDCCHIndices. NRxAnts is the number of receive antennas. The third dimension represents the 4 possible EPDCCH antenna ports (p=107...110). This array contains the elements of the channel estimate array in the locations of the EPDCCH REs for the candidate configured via chs.EPDCCHECCE.

Data Types: double

Noise estimate of the noise power spectral density per RE on the received subframe, specified as a numeric scalar. The lteDLChannelEstimate function provides this estimate.

Data Types: double

Algorithmic configuration, specified as a structure. The structure must have the field:

CSIOptional

'On' (default), 'Off'

Flag provides control over weighting the soft values that are used to determine the output values with the channel state information (CSI) calculated during the equalization process

Data Types: double

Resource grid across the four possible EPDCCH ports, specified as a K-by-L-by-4 array. K is the number of subcarriers, L is the number of OFDM symbols in one frame, and 4 is all possible EPDCCH antenna ports (p=107...110).

Data Types: double

Received resource elements grid, specified as a K-by-L-by-NRxAnts array. K is the number of subcarriers, L is the number of OFDM symbols in one frame, and NRxAnts is the number of receive antennas.

Data Types: double

Channel estimate grid, specified as a K-by-L-by-NRxAnts-by-4 array. K is the number of subcarriers, L is the number of OFDM symbols in one frame, and NRxAnts is the number of receive antennas. The 4th dimension represents the 4 possible EPDCCH antenna ports (p=107...110).

Data Types: double

Output Arguments

collapse all

Decoded bit estimates for the candidate configured via chs.EPDCCHECCE, returned as one of the following:

  • a column-vector of length EPDCCHG = EDPCCHGd × 2.

  • MTot-by-4 matrix. MTot is the total number of bits associated with EPDCCHs and 4 is all possible EPDCCH antenna ports (p=107...110). Since the bits output is used as input to lteEPDCCHSearch, where each ECCE candidate has to be descrambled individually, the bits output are not descrambled.

Received QPSK symbols corresponding to bits in bits, specified as one of the following:

  • A column-vector of length EPDCCHGd, where EPDCCHGd is the EPDCCH symbol capacity, given by the info.EPDCCHGd field of lteEPDCCHIndices.

  • (MTot / 2)-by-4 matrix, for all EPDCCH ECCEs and all 4 EPDCCH reference signal ports (p=107...110).

More About

collapse all

Syntax Dependent Processing

The lteEPDCCHDecode function works with only one EPDCCH-PRB-Set because lteDLChannelEstimate works with only one EPDCCH-PRB-Set. The lteEPDCCHDecode function processing performed depends on which input signals are provided to the function. The figures shown here align available syntaxes with processing performed.

If the symbols for a single configured EPDCCH candidate are input, the function performs symbol demodulation and descrambling. The function assumes the input symbols were already equalized.

If the symbols for a single configured EPDCCH candidate are input along with channel and noise estimates, the function performs MMSE equalization, then symbol demodulation and descrambling. If the optional alg input is provided, CSI weighting is applied to the output bits.

If the resource element grid across all possible EPDCCH antenna ports is input, the function extracts all EPDCCH resource elements and performs EPDCCH decoding for all possible EPDCCH candidate locations. The function assumes the input symbols were already equalized. Each EPDCCH candidate is descrambled individually during EPDCCH search.

If the resource element grid is input, along with channel and noise estimates, the function extracts all EPDCCH resource elements and performs MMSE equalization, then symbol demodulation. If the optional alg input is provided, CSI weighting is applied to the output bits. Each EPDCCH candidate is descrambled individually during EPDCCH search.

References

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

Version History

Introduced in R2016b

expand all