PUSCH resource element indices


  • [ind,info] = ltePUSCHIndices(ue,chs)
  • [ind,info] = ltePUSCHIndices(ue,chs,opts)


[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) allows control of the format of the returned indices through a cell array, opts, of option strings.


collapse all

Generate PUSCH RE Indices

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

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


Input Arguments

collapse all

ue — UE-specific settingsstructure

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

Parameter FieldRequired or OptionalValuesDescription

Positive scalar integer

Number of uplink (UL) resource blocks (RBs).


'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

chs — Channel transmission configurationstructure

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.


('QPSK', '16QAM', '64QAM') String or cell array of strings.

Modulation format, specified as a character string for one codeword or a cell array of one or more strings for one or two codewords.


1 (default), 2, 3, 4

Number of transmission layers.

Data Types: struct

opts — Format control for returned element resource indices'ind', '1based' (default) | 'sub' | '0based'

Format control for returned element resource indices, specified as a string or a cell array of strings. The option strings can contain values from the Indexing Style and Index base categories.




Indexing style

'ind' (default)

The returned indices are in linear index form


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

Index base

'1based' (default)

Indices returned are 1-based


Indices returned are 0-based

Data Types: cell

Output Arguments

collapse all

ind — PUSCH resource element indicescolumn vector of integers

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

Data Types: uint32

info — Information related to PUSCH indicesstructure

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

Introduced in R2014a

Was this topic helpful?