Documentation

lteDCI

Downlink control information format structures and bit payloads

Syntax

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

Description

example

[dcistr,dcibits] = lteDCI(enb,istr) creates and manipulates downlink control information (DCI) messages of the formats defined in TS 36.212, Section 5.3.3 of [2]. lteDCI creates a DCI message as it's output based on 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 the associated DCI format

  • 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 to blindly decode DCI format types.

The field names associated with the dcistr output structure depend 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. Carrying the values forward allows for easy initialization of DCI field values, particularly the resource allocation type.

    Note:   Our implementation assumes symmetric link bandwidth unless you specifically assign different values to NULRB and NDLRB. If the number of resource blocks is only initialized in 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 neither, NULRB or NDLRB, is defined.

[dcistr,dcibits] = lteDCI(istr) creates a DCI message. The fields described in the structure enb must be present as part of the input structure istr. The dcistr, in this case, also carries forward the NDLRB and istr.DCIFormat fields. This syntax is deprecated and will 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

collapse all

Create DCI

This example shows the creation of downlink control information (DCI) with Format 1A and distributed virtual resource block (VRB).

Create a DCI with Format 1A and distributed VRB allocation type. A distributed VRB allocation is configured by setting AllocationType to 1.

enb = struct('NDLRB',50,'CellRefP',1,'DuplexMode','FDD');
istr = struct('DCIFormat','Format1A','AllocationType',1);
dcistr = lteDCI(enb,istr)
dcistr = 

         DCIFormat: 'Format1A'
               CIF: 0
    AllocationType: 1
        Allocation: [1x1 struct]
         ModCoding: 0
            HARQNo: 0
           NewData: 0
                RV: 0
          TPCPUCCH: 0
          TDDIndex: 0

Input Arguments

