Main Content

lteMCS

Modulation and coding scheme lookup

Description

Use lteMCS to look up the modulation and coding scheme (MCS) information as defined by MCS index mapping to modulation and TBS index tables in TS 36.213 [1] Table 7.1.7.1-1, Table 7.1.7.1-1A, and Table 8.6.1-1.

[itbs,mod,rv]=lteMCS() returns the physical downlink shared channel (PDSCH) MCS information for all MCS index values specified in Table 7.1.7.1-1 of [1].

The function returns the columns of the indexed MCS table entries as separate outputs. The itbs output is a vector of the corresponding transport block size (TBS) indices. The mod output is a vector of the corresponding modulation schemes. The rv output is a vector of the corresponding redundancy version (RV) indices.

The function returns reserved values of itbs as NaN and reserved values of mod as an empty character vector. For the PDSCH, the RV is not defined, so the function returns the rv output as a vector of zeros when you use this syntax.

example

[itbs,mod,rv]=lteMCS(imcs) returns PDSCH MCS information for one or more MCS index values, imcs, specified in Table 7.1.7.1-1 of [1].

For the PDSCH, the RV is not defined, so the function returns the rv output as a vector of zeros when you use this syntax.

[itbs,mod,rv]= lteMCS(table) returns PDSCH or physical uplink shared channel (PUSCH) MCS information associated with one or more rows of table, the specified table of [1].

example

[itbs,mod,rv]=lteMCS(imcs,table) returns PDSCH or PUSCH MCS information associated with one or more rows of the specified table for one or more MCS indices.

Examples

collapse all

Return the TBS index, modulation order, and RV index for MCS index 17.

imcs = 17;
[itbs,mod,rv] = lteMCS(imcs)
itbs = 15
mod = 
'64QAM'
rv = 0

Return the PDSCH transport block size index and modulation scheme for the set of indices imcs = 20,...,27 used to configure a first transport block transmission with Release 12 256QAM modulation.

[ITBS,Modulation] = lteMCS(20:27,'PDSCHTable2')
ITBS = 1×8

    25    27    28    29    30    31    32    33

Modulation = 1x8 cell
    {'256QAM'}    {'256QAM'}    {'256QAM'}    {'256QAM'}    {'256QAM'}    {'256QAM'}    {'256QAM'}    {'256QAM'}

Input Arguments

collapse all

MCS indices, specified as an integer or vector of integers in the interval [–1, 31].

If you specify any element of this input as -1, the function interprets the value as a discontinuous transmission. In this case, the function returns the corresponding elements of the itbs and mod outputs as -1 and 'QPSK', respectively.

If you specify this input as a scalar, the function returns the mod as a single character vector instead of a single element cell array of character vectors.

Data Types: double

MCS index mapping table, specified as a character vector or string scalar, identifying the desired table from [1]:

  • 'PDSCH' indicates PDSCH, Table 7.1.7.1-1

  • 'PDSCHTable2' indicates Table 2 for PDSCH, Table 7.1.7.1-1A, which was added in 3GPP Release 12

  • 'PDSCHTable3' indicates Table 2 for PDSCH, Table 7.1.7.1-1B, which was added in 3GPP Release 15

  • 'PUSCH' indicates PUSCH, Table 8.6.1-1

Data Types: char | string

Output Arguments

collapse all

Transport block size indices, returned as an integer or vector of integers in the interval [–1, 37].

If you specify any element of the imcs input as -1, the function interprets the value as a discontinuous transmission. In this case, the function returns the corresponding element of this output as -1.

If you specify the itbs input as a scalar, the function returns this output as a single integer instead of a vector.

Modulation orders, returned as a cell array of character vectors.

If you specify any element of the imcs input as -1, the function interprets the value as a discontinuous transmission. In this case, the function returns the corresponding element of this output as 'QPSK'.

If you specify the itbs input as a scalar, the function returns this output as a single character vector instead of a single element cell array of character vectors.

Redundancy versions, returned as an integer or vector of integers in the interval [0, 3]. Each entry of this output corresponds to the values you specify in the imcs input in accordance with Table 8.6.1-1 of [1].

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.

[2] 3GPP TS 36.101. “Evolved Universal Terrestrial Radio Access (E-UTRA); User Equipment (UE) Radio Transmission and Reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

Version History

Introduced in R2014b