Accelerating the pace of engineering and science

# lteDCI

## Syntax

• [dcistr,dcibits] = lteDCI(enb,istr)
• [dcistr,dcibits] = lteDCI(istr) example
• [dcistr,dcibits] = lteDCI(istr,ibits)

## Description

[dcistr,dcibits] = lteDCI(enb,istr) creates and manipulates downlink control information (DCI) messages of the formats defined in section 5.3.3 of [2]. lteDCI creates a DCI message in structure and bit payload forms for the cell-wide settings enb and the input structure istr.This function returns a DCI message in two forms, a structure dcistr whose fields match those of the associated DCI format, and a vector dcibits representing the set of message fields mapped to the information bit payload (including any zero padding). lteDCI can be used to create default DCI or blindly decode DCI format types.

The field names associated with the dcistr output structure are dependent on the DCI format field in istr and are described in Output Arguments.

By default, all values are set to zero. However, if any of the DCI fields are already present in the input istr, their values are carried forward into dcistr. This allows for easy initialization of DCI field values, particularly the resource allocation type.

Currently, lteDCI looks for enb.NULRB in case of DCI Format0. However, if this parameter is not provided, lteDCI uses enb.NDLRB, assuming the uplink and downlink system bandwidths are same.

example

[dcistr,dcibits] = lteDCI(istr) creates a DCI message as above, except the fields described in the structure enb above must be present as part of the input structure istr. The dcistr, in this case, also carries forward the enb.NDLRB and istr.DCIFormat fields. This syntax is deprecated and may be removed in a future release.

[dcistr,dcibits] = lteDCI(istr,ibits) creates a DCI where all the message fields are initialized from the input bit vector, ibits. In this case, ibits is treated as the DCI information bit payload; dcibits is equal to ibits. The length of ibits must be one of the valid sizes for the format type and NULRB/NDLRB (see lteDCIInfo for details). The fields described in the enb structure must be present as part of the istr input structure. This syntax differs from the previous one in that the istr input argument does not require the DCIFormat field. If this field is not present, the function attempts to decode the format blindly from the length of the payload vector, ibits.

## Examples

expand all

### Create DCI

Create a DCI with Format 1A and distributed VRB allocation type. Set AllocationType to 1.

```istr = struct('DCIFormat','Format1A','AllocationType',1);
dcistr = lteDCI(struct('NDLRB',50),istr)```
```         DCIFormat: 'Format1A'
CIF: 0
AllocationType: 1
Allocation: [1x1 struct]
ModCoding: 0
HARQNo: 0
NewData: 0
RV: 0
TPCPUCCH: 0
TDDIndex: 0```

## Input Arguments

expand all

### enb — eNodeB cell-wide settingsstructure

eNodeB cell-wide settings, specified as a structure that can contain the following parameter fields.

Parameter FieldRequired or OptionalValuesDescription
NDLRBRequired

Scalar integer (6, ..., 110). Standard bandwidth values are 6, 15, 25, 50, 75, and 100.

Number of downlink (DL) resource blocks (RBs)

NULRBRequired

Positive scalar integer

Number of uplink (UL) resource blocks (RBs)

CellRefPOptional

1 (default), 2, 4

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

DuplexModeOptional

'FDD' (default), 'TDD'

Duplex mode

### istr — Input structurestructure

Input structure, specified as a structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
DCIFormatRequired, but optional if ibits is input

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

Downlink control information (DCI) format type string

### ibits — Input bitsvector

Input bits, specified as a column vector. ibits is treated as the DCI information bit payload i.e. dcibits == ibits. The length of ibits must be one of the valid sizes for the format type and NULRB/NDLRB (see lteDCIInfo for details). When you specify ibits, the structure istr 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 ibits.

Data Types: double

## Output Arguments

expand all

### dcistr — DCI message structurestructure

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

The field names associated with dcistr are dependent on the DCI format field in istr. By default, all values are set to zero. However, if any of the DCI fields are already present in the input istr, their values are carried forward into dcistr. This allows for easy initialization of DCI field values, in particular the resource allocation type.

In case of DCI Format0, lteDCI looks for NULRB; however, if this parameter is not provided, lteDCI uses NDLRB because it assumes the uplink and downlink system bandwidths are same.

The following table presents the fields associated with each DCI format.

DCI Formats DCISTR Fields 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-bit

Resource 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
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-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
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'
CIFvariableCarrier 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
TxIndication3-bitsAntenna port(s), scrambling identity, and number of layers indicator
SRSRequestvariableSRS 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 variable TPC commands for PUCCH and PUSCH
'Format3A'DCIFormat  - 'Format3A'
TPCCommands variable TPC commands for PUCCH and PUSCH
'Format4'DCIFormat - 'Format4'
CIFvariableCarier indicator
AllocationvariableResource block assignment/allocation
TPC2-bits PUSCH TPC command
CShiftDMRS3-bits Cyclic shift for DM RS
TDDIndex2-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.