collapse 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. NDLRB will also accept the standardized bandwidths in string format from the set {'1.4MHz', '3MHz', ‘5MHz', '10MHz', ‘15MHz', ‘20MHz'}.

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'

Duplexing mode, specified as:

  • 'FDD' for Frequency Division Duplex or

  • 'TDD' for Time Division Duplex

istr — Input structurestructure

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

Parameter FieldRequired or OptionalValuesDescription
DCIFormatRequired,

except when ibits is input then DCIFormat is optional

'Format0', 'Format1', 'Format1A', 'Format1B', 'Format1C', 'Format1D', 'Format2', 'Format2A', 'Format2B', 'Format2C', 'Format2D', '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 that is, 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

collapse all

dcistr — DCI message structurestructure

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

The field names associated with dcistr depend 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. Carrying the values forward allows for easy initialization of DCI field values, particularly the resource allocation type. The dcistr also carries forward the NDLRB and DCIFormat fields supplied in istr.

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

DCI FormatsDCISTR FieldsSizeDescription
'Format0'DCIFormat-'Format0'
FreqHopping1-bit PUSCH frequency hopping flag
Allocationvariable Resource block assignment/allocation
ModCoding5-bits Modulation, coding scheme and redundancy version
NewData1-bit New data indicator
TPC2-bits PUSCH TPC command
CShiftDMRS3-bits Cyclic shift for DM RS
CQIReq1-bit CQI request
TDDIndex2-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   variableResource 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
TDDIndex2-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'
AllocationType1-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-bitNew data indicator
RV           2-bits Redundancy version
TPCPUCCH     2-bits PUCCH TPC command
TDDIndex2-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'
AllocationType1-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-bitNew data indicator
RV           2-bits Redundancy version
TPCPUCCH     2-bits PUCCH TPC command
TPMI         2 bits for two antennas

4 bits for four antennas

PMI information
PMI          1-bitPMI confirmation
TDDIndex2-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'
AllocationType1-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-bitNew data indicator
RV           2-bits Redundancy version
TPCPUCCH     2-bits PUCCH TPC command
TPMI         2 bits for two antennas

4 bits for four antennas

Precoding TPMI information
DlPowerOffset1-bit Downlink power offset
TDDIndex2-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'
AllocationType1-bit Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

Allocation   variable Resource block assignment/allocation
TPCPUCCH2-bits PUCCH TPC command
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
PrecodingInfo3 bits for two antennas

6 bits for four antennas

Precoding information
TDDIndex2-bitsFor 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'
AllocationType1-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-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
PrecodingInfo0 bits for two antennas

2 bits for four antennas

Precoding information
TDDIndex2-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'
AllocationType1-bit Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

Allocationvariable Resource block assignment/allocation
TPCPUCCH2-bits PUCCH TPC command
HARQNo3 bits (FDD)

4 bits (TDD)

HARQ process number
ScramblingId1-bitScrambling identity
ModCoding1   5-bits Modulation and coding scheme for transport block 1
NewData1     1-bit New data indicator for transport block 1
RV12-bits Redundancy version for transport block 1
ModCoding25-bits Modulation and coding scheme for transport block 2
NewData21-bit New data indicator for transport block 2
RV22-bits Redundancy version for transport block 2
TDDIndex2-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'
AllocationType1-bit Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

Allocationvariable Resource block assignment/allocation
TPCPUCCH2-bits PUCCH TPC command
HARQNo3 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
RV12-bits Redundancy version for transport block 1
ModCoding25-bits Modulation and coding scheme for transport block 2
NewData21-bit New data indicator for transport block 2
RV22-bits Redundancy version for transport block 2
TDDIndex2-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.

'Format2D'DCIFormat-'Format2D'
AllocationType1-bit Resource allocation header: type 0, type 1

(only if downlink bandwidth is >10 PRBs)

Allocationvariable Resource block assignment/allocation
TPCPUCCH2-bits PUCCH TPC command
HARQNo3 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
RV12-bits Redundancy version for transport block 1
ModCoding25-bits Modulation and coding scheme for transport block 2
NewData21-bit New data indicator for transport block 2
RV22-bits Redundancy version for transport block 2
REMappingAndQCL2 bits

PDSCH RE Mapping and Quasi-Co-Location Indicator

'Format3'DCIFormat- 'Format3'
TPCCommandsvariable TPC commands for PUCCH and PUSCH
'Format3A'DCIFormat- 'Format3A'
TPCCommandsvariable TPC commands for PUCCH and PUSCH
'Format4'DCIFormat- 'Format4'
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 for two antennas

6 bits for four antennas

Precoding information

The DCIFormat fields in the table take a string indicating the DCI format. All other fields take a string of zeros and ones of the right size.

The ModCoding fields in the table correspond to the variable IMCS defined in TS 36.213, Section 7.1.7, Table 7.1.7.1-1 [3]. This field expects to be assigned a decimal number. The call to lteDCI serializes ModCoding into a 5-bit field value. For example, 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 the tables the follow. All fields take a string of zeroes and ones with the bit values.

Resource Allocation type 0
DCI Formats Allocation FieldsSize (bits)Description
'Format1'
'Format2'
'Format2A'
'Format2B'
BitmapvariableBitmap value in terms of RBG, type string

Resource Allocation type 1
DCI Formats Allocation FieldsSize (bits)Description
'Format1'
'Format2'
'Format2A'
'Format2B'
BitmapvariableBitmap value in terms of RBG, type string
RBSubset2 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'
RIVvariableResource indication value

Resource Allocation type 2 (distributed)
DCI Formats Allocation FieldsSize (bits)Description
'Format1A'
'Format1B'
'Format1C'
'Format1D'
RIVvariableResource indication value
Gap1 bitGap value: 0 (gap1), 1 (gap2)

Uplink Non-Hopping allocation
DCI Formats Allocation Fields Size (bits)Description
'Format0'RIVvariableResource indication value

Uplink Hopping allocation
DCI Formats Allocation Fields Size (bits) Description
'Format0'RIVvariableResource indication value
HoppingBitsvariable

When number of hopping bits is 1, HoppingBits value can be 0 or 1

When number of hopping bits is 2, HoppingBits value can be 00, 01, 10, or 11

See TS 36.213, Table 8.4–2 [3]

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

More About

collapse all

Algorithms

Resource allocation type 0

In type 0 resource allocation, a bit map represents a resource block group (RBG) allocated to a UE. P gives the RBG size, which can be deduced from TS 36.213, 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 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 BW). 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. 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-parts:

  1. — theRBSubset field part represents the selected resource block group subset

  2. — the Shift field part indicates whether to apply offset when interpreting the bitmap

  3. — the Bitmap filed part contains the bitmap that indicates to the UE specific physical resource block inside the resource block group subset.

In comparison to type 0, the bitmap size for type 1 is always short by "log2(P)+1 " number of 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 compare 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 following figure illusturates 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 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 is allocated 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, Section 7.1.6.3 [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.

Uplink Non-Hopping Resource Allocation

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

Uplink Hopping Resource Allocation

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 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 TS 36.211, Section 5.3.4 [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 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, Table 8.4-2 [3]. Bandwidth dependency for number of hopping bits allocated follows the following rule:

  • If system BW (NULRB<=49), number of hopping bits is 1 and HoppingBits value can be 0 or 1

  • If system BW (NULRB>49 ), number of hopping bits is 2 and HoppingBits value can be 00, 01, 10, or 11

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.

Was this topic helpful?