Main Content

lteDCIResourceAllocation

DCI message physical resource blocks allocation

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 resource 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 = 1x2 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 resource indication value (RIV) determination.

enbue = struct('NDLRB',50);
dcistr = lteDCI(enbue,struct('DCIFormat','Format0','AllocationType',1));
dcistr.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(enbue.NDLRB,20);
for i = 0:9
    enbue.NSubframe = i;
    prbSet = lteDCIResourceAllocation(enbue,dcistr);
    prbSet = repmat(prbSet,1,2/size(prbSet,2));
    for s = 1:2
        subframeslots(prbSet(:,s)+1,2*i+s) = 20+s*20;
    end
end
imagesc(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.

enbue = struct('NDLRB',50,'NCellID',0);
dcistr = lteDCI(enbue,struct('DCIFormat','Format0','AllocationType',0,...
    'FreqHopping',1));
dcistr.Allocation.HoppingBits = 0;
dcistr.Allocation.RIV = 110;
enbue.PUSCHHopping = 'InterAndIntra';
enbue.MacTxNumber = 0;
enbue.NSubbands = 1;
enbue.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(enbue.NDLRB,20);
for i = 0:9
    enbue.NSubframe = i;
    prbSet = lteDCIResourceAllocation(enbue,dcistr);
    prbSet = repmat(prbSet,1,2/size(prbSet,2));
    for s = 1:2
        subframeslots(prbSet(:,s)+1,2*i+s) = 20+s*20;
    end
end
imagesc(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
NDLRBRequired

Scalar integer from 6 to 110

Number of downlink resource blocks (NRBDL)

CellRefPOptional

1, 2, 4

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

DuplexModeOptional

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

  NULRBRequired

Scalar integer from 6 to 110

Number of uplink resource blocks. (NRBUL)

The following parameters apply when dcistr.FreqHopping = 1

  NCellIDRequired

Integer from 0 to 503

Physical layer cell identity

  NSubframeRequired

0 (default), nonnegative scalar integer

Subframe number

  NFrameRequired

0 (default), nonnegative scalar integer

Frame number

  PUSCHHoppingOptional

'Inter' (default), 'InterAndIntra'

Uplink subframe hopping mode

  MacTxNumberOptional

Scalar integer from 0 (default) to 27

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

  NSubbandsOptional

1 (default), 2, 3, or 4

Number of subbands.

  PUSCHHoppingOffsetOptional

Scalar integer from 0 (default) to 98

PUSCH hopping offset

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

  NULRBRequired

Scalar integer from 6 to 110

Number of uplink resource blocks. (NRBUL)

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

  NSubframePSSCHRequiredInteger

Subframe number in PSSCH subframe pool

  PSSCHHoppingParameterOptionalInteger from 0 (default) to 510. All values ≥ 504 are set to 510.

PSSCH hopping parameter

  NSubbandsOptional1, 2, or 4

Number of subbands

  PSSCHHoppingOffsetOptionalInteger from 0 (default) to 110

PSSCH hopping offset

  PRBPoolOptionalInteger 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

The following parameters apply for DCI Format 5A (dcistr = 'Format5A').

PSSCHNSubchannelsOptionalInteger from 1 (default) to 110

Number of sub-channels in the V2X PSSCH resource pool

PSSCHSubchannelSizeOptionalInteger from 1 to 110. Default value is 4.Number of PRB in each sub-channel
PSSCHSubchannelPRBStartOptionalInteger from 0 (default) to 109

First PRB index associated with first sub-channel of the resource pool

PSSCHAdjacencyOptional

'On' (default), 'Off'

Whether PSCCH and PSSCH are transmitted in adjacent PRB

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'
CIF0 or 3 bitsCarrier indicator field
FreqHopping1 bit PUSCH frequency hopping flag
AllocationVaries 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
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.

CSIRequest1, 2, or 3 bitsCSI request
SRSRequest0 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

AllocationType1 bit

Resource allocation type, only present if NRBULNRBDL.

'Format1' DCIFormat     -'Format1'
CIF0 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.

HARQACKResOffset2 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'
CIF0 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.

SRSRequest0 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

HARQACKResOffset2 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'
CIF0 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
HARQACKResOffset2 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'
CIF0 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
HARQACKResOffset2 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'
CIF0 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
HARQACKResOffset2 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'
CIF0 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
HARQACKResOffset2 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'
CIF0 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
HARQACKResOffset2 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'
CIF0 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
TxIndication3 bitsAntenna ports, scrambling identity, and number of layers indicator
SRSRequestVariesSRS 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
HARQACKResOffset2 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'
CIF0 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
TxIndication3 bitsAntenna ports, scrambling identity, and number of layers indicator
SRSRequestVariesSRS 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

HARQACKResOffset2 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'
CIF0 or 3 bitsCarrier indicator field
AllocationVariesResource 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.

CSIReqVariesCSI request
SRSRequest2 bits SRS request
AllocationType1 bit

Resource allocation header type 0 or type 1.

ModCoding5 bits Modulation, coding scheme, and redundancy version
NewData1 bitNew data indicator
ModCoding15 bits Modulation and coding scheme for transport block 1
NewData11 bitNew data indicator for transport block 1
ModCoding25 bits Modulation and coding scheme for transport block 2
NewData21 bit New data indicator for transport block 2
PrecodingInfo

3 bits for two antennas

6 bits for four antennas

Precoding information
'Format5'DCIFormat- 'Format5'
PSCCHResource6 bits

Resource for PSCCH

TPC1 bit

TPC command for PSCCH and PSSCH

FreqHopping1 bit

Frequency hopping flag

AllocationVaries

Resource block assignment and hopping resource allocation

TimeResourcePattern7 bits Time resource pattern
'Format5A'DCIFormat- 'Format5A'
CIF3 bitsCarrier indicator
FirstSubchannelIdx log2(NsubchannelSL)Lowest index of the subchannel allocation to the initial transmission
RIVfrom 0 to 13 bits, log2(NsubchannelSL×(NsubchannelSL+1)2)Resource indication value
TimeGap4 bits

Time gap between initial transmission and retransmission

SLIndex2 bitsSL SPS configuration index

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

More About

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

  • Sidelink V2X PSSCH allocations (signalled by DCI format 5A messages when in sidelink transmission mode 3) create a single contiguous set of PRB using one or more sub-channels. See TS 36.213 [1], sections 14.1.1.4A and 14.1.1.4B for sidelink transmission mode 3 and mode 4 respectively. TM2 and TM4 use autonomous scheduling and therefore do not employ DCI messages from the eNodeB to deliver the transmission grants.

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

Version History

Introduced in R2014a