Documentation

lteDLPrecode

Downlink precoding of transmission layers

Syntax

  • out = lteDLPrecode(in,p,txscheme,codebook)
    example
  • out = lteDLPrecode(enb,chs,in)

Description

example

out = lteDLPrecode(in,p,txscheme,codebook) performs precoding according to [1], section 6.3.4. This function returns a M-by-P matrix, where P is the number of transmission antennas and M is the number of symbols per antenna. The matrix returned is identical to the matrix returned by ltePDSCH for the same set of parameters. The overall operation of the precoder is the transpose of that defined in the specification. The symbols for layers and antennas lie in columns rather than rows.

This function performs precoding of the matrix of layers, in, onto P antennas, using the transmission scheme specified by string txscheme.

in is an N-by-NU matrix, consisting of the N modulation symbols for transmission on NU layers. This matrix is generated using lteLayerMap function.

codebook is a scalar integer specifying the codebook index to be used during precoding. This input argument is ignored for the 'Port0', 'TxDiversity', and 'CDD' transmission schemes. You can find codebook matrix corresponding to a particular index can be found in [1], section 6.3.4. Since codebook is a scalar, this syntax does not support subband precoding or multiple PMI mode.

out = lteDLPrecode(enb,chs,in) performs precoding of the matrix of layers, in, according to cell-wide settings enb and channel transmission configurations chs.

Examples

collapse all

Perform Downlink Precoding on Identity Matrix

Perform downlink precoding using an identity matrix as input.

By precoding an identity matrix, you can gain access to the precoding matrices. Obtain the precoding matrix having codebook index 1 for three layers and four antennas.

out = lteDLPrecode(eye(3),4,'SpatialMux',1).'
out =

   0.2887 + 0.0000i   0.0000 - 0.2887i  -0.2887 + 0.0000i
   0.0000 + 0.2887i   0.2887 + 0.0000i   0.0000 + 0.2887i
  -0.2887 + 0.0000i   0.0000 - 0.2887i   0.2887 + 0.0000i
   0.0000 - 0.2887i   0.2887 + 0.0000i   0.0000 - 0.2887i

Input Arguments

collapse all

in — Input layersnumeric matrix

Input layers, specified as a N-by-NU numeric matrix, consisting of the N modulation symbols for transmission on NU layers. Generate this matrix using lteLayerMap.

Data Types: double
Complex Number Support: Yes

p — Number of antennaspositive numeric scalar

Number of antennas, specified as a positive numeric scalar.

Data Types: double

txscheme — Transmission scheme'Port0' | 'TxDiversity' | 'CDD' | 'SpatialMux' | 'MultiUser' | 'Port5' | 'Port7-8' | 'Port8' | 'Port7-14'

Transmission scheme, specified as a string.

StringDescription
'Port0'Single-antenna port, port 0
'TxDiversity'Transmit diversity scheme
'CDD'Large delay CDD scheme
'SpatialMux'Closed-loop spatial multiplexing scheme
'MultiUser'Multiuser MIMO scheme
'Port5'Single-antenna port, port 5
'Port7-8'Single-antenna port, port 7 (when NLayers = 1); Dual layer transmission, ports 7 and 8 (when NLayers = 2)
'Port8'Single-antenna port, port 8
'Port7-14'Up to 8 layer transmission, ports 7-14

Data Types: char

codebook — Codebook matrixnonnegative scalar integer (0, ..., 15)

Codebook matrix to use during precoding, specified as a nonnegative scalar integer between 0 and 15. This input is ignored for the 'Port0', 'TxDiversity', and 'CDD' transmission schemes. You can find the codebook matrix corresponding to a particular index can be found in the [1], section 6.3.4. Since codebook is a scalar, the syntax that includes this parameter does not support subband precoding or multiple PMI mode.

Data Types: double

enb — eNodeB cell-wide settingsstructure

eNodeB cell wide settings, specified as a scalar structure. The structure contains the following parameter fields:

Parameter FieldRequired or OptionalValuesDescription
NDLRBRequired

