Main Content

ltePUSCHDeprecode

PUSCH MIMO deprecoding onto transmission layers

Description

out = ltePUSCHDeprecode(in,nu,codebook) deprecodes the precoded symbol matrix, in, onto nu layers. It performs deprecoding using matrix pseudo inversion, to undo the processing described in TS 36.211, Section 5.3.3A [1]. This function returns an M-by-nu matrix, out, containing nu layers with M symbols in each layer. The deprecoder transposes the operation defined in TS 36.211, Section 5.3.3A, specifically the symbols for layers and antennas lie in columns rather than rows. The input argument in is an N-by-P matrix, where P is the number of transmission antennas and N is the number of symbols per antenna. When P is 2 or 4, deprecoding for spatial multiplexing is applied with the scalar codebook index, codebook. TS 36.211, Section 5.3.3A [1] specifies the codebook matrix corresponding to a particular index.

example

out = ltePUSCHDeprecode(chs,in) deprecodes the precoded symbol matrix, in, according to channel transmission configuration, chs.

Examples

collapse all

By precoding with an identity matrix, we can gain access to the precoding matrices themselves. The precoded matrix is first generated with codebook index 0 for 4 layers and 4 antennas. The precoded matrix is then deprecoded, resulting in an identity matrix.

    nLayers = 4;
    nAntennas = 4;
    codeBookIdx = 0;
    precodingMatrix = ltePUSCHPrecode(eye(nLayers),nAntennas,codeBookIdx);
    out = ltePUSCHDeprecode(precodingMatrix,nLayers,codeBookIdx)
out = 4×4 complex

   1.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   1.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   1.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   1.0000 + 0.0000i

Input Arguments

collapse all

Precoded symbol input, specified as an N-by-P complex-valued numeric matrix. Where P is the number of transmission antennas and N is the number of symbols per antenna.

Example: [0.5000 + 0.0000i 0.5000 + 0.0000i; 0.5000 + 0.0000i -0.5000 + 0.0000i]

Data Types: double
Complex Number Support: Yes

Number of layers, specified as 1, 2, 3, or 4.

Example: 2

Data Types: double

Codebook index, specified as a numeric scalar. When the number of transmit antennas, P, is 1, this input argument is ignored.

Data Types: double

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

Number of transmission layers, specified as an integer from 1 through 4. Optional.

Data Types: double

Precoder matrix indication, specified as a numeric scalar between 0 (default) and 23. Only required if the number of transmission antennas, P, is 2 or 4. Acceptable values for PMI depend upon P and the number of transmission layers, NLayers. The scalar PMI is used during deprecoding.

Data Types: double

Data Types: struct

Output Arguments

collapse all

Deprecoded output, returned as an M-by-nu matrix, containing nu layers with M symbols in each layer.

Data Types: double

References

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

Version History

Introduced in R2013b