# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

# lteDCIResourceAllocation

DCI message physical resource blocks allocation

## Syntax

``````[prbset, nrbg, rbgsize] = lteDCIResourceAllocation(enbue,dcistr)``````
``````[prbset, nrbg, rbgsize] = lteDCIResourceAllocation(dcistr)``````

## Description

example

``````[prbset, nrbg, rbgsize] = lteDCIResourceAllocation(enbue,dcistr)``` returns a matrix containing the zero-based physical resource block (PRB) indices `prbset`, the number of resource block groups `nrbg`, and the resource block group size `rbgsize`, for the specified DCI message settings structure `enbue` and DCI message structure `dcistr`. TS 36.213 [1] specifies resource allocation types used for downlink, uplink and sidelink. For more information, see Resource Allocation Types.If you specify DCI Format 0, Format 4, or Format 5 in `dcistr``.``DCIFormat`, the function sets the system bandwidth based on the number of uplink resource blocks, `enbue``.``NULRB`. If you do not specify `enbue``.``NULRB`, the function sets the system bandwidth based on the number of downlink resource blocks, `enbue``.``NDLRB`. For all other formats, the function first checks `enbue``.``NDLRB` for the number of resource blocks. For more information, see Specifying Number of Resource Blocks.```
``````[prbset, nrbg, rbgsize] = lteDCIResourceAllocation(dcistr)``` returns outputs `prbset`, `nrbg`, and `rbgsize` as above, except the fields described in structure `enbue` must be present as part of `dcistr`. Calling `lteDCIResourceAllocation` specifying the `dcistr` structure as the only input argument is not recommended because this signature will be removed in a future release.```

## Examples

collapse all

Allocate DCI resource and shows the allocation of the DCI resources.

Create a DCI message structure with a system bandwidth of 50 resourse blocks and DCI Format 1A.

```enb = struct('NDLRB',50); dciStr = lteDCI(enb,struct('DCIFormat','Format1A','AllocationType',1)); ```

Return allocated physical resource block indices, the number of resource block groups, and the resource block group size.

```[prbSet, nrBg, rbgSize] = lteDCIResourceAllocation(enb,dciStr) ```
```prbSet = 1×2 uint64 row vector 0 27 nrBg = int32 17 rbgSize = int32 3 ```

Display the PRB allocations associated with the sequence of subframes in a frame for DCI Format 0 and uplink resource allocation type 1.

Configure a type 1 uplink resource allocation (multi-cluster). TS 36.213, Section 8.1.2 describes the resourse indication value (RIV) determination.

```enb = struct('NDLRB',50); dci = lteDCI(enb,struct('DCIFormat','Format0','AllocationType',1)); dci.Allocation.RIV = 1; ```

Display an image of the PRBs used in each slot of each subframe in a frame.

• Create a `subframeslots` matrix full of zeros. There are 20 slots per frame, specifically two slots per subframe and ten subframes per frame.

• Loop through assigning a PRB set of indices for each subframe. Also assign a value in `subframeslots` for each occupied PRB index.

```subframeslots = zeros(enb.NDLRB,20); for i = 0:9 enb.NSubframe = i; prbSet = lteDCIResourceAllocation(enb,dci); prbSet = repmat(prbSet,1,2/size(prbSet,2)); for s = 1:2 subframeslots(prbSet(:,s)+1,2*i+s) = 20+s*20; end end image(subframeslots); axis xy; xlabel('Subframe Slots'); ylabel('PRB Indices'); ```

Observe from the image that the same set of PRB indices is used in each slot.

Display the PRB allocations associated with the sequence of subframes in a frame for an uplink resource allocation with hopping.

Configure a type 1 uplink resource allocation that has type 0 hopping and slot and subframe hopping.

```enb = struct('NDLRB',50,'NCellID',0); dci = lteDCI(enb,struct('DCIFormat','Format0','AllocationType',0,... 'FreqHopping',1)); dci.Allocation.HoppingBits = 0; dci.Allocation.RIV = 110; enb.PUSCHHopping = 'InterAndIntra'; enb.MacTxNumber = 0; enb.NSubbands = 1; enb.PUSCHHoppingOffset = 10; ```

Display an image of the PRBs used in each slot of each subframe in a frame.

• Create a `subframeslots` matrix full of zeros. There are 20 slots per frame, specifically two slots per subframe and ten subframes per frame.

• Loop through assigning a PRB set of indices for each subframe. Also assign a value in `subframeslots` for each occupied PRB index.

```subframeslots = zeros(enb.NDLRB,20); for i = 0:9 enb.NSubframe = i; prbSet = lteDCIResourceAllocation(enb,dci); prbSet = repmat(prbSet,1,2/size(prbSet,2)); for s = 1:2 subframeslots(prbSet(:,s)+1,2*i+s) = 20+s*20; end end image(subframeslots) axis xy xlabel('Subframe Slots') ylabel('PRB Indices') ```

Observe from the image that the occupied PRB indices hops in odd and even slots.

## Input Arguments

collapse all

DCI message settings, specified as a structure. `enbue` can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
`NDLRB`Required

Scalar integer from 6 to 110

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

`CellRefP`Optional

1, 2, 4

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

