Documentation

lteDCI

Syntax

``dciout = lteDCI(enb,dciin)``
``````[dciout,bitsout] = lteDCI(enb,dciin)``````
``[___] = lteDCI(enb,dciin,opts)``
``[___] = lteDCI(enb,chs,dciin,opts)``
``[___] = lteDCI(enb,bitsin,opts)``
``[___] = lteDCI(enb,chs,bitsin,opts)``
``[___] = lteDCI(istr,opts)``

Description

example

````dciout = lteDCI(enb,dciin)` returns the `dciout` structure containing a downlink control information (DCI) message given input structures containing the cell-wide settings and the DCI format setting. With this syntax, the messages created have the minimum possible sizes for the cell configuration (link bandwidths, frame structure, and so on). This function creates and manipulates DCI messages for the formats defined in TS 36.212 [2], Section 5.3.3. Later releases of the LTE standard may add UE-specific bit fields to a format. By default, any UE-specific bit fields added after a format is first released, appear in the output but are inactive. Uses for `lteDCI` include creation of a default DCI message, blind decoding of DCI format types, and determining the sizes of the bit fields.For information on link bandwidth assignment, see Specifying Number of Resource Blocks.```

example

``````[dciout,bitsout] = lteDCI(enb,dciin)``` also returns a vector, `bitsout`, representing the set of message fields mapped to the information bit payload (including any zero padding).```

example

````[___] = lteDCI(enb,dciin,opts)` formats the returned structure through the options specified by `opts`.This syntax supports output options from prior syntaxes.```

example

````[___] = lteDCI(enb,chs,dciin,opts)` permits formats to be extended with additional bit fields on a per-UE basis using the UE-specific channel configuration structure, `chs`.```

example

````[___] = lteDCI(enb,bitsin,opts)` uses `bitsin` to initialize all the message fields. `bitsin` is treated as the DCI information bit payload and directly maps to `bitsout`, (`bitsout` == `bitsin`). By default the format is deduced directly from the length of `bitsin`. Therefore, the length of `bitsin` must be one of the valid format sizes for the given cell-wide parameters, `enb`. For more information, see `lteDCIInfo`. When multiple formats have the same payload size, the first matching format is selected. The function checks formats 0 and 1A first, favoring the more likely common search space. If no match is found, the remaining formats are searched in alphanumerical order. To override the blind format matching in this syntax, add an explicit `enb``.``DCIFormat` field.```

example

````[___] = lteDCI(enb,chs,bitsin,opts)` permits formats to be extended with additional bit fields on a per-UE basis using the UE-specific channel configuration structure, `chs`. The DCI payload sizes for the combination of cell-wide and UE-specific parameters define the set of valid `bitsin` lengths. For more information, see `lteDCIInfo`.As with the previous syntax, the format type is deduced from the length of `bitsin`. To override the blind format matching in this syntax, add an explicit `chs``.``DCIFormat` field.```
````[___] = lteDCI(istr,opts)` accepts an input structure, `istr`. The fields described in the structures `enb` and `dciin` must be present as part of `istr`. In this syntax, `dciout`, also carries forward the `NDLRB` and `DCIFormat` fields supplied in `istr`. This syntax is not recommended and will be removed in a future release. Instead, use one of the previous syntaxes that separates the parameters into different input structures.```

Examples

collapse all

Create a format 1A DCI message structure with the distributed VRB allocation type. The allocation message fields are contained in the `dci1A.Allocation` substructure. When the format 1A `AllocationType` field is properly initialized at the input to the function, the appropriate set of fields is output. For format 1A, setting `AllocationType` to 1 gives a distributed allocation and 0 gives a localized allocation.

```enb = struct('NDLRB',50,'CellRefP',1,'DuplexMode','FDD'); dciin = struct('DCIFormat','Format1A','AllocationType',1); dci1A = lteDCI(enb,dciin)```
```dci1A = struct with fields: DCIFormat: 'Format1A' CIF: 0 AllocationType: 1 Allocation: [1x1 struct] ModCoding: 0 HARQNo: 0 NewData: 0 RV: 0 TPCPUCCH: 0 TDDIndex: 0 SRSRequest: 0 HARQACKResOffset: 0 ```
`allocfields = dci1A.Allocation`
```allocfields = struct with fields: RIV: 0 Gap: 0 ```

