Documentation

ltePUSCHPrecode

PUSCH MIMO precoding of transmission layers

Syntax

  • out = ltePUSCHPrecode(in,p,codebook)
    example
  • out = ltePUSCHPrecode(ue,chs,in)

Description

example

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.

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

Perform PUSCH MIMO Precoding

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 =

   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

in — Transmission input layersnumeric matrix

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 matirx.

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

Data Types: double
Complex Number Support: Yes

p — Number of transmission antennas1 | 2 | 4

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

Example: 1

Data Types: double

codebook — Codebook indexscalar integer

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 — UE-specific settingsstructure

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

NTxAnts — Number of transmission antennas1 (default) | optional | 2 | 4

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

Data Types: double

Data Types: struct

chs — Channel transmission configurationstructure

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.

PMI — Precoder matrix indication 0 (default) | optional | numeric scalar (0...23)

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

out — Precoded output symbolsM-by-P numeric matrix

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. "Physical Channels and Modulation." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.

Introduced in R2013b

Was this topic helpful?