`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 `dcistr````.DCIFormat = 'Format0' or 'Format4'```

`NULRB`Required

Scalar integer from 6 to 110

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

The following parameters apply when `dcistr``.FreqHopping` = 1

`NCellID`Required

Integer from 0 to 503

Physical layer cell identity

`NSubframe`Required

0 (default), nonnegative scalar integer

Subframe number

`NFrame`Required

0 (default), nonnegative scalar integer

Frame number

`PUSCHHopping`Optional

`'Inter'` (default), `'InterAndIntra'`

`MacTxNumber`Optional

Scalar integer from 0 (default) to 27

Number of the current MAC (re-)transmission, CURRENT_TX_NB

`NSubbands`Optional

1 (default), 2, 3, or 4

Number of subbands.

`PUSCHHoppingOffset`Optional

Scalar integer from 0 (default) to 98

PUSCH hopping offset

The following parameters apply for DCI Format 5 (`dcistr` = `'Format5'`).

`NULRB`Required

Scalar integer from 6 to 110

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

The following parameters apply for DCI Format 5 (`dcistr` = `'Format5'`) with frequency hopping (`dcistr````.FreqHopping = 1```).

`NSubframePSSCH`RequiredInteger

Subframe number in PSSCH subframe pool

`PSSCHHoppingParameter`OptionalInteger from 0 (default) to 510. All values ≥ 504 are set to 510.

PSSCH hopping parameter

`NSubbands`Optional1, 2, or 4

Number of subbands

`PSSCHHoppingOffset`OptionalInteger from 0 (default) to 110

PSSCH hopping offset

`PRBPool`OptionalInteger vector

PSSCH resource block pool (sidelink transmission mode 2). A vector of zero-based indices giving the PRBs in the pool. If absent or empty then the pool is assumed to be the full transmission bandwidth

Data Types: `struct`

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. The format is expected to be one of the formats generated by `lteDCI`. The LTE standard defines resource allocations types for downlink, uplink, and sidelink. For more information, see Resource Allocation Types

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

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

Data Types: `struct`

## Output Arguments

collapse all

Physical resource block indices, returned as a nonnegative integer column-vector or N-by-2 matrix of zero-based indices. The returned `prbset` will be a single column vector or a two-column matrix depending on whether the allocation type defines a different set of PRB indices in the first and second slots of the subframe.

Data Types: `uint64`

Number of resource block groups in the allocation, returned as an integer.

Data Types: `int32`

Number of resource blocks in a group, returned as an integer.

Data Types: `int32`

collapse all

### Resource Allocation Types

The LTE standard specifies resource allocation types used for downlink, uplink and sidelink. For a detailed description of the resource allocation types, see `lteDCI`.

• For downlink, the LTE standard specifies three resource allocation types: type 0, 1, and 2. In terms of the DCI formats, formats 1, 2, 2A, 2B, 2C , and 2D can use either resource allocation type 0 or type 1, with the choice signalled by `dcistr.AllocationType`=0 and `dcistr.AllocationType`=1 respectively. DCI formats 1A, 1B, 1C, and 1D use resource allocation type 2, which can be configured to be localized or distributed across resource blocks, signalled by `dcistr.AllocationType`=0 and `dcistr.AllocationType`=1 respectively.

• For uplink allocations (signaled in DCI format 0 messages), the allocation type is either hopping or non-hopping, signalled by `dcistr.FreqHopping`=1 and `dcistr.FreqHopping`=0, respectively.

• For hopping allocations, there are two types of hopping: type 1 PUSCH hopping and type 2 PUSCH hopping (frequency hopping with a predefined pattern). The hopping type is signalled by `dcistr.Allocation.HoppingBits` as described in TS 36.213 [1], Table 8.4-2.

• For non-hopping uplink allocations, there are two types of resource allocation: type 0 and type 1. These are signalled by `dcistr.AllocationType`=0 and `dcistr.AllocationType`=1 respectively. In case of DCI format 0 and uplink resource allocation type 1, the concatenation of the frequency hopping flag field (`dcistr.FreqHopping`) and the resource block assignment and hopping resource allocation field provides the resource allocation field (`dcistr.Allocation`). Type 0 allocations create a single contiguous set of PRB, whereas type 1 can create two contiguous PRB sets. The DCI format 4 messages can only signal non-hopping resource allocations type 0 and type 1.

• For sidelink PSSCH (signaled by DCI format 5 messages), allocations are the same as uplink PUSCH allocation type 0, both non-hopping and hopping, but with a different set of additional parameters required in the hopping case. Details for sidelink transmission mode 1 and mode 2 are specified in TS 36.213 [1], Sections 14.1.1.2 and 14.1.1.4 respectively.

All allocations define a single set of PRB for both slots in a subframe (`prbset` is a column vector) except for the distributed resource allocation type 2 and uplink hopping allocations, where different PRB sets are used across the slot pair.

The allocation type may also define a minimum unit of resource block allocation, which is defined by the resource block group size, `rbgsize`. This specifies the number of resource blocks in a group. There are `nrbg` resource block groups in the allocation.

### Specifying Number of Resource Blocks

The number of resource blocks specifies the uplink and downlink bandwidth. The LTE System 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.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.