The field values of this structure can be set and passed back through the function. Output the information bits with the new values.

```dci1A.RV = 1; dci1A.Allocation.RIV = 6; dci1Aupdated = lteDCI(enb,dci1A)```
```dci1Aupdated = struct with fields: DCIFormat: 'Format1A' CIF: 0 AllocationType: 1 Allocation: [1x1 struct] ModCoding: 0 HARQNo: 0 NewData: 0 RV: 1 TPCPUCCH: 0 TDDIndex: 0 SRSRequest: 0 HARQACKResOffset: 0 ```
`allocfields = dci1Aupdated.Allocation`
```allocfields = struct with fields: RIV: 6 Gap: 0 ```

Create a format 1 DCI message structure with the resource allocation type 1 and TDD modulation scheme. Set `AllocationType` to 1, and output the set of allocation fields. `AllocationType` is the resource allocation header bit for format 1. Also initialize the `ModCoding` field at the input. All noninitialized fields default to 0.

```enb.NDLRB = 50; enb.CellRefP = 1; enb.DuplexMode = 'TDD'; dciin.DCIFormat = 'Format1'; dciin.AllocationType = 1; dciin.ModCoding = 7; dci1 = lteDCI(enb,dciin)```
```dci1 = struct with fields: DCIFormat: 'Format1' CIF: 0 AllocationType: 1 Allocation: [1x1 struct] ModCoding: 7 HARQNo: 0 NewData: 0 RV: 0 TPCPUCCH: 0 TDDIndex: 0 HARQACKResOffset: 0 ```
`allocfields = dci1.Allocation`
```allocfields = struct with fields: Bitmap: '00000000000000' RBSubset: 0 Shift: 0 ```

For the specified configuration, the `Allocation` substructure includes the character vector bit field, `Bitmap`, plus `RBSubset` and `Shift` fields.

Create a format 1A DCI message structure and output the `bitsout` message. Modify the DCI message and observe the change.

Create cell-wide settings and DCI message settings structures. For the DCI message, assign format 1A and allocation type 0. Generate the DCI message. View the DCI message structure and bits output.

```enb = struct('NDLRB',25,'CellRefP',1,'DuplexMode','FDD'); dciin = struct('DCIFormat','Format1A','AllocationType',0); [dciout,bitsout] = lteDCI(enb,dciin); dciout```
```dciout = 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 ```
`bitsout'`
```ans = 1x25 int8 row vector 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ```

The first bit in `bitsout` is a 1 for DCI message format 1A. The second bit is 0 for `AllocationType` = 0.

Modify the allocation type to 1. Regenerate the DCI message. View the DCI message structure and bits output.

```dciin = struct('DCIFormat','Format1A','AllocationType',1); [dciout,bitsout] = lteDCI(enb,dciin); dciout```
```dciout = struct with fields: DCIFormat: 'Format1A' CIF: 0 AllocationType: 1 Allocation: [1x1 struct] ModCoding: 0 HARQNo: 0 NewData: 0 RV: 0 TPCPUCCH: 0 TDDIndex: 0 SRSRequest: 0 HARQACKResOffset: 0 ```
`bitsout'`
```ans = 1x25 int8 row vector 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ```

Note the `AllocationType` and the second bit of `bitsout` both changed from 0 to 1.

Modify the DCI message format to 0. Regenerate the DCI message. View the DCI message structure and bits output.

```dciin = struct('DCIFormat','Format0','AllocationType',1); [dciout,bitsout] = lteDCI(enb,dciin); dciout```
```dciout = struct with fields: DCIFormat: 'Format0' CIF: 0 Allocation: [1x1 struct] ModCoding: 0 NewData: 0 TPC: 0 CShiftDMRS: 0 TDDIndex: 0 CSIRequest: 0 SRSRequest: 0 AllocationType: 1 ```
`bitsout'`
```ans = 1x25 int8 row vector 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 ```

The first bit in `bitsout` change from 1 to 0. Because the message formats 0 and 1A have the same length, the first bit in `bitsout` is used to distinguish these formats. For all other formats, the message length is used to distinguish the format types. For format 0, the setting for `AllocationType` is specified by bit number 24.

