Main Content


PUSCH resource element indices


[ind,info] = ltePUSCHIndices(ue,chs) returns a column vector of resource element indices given the UE-specific settings structure, ue, and channel transmission configuration, chs. It returns a column vector of Physical Uplink Shared Channel (PUSCH) resource element (RE) indices and a structure, info, containing information related to the PUSCH indices. By default, the indices are returned in 1-based linear indexing form that can directly index elements of a resource matrix. These indices are ordered as the PUSCH modulation symbols should be mapped. Alternative indexing formats can also be generated.

Support of PUSCH frequency hopping is provided by the function lteDCIResourceAllocation, which creates PRBSet from a DCI Format 0 message.


[ind,info] = ltePUSCHIndices(ue,chs,opts) formats the returned indices using options specified by opts.


collapse all

Generate 0-based PUSCH resource element (RE) indices in linear form.

frc = lteRMCUL('A1-1');
puschIndices = ltePUSCHIndices(frc,frc.PUSCH,{'0based','ind'});
ans = 4x1 uint32 column vector


Input Arguments

collapse all

UE-specific settings, specified as a structure having the following fields.

Parameter FieldRequired or OptionalValuesDescription

Scalar integer from 6 to 110

Number of uplink resource blocks. (NRBUL)


'Normal' (default), 'Extended'

Cyclic prefix length.


1 (default), 2, 4

Number of transmission antennas.


0 (default), 1

Option to shorten the subframe by omitting the last symbol, specified as 0 or 1. If 1, the last symbol of the subframe is not used. For subframes with possible SRS transmission, set Shortened to 1 to maintain a standard compliant configuration.

Data Types: struct

Channel transmission configuration, specified as a structure. It contains the following fields.

Parameter FieldRequired or OptionalValuesDescription

Integer column vector or two-column matrix

PRB indices, specified as a column vector or a 2-column matrix, containing the Physical Resource Block indices (PRBs) corresponding to the resource allocations for this PUSCH.

ModulationOptional'QPSK', '16QAM', '64QAM', or '256QAM'

Modulation format, specified as a character vector or string scalar for one codeword, or a cell array of character vectors or string array for two codewords.


1 (default), 2, 3, 4

Number of transmission layers.

Data Types: struct

Output format options for resource element indices, specified as a character vector, cell array of character vectors, or string array. For convenience, you can specify several options as a single character vector or string scalar by a space-separated list of values placed inside the quotes. Values for opts when specified as a character vector include (use double quotes for string) :

Category Options Description

Indexing style

'ind' (default)

The returned indices are in linear index style.


The returned indices are in [subcarrier,symbol,port] subscript row style.

Index base

'1based' (default)

The returned indices are one-based.


The returned indices are zero-based.

Example: 'ind 1based', "ind 1based", {'ind','1based'}, or ["ind","1based"] specify the same formatting options.

Data Types: char | string | cell

Output Arguments

collapse all

PUSCH resource element (RE) indices, returned as column vector of integers.

Data Types: uint32

Information related to the PUSCH indices, returned as a structure having the following fields.

Parameter FieldValuesDescription

1- or 2-element vector of integers

A one- or two-element vector, specifying the number of coded and rate matched UL-SCH data bits for each codeword


Number of coded and rate matched UL-SCH data symbols, equal to the number of rows in the PUSCH indices

Data Types: struct

Version History

Introduced in R2014a