Main Content

ltePUSCHPrecode

PUSCH MIMO precoding of transmission layers

Description

out = ltePUSCHPrecode(in,p,codebook) precodes the matrix of layers, in, onto p antennas. When p is 2 or 4, precoding for spatial multiplexing is applied with the scalar codebook index, codebook. It performs precoding according to TS 36.211, Section 5.3.3A [1]. This function returns an M-by-P matrix. Where M is the number of symbols per antenna and P is the number of transmission antennas. The precoder 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.

example

out = ltePUSCHPrecode(ue,chs,in) precodes the matrix of layers, in, according to UE-specific settings, ue, and channel transmission configuration, chs.

Examples

collapse all

Generate a PUSCH precoding matrix with codebook index 1 for 3 layers and 4 antennas. By precoding an identity matrix, we can gain access to the precoding matrices themselves.

nLayers = 3;
nAntennas = 4;
codeBookIdx = 1;
out = ltePUSCHPrecode(eye(nLayers),nAntennas,codeBookIdx)
out = 3×4 complex

   0.5000 + 0.0000i  -0.5000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.5000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.5000 + 0.0000i

Input Arguments

collapse all

Transmission input layers, specified as a numeric matrix of size N-by-NU. in consists of the N modulation symbols for transmission upon NU layers. The lteLayerMap function generates such a matrix.

Example: [1 0 0; 0 1 0; 0 0 1]

Data Types: double
Complex Number Support: Yes

Number of transmission antennas, specified as an integer having the values 1, 2, or 4.

Example: 1

Data Types: double

codebook is a scalar integer specifying the codebook index to be used during precoding. This input is ignored when p is 1. The codebook matrix corresponding to a particular index can be found in TS 36.211, Section 5.3.3A [1].

Data Types: double

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

Number of transmission antennas, specified as 1, 2, or 4. Optional.

Data Types: double

Data Types: struct

Channel transmission configuration, specified a structure. chs can contain the following field. The PMI parameter field is only required if ue.NTxAnts is set to 2 or 4.

Precoder matrix indication, specified as a numeric scalar between 0 (default) and 23. Only required if ue.NTxAnts is set to 2 or 4. Acceptable values for PMI depend upon ue.NTxAnts and the number of layers, NU. The scalar PMI is used during precoding.

Data Types: double

Data Types: struct

Output Arguments

collapse all

Precoded output symbols, returned as a numeric matrix of size M-by-P. Where M is the number of symbols per antenna and P is the number of transmission antennas.

Data Types: double
Complex Number Support: Yes

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