Create a format 1 DCI message structure and supply the optional `'fieldsizes'` and `'excludeunusedfields'` inputs. By default, the output structure contains all possible fields for the input format. Not all fields are active for the given input parameters. Specifically, some might not be present in the payload bits. To see the number of bits associated with each field, use the optional `'fieldsizes'` input. The `'fieldsizes'` option also adds the `'Padding'` field to the output indicating the number of padding bits.

```enb.NDLRB = 50; enb.CellRefP = 1; enb.DuplexMode = 'TDD'; dciin.DCIFormat = 'Format1'; dciin.AllocationType = 1; dciin.ModCoding = 7; opts = {'fieldsizes'}```
```opts = 1x1 cell array {'fieldsizes'} ```
`dci1 = lteDCI(enb,dciin,opts)`
```dci1 = struct with fields: DCIFormat: 'Format1' CIF: 0 AllocationType: 1 Allocation: [1x1 struct] ModCoding: 5 HARQNo: 4 NewData: 1 RV: 2 TPCPUCCH: 2 TDDIndex: 2 HARQACKResOffset: 0 Padding: 0 ```
`allocfields = dci1.Allocation`
```allocfields = struct with fields: Bitmap: 14 RBSubset: 2 Shift: 1 ```

View the output to see the sizes for all DCI message fields.

Remove unused (0 bit) fields from the output structure by using the `'excludeunusedfields'` option.

`opts = {'fieldsizes','excludeunusedfields'}`
```opts = 1x2 cell array {'fieldsizes'} {'excludeunusedfields'} ```
`dci1 = lteDCI(enb,dciin,opts)`
```dci1 = struct with fields: DCIFormat: 'Format1' AllocationType: 1 Allocation: [1x1 struct] ModCoding: 5 HARQNo: 4 NewData: 1 RV: 2 TPCPUCCH: 2 TDDIndex: 2 ```
`allocfields = dci1.Allocation`
```allocfields = struct with fields: Bitmap: 14 RBSubset: 2 Shift: 1 ```

The output fields with bit length equal to zero bits no longer appear in the output.

Create a format 1A DCI message structure with the distributed VRB allocation type. The `Allocation` substructure contains the allocation message fields. To specify a distributed allocation, set the format 1A `AllocationType` field to 1. To specify a localized allocation, set the `AllocationType` field to 0.

```enb.NDLRB = 50; enb.CellRefP = 1; enb.DuplexMode = 'FDD'; dciin.DCIFormat = 'Format1A'; dciin.AllocationType = 1; [dci1A,bits] = lteDCI(enb,dciin); disp(dci1A)```
``` DCIFormat: 'Format1A' CIF: 0 AllocationType: 1 Allocation: [1x1 struct] ModCoding: 0 HARQNo: 0 NewData: 0 RV: 0 TPCPUCCH: 0 TDDIndex: 0 SRSRequest: 0 HARQACKResOffset: 0 ```
`disp(dci1A.Allocation)`
``` RIV: 0 Gap: 0 ```

Adjust the `RV` and `RIV` field values of `dci1A`. Call the `lteDCI` function again to update the information bits with the new values. View the updated message fields by blindly recovering them directly from the output DCI message bits.

```dci1A.RV = 1; dci1A.Allocation.RIV = 6; [~,bitsUpdated] = lteDCI(enb,dci1A); dci1Arec = lteDCI(enb,bitsUpdated); disp(dci1Arec)```
``` DCIFormat: 'Format1A' CIF: 0 AllocationType: 1 Allocation: [1x1 struct] ModCoding: 0 HARQNo: 0 NewData: 0 RV: 1 TPCPUCCH: 0 TDDIndex: 0 SRSRequest: 0 HARQACKResOffset: 0 ```
`disp(dci1Arec.Allocation)`
``` RIV: 6 Gap: 0 ```

Use an additional UE-specific input parameter structure to control UE-specific DCI fields. Create a message to be sent on the EPDCCH that is intended for a UE configured with the carrier indicator field, `CIF`.

Initialize cell-wide structure `enb`, DCI format structure `dciin`, UE-specific structure `chs`, and output options structure `opts`.