Scalar integer (6, ..., 110). Standard bandwidth values are 6, 15, 25, 50, 75, and 100. NDLRB will also accept the standardized bandwidths in string format from the set {'1.4MHz', '3MHz', ‘5MHz', '10MHz', ‘15MHz', ‘20MHz'}.

Number of downlink (DL) resource blocks (RBs)

NCellIDRequired

Nonnegative scalar integer (0,…,503)

Physical layer cell identity

CellRefPRequired

1, 2, 4

Number of cell-specific reference signal (CRS) antenna ports

CyclicPrefixOptional

'Normal' (default), 'Extended'

Cyclic prefix length

DuplexModeOptional

'FDD' (default), 'TDD'

Duplexing mode, specified as:

  • 'FDD' for Frequency Division Duplex or

  • 'TDD' for Time Division Duplex

CFIRequired

1, 2, or 3. scalar or if the CFI varies per subframe, a vector of length 10 (corresponding to a frame).

Control format indicator (CFI) value. In TDD mode, CFI varies per subframe for the RMCs ('R.0', 'R.5', 'R.6', 'R.6-27RB', 'R.12-9RB')

NSubframeRequired

Nonnegative scalar integer

Subframe number

The following parameters apply when DuplexMode is set to TDD.

  TDDConfigOptional

0 (default), 1, 2, 3, 4, 5, 6

Uplink or downlink configuration

  SSCOptional

0 (default), 1, 2, 3, 4, 5, 6, 7, 8, 9

Special subframe configuration (SSC)

chs — Channel-specific transmission configurationstructure | structure array

Channel specific transmission configuration, specified as a structure that can contain the following parameter fields.

Parameter FieldRequired or OptionalValuesDescription
TxSchemeOptional

Default TxScheme is RMC-dependent. Valid values include: 'SpatialMux', 'Port0', 'TxDiversity', 'CDD', 'MultiUser', 'Port5', 'Port7-8', 'Port8', 'Port7-14'

Transmission scheme, specified as one of the following options.

  • 'SpatialMux' — Closed-loop spatial multiplexing.

  • 'Port0' — Single-antenna port, port 0.

  • 'TxDiversity' — Transmit diversity scheme.

  • 'CDD' — Large delay CDD scheme.

  • 'MultiUser' — Multiuser MIMO scheme.

  • 'Port5' — Single-antenna port, port 5.

  • 'Port7-8' — Single-antenna port, port 7 (NLayers = 1). Dual layer transmission, ports 7 and 8 (NLayers = 2).

  • 'Port8' — Single-antenna port, port 8.

  • 'Port7-14' — Up to 8-layer transmission, ports 7–14.

The following parameters are dependant upon the condition that TXscheme is set to 'SpatialMux' or 'MultiUser'. You must include either Codebook filed or both PMISet and PRBSet fields.

CodebookidxOptional

Nonnegative scalar integer (0, ..., 15)

Codebook index used during precoding

PMISetOptional

Integer vector (0, ..., 15)

Precoder matrix indication (PMI) set. It can contain either a single value, corresponding to single PMI mode, or multiple values, corresponding to multiple or subband PMI mode. The number of values depends on CellRefP, transmission layers and TxScheme. For more information about setting PMI parameters, see ltePMIInfo.

PRBSetOptional

1- or 2-column integer matrix

Zero-based physical resource block (PRB) indices corresponding to the slot wise resource allocations for this PDSCH. PRBSet can be assigned as:

  • a column vector, the resource allocation is the same in both slots of the subframe,

  • a two-column matrix, this parameter specifies different PRBs for each slot in a subframe,

  • a cell array of length 10 (corresponding to a frame, if the allocated physical resource blocks vary across subframes).

PRBSet varies per subframe for the RMCs 'R.25'(TDD), 'R.26'(TDD), 'R.27'(TDD), 'R.43'(FDD), 'R.44', 'R.45', 'R.48', 'R.50', and 'R.51'.

The fields PMISet and PRBSet determine the frequency-domain position that each precoded symbol in out occupies in order to apply the correct subband precoder when multiple PMI mode is being used. Alternatively, you can provide CodebookIdx field. CodebookIdx is a scalar specifying the codebook index to use across the entire bandwidth. Therefore, the CodebookIdx field does not support subband precoding. The relationship between PMI values and codebook indices is given by [2], Section 7.2.4.

Output Arguments

collapse all

out — Precoded downlink outputnumeric matrix

Precoded downlink output, returned as an M-by-P numeric matrix, where P is the number of transmission antennas and M is the number of symbols per antenna.

Data Types: double

More About

expand all

Algorithms

For transmission schemes 'CDD', 'SpatialMux', and 'MultiUser', and degenerately 'Port0', precoding involves multiplying a P × v precoding matrix, denoted as F, by a v × M matrix, representing M symbols on each of v transmission layers, to yield a P × M matrix, consisting of M precoded symbols on each of P antenna ports. Depending on the transmission scheme, the precoding matrix can be composed of multiple matrices multiplied together, but the size of the product, F, is always P × v.

For the 'TxDiversity' transmission scheme, a P2 × 2v precoding matrix F is multiplied by a 2v × M matrix, formed by splitting the real and imaginary components of a v × M matrix of symbols on layers, to yield a P2 × M matrix of precoded symbols, which is then reshaped into a P × PM matrix for transmission. As v = P for the 'TxDiversity' transmission scheme, we can consider F be of size P2 × 2P rather than P2 × 2v.

For the other cases i.e. 'CDD', 'SpatialMux', and 'MultiUser' transmission schemes with vP and the 'TxDiversity' transmission scheme with P = 4, the precoding matrix F is not square; it is rectangular with size P × v except for the 'TxDiversity' transmission scheme with P = 4 where it is of size P2 × 2P = 16 × 8. The number of rows is always greater than the number of columns i.e. the matrix F is size m × n with m > n.

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.

[2] 3GPP TS 36.213. "Physical layer procedures." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.

Introduced in R2014a

Was this topic helpful?