Main Content

lteNPUSCHIndices

Generate NPUSCH RE indices

Description

example

[ind,info] = lteNPUSCHIndices(ue,chs) generates ind, a column vector of narrowband physical uplink shared channel (NPUSCH) resource element (RE) indices, and info, information related to the indices. The function generates indices for mapping NPUSCH symbols to physical resources, as specified in section 10.1.3.6 of [1], for user equipment (UE) settings ue and channel transmission configuration chs.

example

[ind,info] = lteNPUSCHIndices(ue,chs,opts) specifies opts, the format in which the function returns the NPUSCH RE indices.

Examples

collapse all

Configure UE-specific settings.

ue = struct('NBULSubcarrierSpacing','15kHz');

Specify a channel transmission configuration.

chs =  struct('NPUSCHFormat','Data','NBULSubcarrierSet',[0:11],'NRU',1, ...
    'NULSlots',2,'Modulation','BPSK');

Generate the NPUSCH RE indices for the specified settings. Display the corresponding information.

[ind,info] = lteNPUSCHIndices(ue,chs);
disp(info)
    Gd: 144
     G: 144

Configure UE-specific settings.

ue = struct('NBULSubcarrierSpacing','15kHz');

Specify a channel transmission configuration.

chs =  struct('NPUSCHFormat','Data','NBULSubcarrierSet',0:11, ...
    'NRU',1,'NULSlots',2,'Modulation','BPSK');

Generate the NPUSCH RE indices, specifying zero-based formatting.

[ind,info] = lteNPUSCHIndices(ue,chs,'0based');

Input Arguments

collapse all

UE-specific settings, specified as a structure containing this field.

FieldValuesDescriptionData Types
NBULSubcarrierSpacing'3.75kHz', '15kHz'

NB-IoT uplink subcarrier spacing

To set a subcarrier spacing of 3.75 kHz, specify this field as '3.75kHz'. To set a subcarrier spacing of 15 kHz, specify this field as '15kHz'.

char, string

Data Types: struct

Channel transmission configuration, specified as a structure containing these fields.

FieldValuesDescriptionData Types
NPUSCHFormat'Data', 'Control'

NPUSCH format

To indicate that the NPUSCH carries narrowband uplink shared channel (UL-SCH) data, specify this field as 'Data'. To indicate that the NPUSCH carries uplink control information, specify this field as 'Control'.

char, string
NBULSubcarrierSetInteger in the interval [0, 47], vector of integers in the interval [0, 11]

NB-IoT uplink subcarrier indices, in zero-based form

If you specify the NBULSubcarrierSpacing field of the ue input as '3.75kHz', specify this field as an integer in the interval [0, 47].

If you specify the NBULSubcarrierSpacing field of the ue input as '15kHz', specify this field as a vector of integers in the interval [0, 11].

double
NRU1, 2, 3, 4, 5, 6, 8, 10Number of RUsdouble
NULSlots2, 4, 8, 16

Number of slots per RU

If you specify the NPUSCHFormat field as 'Control', then you must specify this field as 4.

If you specify the NPUSCHFormat field as 'Data', then you must specify this field as

  • 16 when you specify the NRUsc field as 1

  • 8 when you specify the NRUsc field as 3

  • 4 when you specify the NRUsc field as 6

  • 2 when you specify the NRUsc field as 12

double
Modulation'BPSK', 'QPSK'

Modulation type

To enable binary phase-shift keying (BPSK), specify this field as 'BPSK'. To enable quadrature phase-shift keying (QPSK), specify this field as 'QPSK'.

If you specify the NPUSCHFormat field as 'Control', then you must specify this field as 'BPSK'.

char, string

Data Types: struct

Output format and index base of generated indices, specified as one of these forms.

  • 'format base'

  • "format base"

  • {'format','base'}

  • ["format","base"]

Where format and base are defined in this table.

OptionValuesDescription
format'ind' (default), 'sub'

Output format of generated indices

To return the indices as a column vector, specify this option as 'ind'.

To return the indices as an NRE-by-3 matrix, where NRE is the number of REs, specify this option as 'sub'. Each row of the matrix contains the subcarrier, symbol, and antenna port as its first, second, and third element, respectively.

base'1based' (default), '0based'

Index base

To generate indices whose first value is 1, specify this option as '1based'. To generate indices whose first value is 0, specify this option as '0based'.

Example: 'ind 0based', "ind 0based", {'ind','0based'}, and ["ind","0based"] specify the same output options.

Data Types: char | string | cell

Output Arguments

collapse all

NPUSCH RE indices, returned as an integer-valued column vector of length NRE equal to the number of REs.

Data Types: double

Information related to NPUSCH RE indices, returned as a structure containing these fields.

FieldValuesDescriptionData Types
GNonnegative integerNumber of coded and rate-matched uplink shared channel (UL-SCH) data bits for a codeworddouble
GdNonnegative integer

Number of UL-SCH data symbols

The function returns this field as the value of chs.NRU x chs.NULSlots x NRE.

double

Data Types: struct

References

[1] 3GPP TS 36.211. “Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). https://www.3gpp.org.

Introduced in R2020a