```enb.NDLRB = 50; enb.CellRefP = 1; enb.DuplexMode = 'TDD'; dciin.DCIFormat = 'Format1'; dciin.AllocationType = 1; dciin.ModCoding = 7; chs.ControlChannelType = 'EPDCCH'; chs.EnableCarrierIndication = 'On'; chs.EnableSRSRequest = 'Off'; chs.EnableMultipleCSIRequest = 'Off'; opts = {'fieldsizes','excludeunusedfields'}```
```opts = 1x2 cell array {'fieldsizes'} {'excludeunusedfields'} ```

Create and view the DCI message.

`dci1 = lteDCI(enb,chs,dciin,opts)`
```dci1 = struct with fields: DCIFormat: 'Format1' CIF: 3 AllocationType: 1 Allocation: [1x1 struct] ModCoding: 5 HARQNo: 4 NewData: 1 RV: 2 TPCPUCCH: 2 TDDIndex: 2 HARQACKResOffset: 2 ```
`allocfields = dci1.Allocation`
```allocfields = struct with fields: Bitmap: 14 RBSubset: 2 Shift: 1 ```

Based on the UE-specific settings in `chs`, the output includes the three bit `CIF` field and the two bit `HARQACKResOffset` field. If these fields were present in `dciin`, their values would be mapped into the appropriate positions in the information bits at the output.

Use an additional UE-specific input parameter structure to control UE-specific DCI fields. Create a message to be sent on the EPDCCH that is intended for a UE configured with the carrier indicator field, `CIF`.

Initialize cell-wide structure `enb`, UE-specific structure `chs`, and output options structure `opts`.

```enb.NDLRB = 50; enb.CellRefP = 1; enb.DuplexMode = 'TDD'; chs.DCIFormat = 'Format1B'; chs.ControlChannelType = 'EPDCCH'; chs.EnableCarrierIndication = 'On'; chs.EnableSRSRequest = 'Off'; chs.EnableMultipleCSIRequest = 'Off'; chs.NTxAnts = 1; opts = {'fieldsizes','excludeunusedfields'};```

Based on the UE-specific settings in `chs`, the DCI message length is extended to include fields `CIF` (3 bits) and `HARQACKResOffset` (2 bits). Using `lteDCIInfo` and `chs` to determine the correct input bitstream length, create `bitsin`.

```info = lteDCIInfo(enb,chs); bitsin = zeros(getfield(info,chs.DCIFormat),1);```

Create a new DCI message using cell-wide settings, UE-specific Control and `bitsin`.

```[dciout,bitsout] = lteDCI(enb,chs,bitsin,opts); dciout```
```dciout = struct with fields: DCIFormat: 'Format1B' CIF: 3 AllocationType: 1 Allocation: [1x1 struct] ModCoding: 5 HARQNo: 4 NewData: 1 RV: 2 TPCPUCCH: 2 TDDIndex: 2 TPMI: 2 PMI: 1 HARQACKResOffset: 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}}$)

`DCIFormat`Required (see syntax descriptions for applicability)

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

`CellRefP`Optional

1 (default), 2, 4

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

`DuplexMode`Optional

`'FDD'` (default), `'TDD'`

Duplexing mode, specified as:

• `'FDD'` for Frequency Division Duplex or

• `'TDD'` for Time Division Duplex

DCI settings, specified as a structure that can contain these fields.

Parameter FieldRequired or OptionalValuesDescription
`DCIFormat`

Required, except when `bitsin` is input

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

Any format-specific fields can be initialized by adding them to `dciin`. See `dciout` for specific fields output for each `DCIFormat`.

Formatting options for output DCI structure, specified as a character vector, cell array of character vectors, or a string array. You can specify a format for the Field content and Fields to include. For convenience, you can specify several options as a single character vector or string scalar by a space-separated list of values placed inside the quotes. Values for `opts` when specified as a character vector include (use double quotes for string):

Category Options Description

Field content

```'fieldvalues' (default)```

Set the fields to zero or to their input values.

`'fieldsizes'`

Sets the field values to their bit sizes and adds the `Padding` field to `dciout`. `Padding` indicates the number of padding bits appended.

Fields to include

```'includeallfields' (default)```

`dciout` includes all possible fields for the requested DCI format.

`'excludeunusedfields'`

`dciout` excludes fields that have zero length for the given parameter set.

Example: `'fieldsizes excludeunusedfields'`, `"fieldsizes excludeunusedfields"`, `{'fieldsizes','excludeunusedfields'}`, or `["fieldsizes","excludeunusedfields"]` specify the same formatting options.

Data Types: `char` | `string` | `cell`

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

Note

All fields in `chs` are optional. The presence of these optional fields depends on:

• Whether the transmission of DCI message is in a PDCCH using common search space mapping or in an EPDCCH.

• The release-specific features configured at the destination UE.

These additional UE-specific bit fields are off by default.

DCI format name, specified as a character vector or string scalar. For string scalar, use double quotes. See syntax descriptions for applicability.

Data Types: `char` | `string`

Physical control channel type used to carry DCI formats, specified as `'PDCCH'` or `'EPDCCH'`. The setting for `ChannelControlType` affects the presence of the HARQ-ACK resource offset field and message padding.

Data Types: `char` | `string`

Search space mapping for DCI formats 0/1A/1C, specified as `'UESpecific'` or `'Common'`. This field is only applicable for PDCCH. None of the additional fields can be present when formats 0 or 1A are mapped into the PDCCH common search space.

Data Types: `char` | `string`

Option to enable carrier indication field (CIF) in the UE configuration, specified as `'Off'` or `'On'`. By default, `EnableCarrierIndication` is disabled. When `EnableCarrierIndication` is enabled (`'On'`), the CIF is present in the UE-specific configuration.

Data Types: `char` | `string`

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` | `string`

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` | `string`

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`