CQIReqvariableCQI request
SRSRequest2-bits SRS request
AllocationType1-bits Resource allocation header: non-hopping PUSCH resource allocation type 0, type 1
ModCoding5-bits Modulation, coding scheme and redundancy version
NewData1-bits New data indicator
ModCoding15-bits Modulation and coding scheme for transport block 1
NewData11-bits New data indicator for transport block 1
ModCoding25-bits Modulation and coding scheme for transport block 2
NewData21-bits New data indicator for transport block 2
PrecodingInfo3-bits
(2 antennas)

6-bits
(4 antennas)

Precoding information

The DCIFormat fields in the table above take a string indicating the DCI format. All other fields take a string of 0s and 1s of the right size.

The ModCoding fields in the table above corresponds the variable IMCS defined in section 7.1.7, table 7.1.7.1-1 of [3]. This field should be assigned a decimal number and the call to lteDCI will serialize this into a 5-bit field value. For example, ModCoding field for 64QAM modulation (Qm) and transport block index (ITBS) 15 should be assigned 17 (a decimal number).

By default, all values are set to zero. However if any of the DCI fields are already present in input istr, their values are carried forward intodcistr. This allows for easy initialization of DCI field values, in particular the resource allocation type. The dcistr also carries forward the NDLRB and DCIFormat fields supplied in istr.

The Allocation field is a structure. The field names of theAllocation structure are dependent on the format type and are described below. All fields take a string of zeroes and ones with the bit values.

Resource Allocation type 0
DCI Formats Allocation Fields Size (bits) Description
'Format1'
'Format2'
'Format2A'

'Format2B'

Bitmap variable Bitmap value in terms of RBG, type string

Resource Allocation type 1
DCI Formats Allocation Fields Size (bits) Description
'Format1'
'Format2'
'Format2A'

'Format2B'

Bitmap variable Bitmap value in terms of RBG, type string
RBSubset 2 bits Selected resource blocks subset indicator
Shift   1 bit Shift of the resource allocation span indicator

Resource Allocation type 2 (localized)
DCI Formats Allocation Fields Size (bits) Description
'Format1A'
'Format1B'
'Format1C'
'Format1D'
RIV variable Resource indication value

Resource Allocation type 2 (distributed)
DCI Formats Allocation Fields Size (bits) Description
'Format1A'
'Format1B'
'Format1C'
'Format1D'
RIV variable Resource indication value
Gap 1 bit Gap value: 0 (gap1), 1 (gap2)

DCI Formats Allocation Fields Size (bits) Description
'Format0'RIV variable Resource indication value

DCI Formats Allocation Fields Size (bits) Description
'Format0'RIV variable Resource indication value
HoppingBits variable Gap value: 0 (gap1), 1 (gap2)

Data Types: struct

### dcibits — DCI message in bit payload formvector

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

Data Types: int8

expand all

### Resource Allocation type 0

In type 0 resource allocation, a bit map represents a resource block group (RBG) allocated to a UE. The size of RBG is given by P, which can be deduced from Table 7.1.6.1-1 of [3] for given system bandwidth. The numbers of bits in Bitmap field are equal to $⌈NDLRB/P⌉$. Each bit in the Bitmap will select 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 i.e. 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 3 RB (apart from the last group which will only contains 2 RB for this BW) i.e. each bit is associated with a group of RE with the same color.

### Resource Allocation type 1

In type 1 resource allocation, a bit map 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 i.e. 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 will selects a single RB from ‘islands' of small contiguous groups whose size (RBG) and separation depend on the total bandwidth. This 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 3-parts: one part represents the selected resource block group subset (by field RBSubset), second part indicates whether to apply offset when interpreting the bitmap (by field Shift) and the third part contains the bitmap that indicates to the UE specific physical resource block inside the resource block group subset (by Bitmap).

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

Example – 50 RB Bandwidth, the number of bits in Bitmap are 14 (3-bits short as compare to type 0 due to RBSubset and Shift parameters). Each bit in the 14 bit bitmap will select an individual RB inside a selected subset. Below shows the case of setting all the bits in Bitmap field 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 information regarding the starting point of virtual resource block and the length in terms of contiguously allocated virtual resource block can be derived from Resource Indication Value (RIV) signaled within the DCI.

Example – 50 RB Bandwidth, a UE shall be assigned an allocation 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 Section 7.1.6.3 of [3], which yields RIV = 1210. This RIV is signaled in DCI and the UE could unambiguously derive the starting resource block and the number of allocated resource blocks from RIV again.

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

For uplink hopping resource allocation, two types of hopping are used, Type 1 PUSCH Hopping and Type 2 PUSCH Hopping. These types are not to be confused with downlink resource allocation type 1 and type 2 described earlier. Type 1 PUSCH Hopping is calculated using the RIV value and a number of parameters signalled by higher layers. Type 2 PUSCH Hopping is calculated using a predefined pattern, a function of the subframe and frame number, which is defined in Section 5.3.4 of [1]. 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 to be 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 Table 8.4-2 of [3].

## References

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

[2] 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: http://www.3gpp.org.

[3] 3GPP TS 36.213. "Physical layer procedures." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.