# lteEPDCCHSearch

## Syntax

``````[dcistr,dcibits] = lteEPDCCHSearch(enb,chs,softbits)``````

## Description

example

``````[dcistr,dcibits] = lteEPDCCHSearch(enb,chs,softbits)``` recovers DCI message structures, and corresponding vectors of DCI message bits, after blind decoding the multiplexed EPDCCHs. The multiplexed EPDCCHs are within the received EPDCCH payload given by matrix of soft bits. This function carries out search for a single EPDCCH set. For more information, see EPDCCH Search Processing.```

## Examples

collapse all

Encode a DCI message and modulate it on the EPDCCH. Perform EPDCCH decoding and then EPDCCH blind-search to recover the DCI message. For `DCI` messages sent on the EPDCCH, set the ControlChannelType to `'EPDCCH'`.

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

```enb = lteRMCDL('R.43'); chs.RNTI = 42; chs.ControlChannelType = 'EPDCCH'; chs.EPDCCHType = 'Localized'; chs.EPDCCHPRBSet = [2 3]; chs.EPDCCHNID = 0; chs.EPDCCHFormat = 1; chs.DCIFormat = 'Format1A';```

Create a DCI message. Generate EPDCCH candidates.

```[dci,dciBits] = lteDCI(enb,chs,struct('DCIFormat',chs.DCIFormat)); candidates = lteEPDCCHSpace(enb,chs); chs.EPDCCHECCE = candidates(1,:);```

Generate RE grid indices and EPDCCH info structure. Encode the DCI message into a codeword for transmission. Generate EPDCCH symbols and populate resource grid.

```[ind,info] = lteEPDCCHIndices(enb,chs); cw = lteDCIEncode(chs,dciBits,info.EPDCCHG); sym = lteEPDCCH(enb,chs,cw); grid = lteDLResourceGrid(enb,4); grid(ind) = sym;```

Decode the EPDCCH transmission. Recover and view DCI message.

```rxsoftbits = lteEPDCCHDecode(enb,chs,grid); rxdci = lteEPDCCHSearch(enb,chs,rxsoftbits); rxdci{1}```
```ans = struct with fields: DCIFormat: 'Format1A' CIF: 0 AllocationType: 0 Allocation: [1x1 struct] ModCoding: 0 HARQNo: 0 NewData: 0 RV: 0 TPCPUCCH: 0 TDDIndex: 0 SRSRequest: 0 HARQACKResOffset: 0 ```

Search for multiple EPDCCH sets. The first EPDCCH set is as configured above and the second is of Distributed type with 8 PRBs.

Transmit the EPDCCH DM-RS for channel estimation.

`grid(lteEPDCCHDMRSIndices(enb,chs)) = lteEPDCCHDMRS(enb,chs);`

Configure the channel estimation.

```cec.PilotAverage = 'TestEVM'; cec.Reference = 'EPDCCHDMRS';```

Configure two EPDCCH sets.

```chs.EPDCCHTypeList = {'Localized' 'Distributed'}; chs.EPDCCHPRBSetList = {[2; 3] (8:15).'};```

Perform the EPDCCH search for each set.

```for p = 1:numel(chs.EPDCCHTypeList) chs.EPDCCHType = chs.EPDCCHTypeList{p}; chs.EPDCCHPRBSet = chs.EPDCCHPRBSetList{p}; [hestgrid,noiseest] = lteDLChannelEstimate(enb,chs,cec,grid); rxsoftbits = lteEPDCCHDecode(enb,chs,grid,hestgrid,noiseest); rxdci = lteEPDCCHSearch(enb,chs,rxsoftbits); X = ['EPDCCH set ' num2str(p)]; disp([X ', DCI messages found: ' num2str(numel(rxdci))]) if (~isempty(rxdci)) rxdci{1} end end```
```EPDCCH set 1, DCI messages found: 1 ```
```ans = struct with fields: DCIFormat: 'Format1A' CIF: 0 AllocationType: 0 Allocation: [1x1 struct] ModCoding: 0 HARQNo: 0 NewData: 0 RV: 0 TPCPUCCH: 0 TDDIndex: 0 SRSRequest: 0 HARQACKResOffset: 0 ```
```EPDCCH set 2, DCI messages found: 0 ```

A DCI message is found in EPDCCH set 1 but not in EPDCCH set 2.

## Input Arguments

collapse all

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

Parameter FieldRequired or OptionalValuesDescription
`NDLRB`Required

Scalar integer from 6 to 110

Number of downlink resource blocks. (${N}_{\text{RB}}^{\text{DL}}$)

`NULRB`Required

Scalar integer from 6 to 110

Number of uplink resource blocks. (${N}_{\text{RB}}^{\text{UL}}$)