Number of sub-channels in V2X PSSCH pool, specified as an integer scalar from 1 to 110. It affects the length of RIV in format 5A

Data Types: `double`

Data Types: `struct`

Input bits, specified as a column vector. `bitsin` is treated as the DCI information bit payload, that is, `bitsout` == `bitsin`. The length of `bitsin` must be one of the valid sizes for the format type and number of resource blocks. For information on link bandwidth assignment, see Specifying Number of Resource Blocks. For information on valid sizes, see `lteDCIInfo`.

When `bitsin` is specified, the structure `dciin` does not require the `DCIFormat` field. If the `DCIFormat` field is not present, `lteDCI` attempts to decode the format from the length of the payload vector `bitsin`.

Data Types: `double`

Input structure, specified as a structure that includes all the fields described in the structures `enb` and `dciin`.

Use of the `istr` input syntax is not recommended and will be removed in a future release. Instead, use one of the previous syntaxes that separates the parameters into different input structures.

Output Arguments

collapse all

DCI message structure, returned as a structure whose fields match the associated DCI format contents.

The field names associated with `dciout` depend on the DCI format field in `dciin`. By default, all values are set to zero. However, if any of the DCI fields are already present in the input `dciin`, their values are carried forward into `dciout`. The input field values appear in the associated bit positions in `bitsout`. Carrying the values forward allows for easy initialization of DCI field values, particularly the resource allocation type, which affects the fields used by the format. `dciout` also carries forward the `NDLRB` and `DCIFormat` fields supplied in `dciin`.

This table presents the fields associated with each DCI format as defined in TS 36.212 [2], Section 5.3.3.

DCI Formatsdciout FieldsSizeDescription
`'Format0'` `DCIFormat`-`'Format0'`
`CIF`0 or 3 bitsCarrier indicator field
`FreqHopping`1 bit PUSCH frequency hopping flag
`Allocation`Varies 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
`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.

`CSIRequest`1, 2, or 3 bitsCSI request
`SRSRequest`0 or 1 bit

SRS request. This field can only be present in DCI formats scheduling PUSCH which are mapped onto the UE specific search space given by the C-RNTI

`AllocationType`1 bit

Resource allocation type, only present if ${N}_{\text{RB}}^{\text{UL}}$${N}_{\text{RB}}^{\text{DL}}$.

`'Format1'` `DCIFormat    ` -`'Format1'`
`CIF`0 or 3 bitsCarrier indicator field
`AllocationType`

1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

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

`HARQACKResOffset`2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

`'Format1A'` `DCIFormat    `  -`'Format1A'`
`CIF`0 or 3 bitsCarrier indicator field
`AllocationType` 1 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
`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.

