Documentation

lteDCIResourceAllocation

DCI message physical resource blocks allocation

Syntax

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

Description

example

[prbset, nrbg, rbgsize] = lteDCIResourceAllocation(enbue,dcistr) returns the 0-based allocated physical resource block indices for the given input DCI message structure. lteDCIResourceAllocation returns a matrix prbset containing the 0-based physical resource block (PRB) indices, number of resource block groups nrbg, and resource block group size rbgsize, defined by the resource allocation part of DCI message structure dcistr and settings from the structure enbue.

The structure dcistr is expected to be one of the set of formats generated by the lteDCI function. 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 in the first and second slots of the subframe. The allocation type may also define a minimum unit of resource block allocation 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. The returned prbset contains 0-based PRBs.

Unless specifically defined otherwise, it is assumed the system bandwidth (that is, the number of resource blocks specified for allocation) is the same for uplink and downlink. If you specify DCI Format 0 or Format 4 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. If enbue.NDLRB is not provided then it will use enbue.NULRB. The structure fields enbue.NDLRB and enbue.NULRB have no default so if neither is initialized an error occurs.

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

The LTE standard specifies three downlink 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 (specified 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. The hopping type is signalled by dcistr.Allocation.HoppingBits as described in TS 36.213, Table 8.4-2 [1].

Similarly, for non-hopping 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). The DCI format 4 messages can only signal non-hopping resource allocation Type 0 and Type 1.

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

Examples

collapse all

Get Allocated PRB Indices for DCI Message

This example allocates 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));
Warning: Using default value for parameter field DuplexMode (FDD) 
Warning: Using default value for parameter field CellRefP (1) 

The warning messages generated simply advise you that default values are available and being used for uninitialized parameters. To suppress warnings for defaulted lte parameter settings precede code with the following command lteWarning('off','DefaultValue').

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 =

                    0                   27


nrBg =

          17


rbgSize =

           3

Input Arguments

collapse all

enbue — DCI message settingsstructure

DCI message settings, specified as a structure. enbue can contain the following 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)

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

Positive scalar integer

Number of uplink (UL) resource blocks (RBs)

The following parameters apply when dcistr.FreqHopping = 1

  NCellIDRequired

Nonnegative scalar integer (0,…,503)

Physical layer cell identity

  NSubframeRequired

Nonnegative scalar integer

Subframe number

  NFrameRequired

0 (default), Nonnegative scalar integer

Frame number

  PUSCHHoppingOptional

'Inter' (default), 'InterAndIntra'

Uplink subframe hopping mode

  MacTxNumberOptional

0 (default), 0 ... 27, Nonnegative scalar integer.

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

  NSubbandsOptional

1 (default), 1 ... 4, Nonnegative scalar integer.

Number of subbands.

  PUSCHHoppingOffsetOptional

0 (default), 0 ... 98, Nonnegative scalar integer.

PUSCH hopping offset

Data Types: struct

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. The format is expected to be one of the formats generated by lteDCI.

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

DCI Formats DCISTRFields Size Description
'Format0'DCIFormat     'Format0'
FreqHopping1-bit PUSCH frequency hopping flag
Allocationvariable Resource block assignment/allocation
ModCoding 5-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-bitResource allocation header: type 0, type 1 (only if downlink bandwidth is >10 PRBs)
Allocationvariable Resource block assignment/allocation
ModCoding5-bits Modulation and coding scheme
HARQNo3-bits (FDD), 4-bits (TDD)HARQ process number
NewData1-bit New data indicator
RV2-bits Redundancy version
TPCPUCCH2-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)
Allocationvariable Resource block assignment/allocation
ModCoding5-bits Modulation and coding scheme
HARQNo3-bits (FDD), 4-bits (TDD)HARQ process number
NewData1-bit New data indicator
RV2-bits Redundancy version
TPCPUCCH2-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)
Allocationvariable Resource block assignment/allocation
ModCoding5-bits Modulation and coding scheme
HARQNo3-bits (FDD), 4-bits (TDD)HARQ process number
NewData1-bit New data indicator
RV2-bits Redundancy version
TPCPUCCH2-bits PUCCH TPC command
TPMI2-bits (2 antennas), 4-bits (4 antennas)PMI information
PMI1-bit PMI 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'
Allocationvariable Resource block assignment/allocation
ModCoding5-bits Modulation and coding scheme
'Format1D'DCIFormat'Format1D'
AllocationType1-bit VRB assignment flag: 0 (localized), 1 (distributed)
Allocationvariable Resource block assignment/allocation
ModCoding5-bits Modulation and coding scheme
HARQNo3-bits (FDD), 4-bits (TDD) HARQ process number
NewData1-bit New data indicator
RV2-bits Redundancy version
TPCPUCCH2-bits PUCCH TPC command
TPMI2-bits (2 antennas), 4-bits (4 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)
Allocationvariable Resource block assignment/allocation
TPCPUCCH2-bits PUCCH TPC command
HARQNo3-bits (FDD), 4-bits (TDD)HARQ process number
SwapFlag1-bit Transport block to codeword swap flag
ModCoding15-bits Modulation and coding scheme for transport block 1
NewData11-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
PrecodingInfo3-bits (2-antennas), 6-bits (4-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.
'Format2A'DCIFormat'Format2A'
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
SwapFlag1-bit Transport block to codeword swap flag
ModCoding15-bits Modulation and coding scheme for transport block 1
NewData11-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
PrecodingInfo0-bits (2 antennas), 2-bits (4 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-bit Scrambling identity
ModCoding15-bits Modulation and coding scheme for transport block 1
NewData11-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'
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'
TPCCommandsvariable TPC commands for PUCCH and PUSCH
'Format3A'DCIFormat'Format3A'
TPCCommandsvariable TPC commands for PUCCH and PUSCH
'Format4'DCIFormat'Format4'
CIFvariableCarrier indicator
AllocationvariableResource block assignment/allocation
TPC2-bits PUSCH TPC command
CShiftDMRS3-bits Cyclic shift for DMRS
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

Data Types: struct

Output Arguments

collapse all

prbset — Physical resource block indicesnonnegative integer column vector | nonnegative integer matrix

Physical resource block indices, returned as a nonnegative integer column vector or a nonnegative integer matrix of size N-by-2. These indices are 0-based. The number of columns depends on whether the allocation type defines a different set of physical resource block indices in the first and second slots of the subframe.

Data Types: uint64

nrbg — Number of resource block groups in the allocationinteger

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

Data Types: int32

rbgsize — Resource block group sizeinteger

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

Data Types: int32

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.

See Also

| |

Introduced in R2014a

Was this topic helpful?