`NCellID`Required

Integer from 0 to 503

Physical layer cell identity

`CyclicPrefix`Optional

`'Normal'` (default), `'Extended'`

Cyclic prefix length

`CellRefP`Required

1, 2, 4

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

`NSubframe`Required

0 (default), nonnegative scalar integer

Subframe number

The following parameter is applicable only when `chs.EPDCCHStart` is absent.

`CFI`Required

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'`)

`DuplexMode`Optional

`'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'`.

`TDDConfig`Optional

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

`SSC`Optional

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

Special subframe configuration (SSC)

`NFrame`Optional

0 (default), nonnegative scalar integer

Frame number

`CSIRSPeriod`Optional

`'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.

`CSIRSConfig`Required

Nonnegative scalar integer

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

`CSIRefP`Required

1 (default), 2, 4, 8

Array of number of CSI-RS antenna ports

`ZeroPowerCSIRSPeriod`Optional

`'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 applicable only if one or more of the above zero power subframe configurations are set to any value other than `'Off'`.

`ZeroPowerCSIRSConfig`Required

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 that can contain the following parameter fields.

Parameter FieldRequired or OptionalValuesDescription
`EPDCCHType`Required

`'Localized'`, `'Distributed'`

EPDCCH transmission type

`EPDCCHPRBSet`Required

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

EPDCCH PRB pair indices

`EPDCCHStart`Optional

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

`RNTI`Required

0 (default), scalar integer

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

`EPDCCHNID`Required

nonnegative scalar integer

EPDCCH nID parameter for scrambling sequence initialization.

`EPDCCHPRBSetList`Optional

cell array of one or two vectors

PRB pair indices for one or two EPDCCH sets.

`EPDCCHPRBTypeList`Optional

cell array of character vector or string array

EPDCCH transmission types for one or two EPDCCH sets.

`EnableCarrierIndication`Optional

`'Off'` (default), `'On'`

UE configured with carrier indication field (affects presence of CIF)

`EnableSRSRequest`Optional

`'Off'` (default), `'On'`

UE configured for SRS request (affects presence of SRS request field in UE-specific formats 0/1A and 2B/2C/2D TDD)

`EnableMultipleCSIRequest`Optional

`'Off'` (default), `'On'`

UE configured for multiple CSI requests (multiple cells/CSI processes) (affects length of CSI request field in UE-specific formats 0/4)

`NTxAnts`Optional

1 (default), 2, 4

Number of UE transmission antennas (affects length of precoding information field in format 4)

Received EPDCCH payload containing coded Downlink Control Information (DCI), specified as a MTot-by-4 matrix. MTot is the total number of bits associated with EPDCCHs, $\frac{nEPDCCH*NECCE}{NECCEPerPRB*2}$. The matrix contains soft EPDCCH bits estimates for all EPDCCH ECCEs and all EPDCCH reference signal ports.

If `chs`.`EPDCCHPRBSetList` and `chs`.`EPDCCHTypeList` are present and each contain two elements, the creation of the EPDCCH candidate locations support two EPDCCH sets. For more information, see TS 36.213 [2], Tables 9.1.4-3a to 9.1.4-5b.

Data Types: `double`

## Output Arguments

collapse all

DCI message structure, returned as a cell array of structures whose fields match of the fields associated DCI format.

The field names associated with `dcistr` depend on the DCI format. The format is expected to be one of the formats generated by `lteDCI`.

The following table details the DCI formats and accompanying `dcistr` parameter fields.

DCI Formats DCISTRFields Size Description
`'Format0'` `DCIFormat``'Format0'`
`FreqHopping` 1-bit PUSCH frequency hopping flag
`Allocation` variable Resource block assignment/allocation
`ModCoding ` 5-bits Modulation, coding scheme, and redundancy version
`NewData` 1-bit New data indicator
`TPC` 2-bits PUSCH TPC command
`CShiftDMRS` 3-bits Cyclic shift for DM RS
`CQIReq` 1-bit CQI request
`TDDIndex` 2-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-bitResource allocation header: type 0, type 1 (only if downlink bandwidth is >10 PRBs)
`Allocation` variable Resource block assignment/allocation
`ModCoding` 5-bits Modulation 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.
`'Format1A'` `DCIFormat` `'Format1A'`
`AllocationType` 1-bit VRB assignment flag: 0 (localized), 1 (distributed)
`Allocation` variable Resource block assignment/allocation
`ModCoding` 5-bits Modulation 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.
`'Format1B'` `DCIFormat` `'Format1B'`
`AllocationType` 1-bit VRB assignment flag: 0 (localized), 1 (distributed)
`Allocation` variable Resource block assignment/allocation
`ModCoding` 5-bits Modulation 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
`TPMI`