`SRSRequest`0 or 1 bit

SRS request. This field can only be present in DCI formats scheduling PUSCH which are mapped onto the UE specific search space given by the C-RNTI

`HARQACKResOffset`2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

`'Format1B'` `DCIFormat    `  -`'Format1B'`
`CIF`0 or 3 bitsCarrier indicator field
`AllocationType` 1 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
`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.

`TPMI         `

2 bits for two antennas

4 bits for four antennas

PMI information
`PMI          ` 1 bitPMI confirmation
`HARQACKResOffset`2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

`'Format1C'` `DCIFormat    `  - `'Format1C'`
`Allocation   ` Varies Resource block assignment/allocation
`ModCoding     ` 5 bits Modulation and coding scheme
`'Format1D'` `DCIFormat    `  - `'Format1D'`
`CIF`0 or 3 bitsCarrier indicator field
`AllocationType` 1 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
`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.

`TPMI         `

2 bits for two antennas

4 bits for four antennas

Precoding TPMI information
`DlPowerOffset` 1 bit Downlink power offset
`HARQACKResOffset`2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

`'Format2'` `DCIFormat    `  - `'Format2'`
`CIF`0 or 3 bitsCarrier indicator field
`AllocationType` 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

`Allocation   ` Varies Resource block assignment/allocation
`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.

`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
`PrecodingInfo`

3 bits for two antennas

6 bits for four antennas

Precoding information
`HARQACKResOffset`2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

`'Format2A'` `DCIFormat    `  -`'Format2A'`
`CIF`0 or 3 bitsCarrier indicator field
`AllocationType` 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

`Allocation   ` Varies Resource block assignment/allocation
`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.

`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
`PrecodingInfo`

0 bits for two antennas

2 bits for four antennas

Precoding information
`HARQACKResOffset`2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

`'Format2B'` `DCIFormat`  - `'Format2B'`
`CIF`0 or 3 bitsCarrier indicator field
`AllocationType` 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

`Allocation` Varies Resource block assignment/allocation
`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.

`HARQNo`

3 bits (FDD)

4 bits (TDD)

HARQ process number
`ScramblingId` 1 bitScrambling 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
`HARQACKResOffset`2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

`'Format2C'``DCIFormat`-`'Format2C'`
`CIF`0 or 3 bitsCarrier indicator field
`AllocationType` 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

`Allocation` Varies Resource block assignment/allocation
`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.

`HARQNo`

3 bits (FDD)

4 bits (TDD)

HARQ process number
`TxIndication`3 bitsAntenna ports, scrambling identity, and number of layers indicator
`SRSRequest`VariesSRS 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
`HARQACKResOffset`2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

`'Format2D'``DCIFormat`-`'Format2D'`
`CIF`0 or 3 bitsCarrier indicator field
`AllocationType` 1 bit

Resource allocation header: type 0, type 1. If downlink bandwidth is ≤10 PRBs there is no resource allocation header and resource allocation type 0 is assumed.

`Allocation` Varies Resource block assignment/allocation
`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.

`HARQNo`

3 bits (FDD)

4 bits (TDD)

HARQ process number
`TxIndication`3 bitsAntenna ports, scrambling identity, and number of layers indicator
`SRSRequest`VariesSRS 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
`REMappingAndQCL` 2 bits

PDSCH RE Mapping and Quasi-Co-Location Indicator

`HARQACKResOffset`2 bits

HARQ-ACK resource offset. Present when this format is carried by EPDCCH. Not present when this format is carried by PDCCH

`'Format3'` `DCIFormat` - `'Format3'`
`TPCCommands` Varies TPC commands for PUCCH and PUSCH
`'Format3A'` `DCIFormat` - `'Format3A'`
`TPCCommands` Varies TPC commands for PUCCH and PUSCH
`'Format4'``DCIFormat`- `'Format4'`
`CIF`0 or 3 bitsCarrier indicator field
`Allocation`VariesResource block assignment/allocation
`TPC`2 bits PUSCH TPC command
`CShiftDMRS`3 bits Cyclic shift for DM-RS
`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.

`CSIReq`VariesCSI request
`SRSRequest`2 bits SRS request
`AllocationType`1 bit

Resource allocation header type 0 or 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 bit New data indicator for transport block 2
`PrecodingInfo`

3 bits for two antennas

6 bits for four antennas

Precoding information
`'Format5'``DCIFormat`- `'Format5'`
`PSCCHResource`6 bits

Resource for PSCCH

`TPC`1 bit

TPC command for PSCCH and PSSCH

`FreqHopping`1 bit

Frequency hopping flag

`Allocation`Varies

Resource block assignment and hopping resource allocation

`TimeResourcePattern`7 bits Time resource pattern
`'Format5A'``DCIFormat`- `'Format5A'`
`CIF`3 bitsCarrier indicator
`FirstSubchannelIdx` $⌈{\mathrm{log}}_{2}\left({N}_{\text{subchannel}}^{\text{SL}}\right)⌉$Lowest index of the subchannel allocation to the initial transmission
`RIV`from 0 to 13 bits, $⌈{\mathrm{log}}_{2}\left(\frac{{N}_{\text{subchannel}}^{\text{SL}}×\left({N}_{\text{subchannel}}^{\text{SL}}+1\right)}{2}\right)⌉$Resource indication value
`TimeGap`4 bits

Time gap between initial transmission and retransmission

`SLIndex`2 bitsSL SPS configuration index

The `DCIFormat` field indicates the DCI format. All other fields are represented by an integer which is converted to a set of binary message bits for each individual field.

The `ModCoding` fields in the table correspond to the variable IMCS defined in TS 36.213 [3], Section 7.1.7, Table 7.1.7.1-1. This field expects to be assigned a decimal number. The call to `lteDCI` serializes `ModCoding` into a 5-bit field value. For example, the `ModCoding` field for 64QAM modulation (Qm) and transport block index (ITBS) 15 is assigned 17 (a decimal number).

The fields included in the `Allocation` structure vary based on the format type as outlined in these tables. All fields take a character vector of zeros and ones with the appropriate bit length.

Resource allocation type 0
DCI Formats `Allocation` FieldsSize (bits)Description
```'Format1' 'Format2' 'Format2A' 'Format2B'````Bitmap`VariesBitmap value in terms of RBG, specified as a character vector
Resource allocation type 1
DCI Formats `Allocation` FieldsSize (bits)Description
```'Format1' 'Format2' 'Format2A' 'Format2B'````Bitmap`VariesBitmap value in terms of RBG, specified as a character vector
`RBSubset`2 bitsSelected resource blocks subset indicator
`Shift  `1 bitShift of the resource allocation span indicator
Resource allocation type 2 (localized)
DCI Formats `Allocation` FieldsSize (bits)Description
```'Format1A' 'Format1B' 'Format1C' 'Format1D'``` `RIV`VariesResource indication value
Resource allocation type 2 (distributed)
DCI Formats `Allocation` FieldsSize (bits)Description
```'Format1A' 'Format1B' 'Format1C' 'Format1D'``` `RIV`VariesResource indication value
`Gap`1 bitGap value: 0 (gap1), 1 (gap2)
DCI Formats `Allocation` Fields Size (bits)Description
```'Format0' 'Format5'``` `RIV` VariesResource indication value
DCI Formats `Allocation` Fields Size (bits) Description
```'Format0' 'Format5'````RIV` VariesResource indication value
`HoppingBits` Varies

When the number of hopping bits is 1, `HoppingBits` value can be 0 or 1.
When the number of hopping bits is 2, `HoppingBits` value can be 00, 01, 10, or 11.
See TS 36.213 [3], Table 8.4-2.

DCI message in bit payload form, returned as a column vector. `bitsout` represents the set of message fields mapped to the information bit payload (including any zero-padding).

collapse all

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.

Algorithms

collapse all

Resource allocation type 0

In type 0 resource allocation, a bitmap represents a resource block group (RBG) allocated to a UE. `P` gives the RBG size, which can be deduced from TS 36.213 [3], Table 7.1.6.1-1 for a given system bandwidth. The number of bits in the `Bitmap` field is equal to $⌈NDLRB/P⌉$. Each bit in the `Bitmap` selects a small contiguous group whose size depends on the bandwidth (RBG: 1,…,4). The maximum resource block (RB) coverage of any type 0 allocation is the entire bandwidth, that is, a type 0 allocation with all the bits in bitmap set to `'1'` is equivalent to the entire bandwidth.