2-bits (2 antennas)

4-bits (4 antennas)

PMI information
`PMI` 1-bit PMI confirmation
`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.
`'Format1C'` `DCIFormat` `'Format1C'`
`Allocation` variable Resource block assignment/allocation
`ModCoding` 5-bits Modulation and coding scheme
`'Format1D'` `DCIFormat` `'Format1D'`
`AllocationType` 1-bit VRB assignment flag: 0 (localized), 1 (distributed)
`Allocation` variable Resource block assignment/allocation
`ModCoding` 5-bits Modulation 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
`TPMI`

2-bits (2 antennas)

4-bits (4 antennas)

Precoding TPMI information
`DlPowerOffset` 1-bit Downlink power offset
`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.
`'Format2'` `DCIFormat` `'Format2'`
`AllocationType` 1-bit Resource allocation header: type 0, type 1 (only if downlink bandwidth is >10 PRBs)
`Allocation` variable Resource block assignment/allocation
`TPCPUCCH` 2-bits PUCCH TPC command
`HARQNo`

3-bits (FDD)

4-bits (TDD)

HARQ process number
`SwapFlag` 1-bit Transport 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 (2-antennas)

6-bits (4-antennas)

Precoding information
`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.
`'Format2A'` `DCIFormat` `'Format2A'`
`AllocationType` 1-bit Resource allocation header: type 0, type 1 (only if downlink bandwidth is >10 PRBs)
`Allocation` variable Resource block assignment/allocation
`TPCPUCCH` 2-bits PUCCH TPC command
`HARQNo`

3-bits (FDD)

4-bits (TDD)

HARQ process number
`SwapFlag` 1-bit Transport 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 (2 antennas)

2-bits (4 antennas)

Precoding information
`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.
`'Format2B'` `DCIFormat` `'Format2B'`
`AllocationType` 1-bitResource allocation header: type 0, type 1 (only if downlink bandwidth is >10 PRBs)
`Allocation` variable Resource block assignment/allocation
`TPCPUCCH` 2-bits PUCCH TPC command
`HARQNo`

3-bits (FDD)

4-bits (TDD)

HARQ process number
`ScramblingId` 1-bit Scrambling 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
`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.
`'Format2C'``DCIFormat` —`'Format2C'`
`CIF`variableCarrier indicator
`AllocationType` 1-bit Resource allocation header: type 0, type 1 (only if downlink bandwidth is >10 PRBs)
`Allocation` variable Resource block assignment/allocation
`TPCPUCCH` 2-bits PUCCH TPC command
`HARQNo`

3-bits (FDD)

4-bits (TDD)

HARQ process number
`TxIndication`3-bitsAntenna port(s), scrambling identity, and number of layers indicator
`SRSRequest`variableSRS 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
`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.

`'Format3'` `DCIFormat` `'Format3'`
`TPCCommands` variableTPC commands for PUCCH and PUSCH
`'Format3A'` `DCIFormat` `'Format3A'`
`TPCCommands` variableTPC commands for PUCCH and PUSCH
`'Format4'``DCIFormat``'Format4'`
`CIF`variableCarrier indicator
`Allocation`variableResource block assignment/allocation
`TPC`2-bits PUSCH TPC command
`CShiftDMRS`3-bits Cyclic shift for DMRS
`TDDIndex`2-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.
`CQIReq`variableCQI request
`SRSRequest`2-bits SRS request
`AllocationType`1-bitResource allocation header: non-hopping PUSCH resource allocation type 0, type 1
`ModCoding`5-bits Modulation, coding scheme and redundancy version
`NewData`1-bitNew data indicator
`ModCoding1`5-bits Modulation and coding scheme for transport block 1
`NewData1`1-bitNew data indicator for transport block 1
`ModCoding2`5-bits Modulation and coding scheme for transport block 2
`NewData2`1-bitNew data indicator for transport block 2
`PrecodingInfo`

3-bits (2 antennas)

6-bits (4 antennas)

Precoding information

Data Types: `struct`

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

Data Types: `int8`

collapse all

### EPDCCH Search Processing

EPDCCH search processing blindly decodes DCI messages based on their lengths. The lengths and order in which the DCI messages are searched for is provided by `lteDCIInfo`. For DCI messages conveyed on the EPDCCH, set `ControlChannelType` to `'EPDCCH'` when calling `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 `lteEPDCCHSearch` function does not consider transmission mode during blind search, and no DCI message format is filtered based on transmission mode. It does not search for format 3 and 3A (power adjustment commands for PUSCH and PUCCH). It also does not search for format 1C as this format is never used in the UE-specific search space. EPDCCH is never used for common search space messages. 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-5A.

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

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