Example 50 RB bandwidth

The number of bits in `Bitmap` are 17. Each bit in the 17-bit bitmap selects a group of three RB (apart from the last group, which only contains two RB for this bandwidth). Each bit is associated with a group of RBs with the same color.

Resource allocation type 1

In type 1 resource allocation, a bitmap indicates physical resource blocks inside a selected resource block group subset p, where 0 ≤ p < P. The maximum resource block (RB) coverage of any type 1 allocation is a subset of entire bandwidth. A type 1 allocation, even with all the bits in the `Bitmap` set to `'1'`, does not span the entire bandwidth. Each bit in the bitmap selects a single RB from "islands" of small contiguous groups whose size (RBG) and separation depend on the total bandwidth. This grouping provides the provision of selecting a single RB without turning on any other RB.

In type 1, the resource block assignment signaling is split into three field parts:

1. `RBSubset` — Represents the selected resource block group subset

2. `Shift` — Indicates whether to apply an offset when interpreting the bitmap

3. `Bitmap` — Contains the bitmap that indicates to the UE the specific physical resource block within the resource block group subset.

In comparison to type 0, the bitmap size for type 1 is always short by $⌈{\mathrm{log}}_{2}\left(P\right)⌉+1$ bits, where P is defined as in resource allocation type 0.

Example 50 RB bandwidth

The number of bits in `Bitmap` are 14 (3 bits short as compared to type 0, due to `RBSubset` and `Shift` parameters). Each bit in the 14-bit bitmap selects an individual RB inside a selected subset. The figure shows all the bits in `Bitmap` set to `'1'` for different subsets and offset values.

Resource allocation type 2

In type 2 resource allocation, physical resource blocks are not directly allocated. Instead, virtual resource blocks are allocated, which are then mapped onto physical resource blocks. Type 2 allocation supports both localized and distributed virtual resource block allocation, differentiated by one-bit flag. The starting point of the virtual resource block and the length in terms of the contiguously allocated virtual resource blocks can be derived from Resource Indication Value (RIV) signaled within the DCI.

Example 50 RB bandwidth

A UE is allocated a bandwidth of 25 resource blocks (LCRBs=25), starting from resource block 10 (RBstart=10) in the frequency domain. To calculate the RIV value, refer to the formula given in TS 36.213 [3], Section 7.1.6.3, which yields RIV = 1210. Using this RIV, which is signaled in the DCI, the UE can unambiguously derive the starting resource block and the number of allocated resource blocks from RIV again.

For uplink nonhopping resource allocation, the rules for type 2 localized resource allocation apply for deriving the resource allocation from the RIV value.

When `FreqHopping` is set to 1, uplink hopping resource allocation is available. For uplink hopping resource allocation, two types of hopping are used: Type 1 PUSCH Hopping and Type 2 PUSCH Hopping. Do not confuse these types with downlink resource allocation types 1 and 2 described earlier. Type 1 PUSCH Hopping is calculated using the RIV value and parameters signaled by higher layers. Type 2 PUSCH Hopping is calculated using a predefined pattern, which is a function of the subframe and frame number, as defined in TS 36.211 [1], Section 5.3.4. The fundamental set of resource blocks used as part of the hopping is calculated via the rules for type 2 localized resource allocation from the RIV value, except either 1 or 2 (depending on system bandwidth) hopping bits have been deducted from the resource allocation bitmap. These hopping bits specify whether Type 1 or Type 2 PUSCH Hopping is used, and for the case of 2 bits, variations of the position of the Type 1 hopping in the frequency domain. The definition of the hopping bits can be found in TS 36.213 [3], Table 8.4-2. Bandwidth dependency for the number of hopping bits allocated follows the following rule:

• If the system BW is `NULRB<=49`, the number of hopping bits is 1, and `HoppingBits` can be 0 or 1.

• If the system BW is `NULRB>49`, the number of hopping bits is 2, and `HoppingBits` can be 00, 01, 10, or 11.

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

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