Documentation

# lteDLDeprecode

## Syntax

``out = lteDLDeprecode(in,nu,txscheme,codebook)``
``out = lteDLDeprecode(enb,chs,in)``

## Description

example

````out = lteDLDeprecode(in,nu,txscheme,codebook)` returns a symbol matrix by performing deprecoding using matrix pseudo-inversion to undo processing described in TS 36.211 [1], Section 6.3.4. The overall operation of the deprecoder is to transpose what is defined in the specification. ```
````out = lteDLDeprecode(enb,chs,in)` performs deprecoding of the precoded symbol matrix, `in`, according to cell-wide settings `enb` and `chs` (channel transmission configurations).```

## Examples

collapse all

Deprecode a precoded identity matrix having codebook index 1 for three layers and four antennas.

```in = lteDLPrecode(eye(3),4,'SpatialMux',1); out = lteDLDeprecode(in,3,'SpatialMux',1)```
```out = 3×3 complex 1.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 1.0000 + 0.0000i ```

## Input Arguments

collapse all

Precoded input symbols, specified as numeric matrix. The size of the matrix is N-by-P, where P is the number of transmission antennas and N is the number of symbols per antenna. Generate the matrix by extracting a PDSCH using `ltePDSCHIndices` function on a received resource array. You can perform a similar extraction using the index generator for any other downlink channel that utilizes precoding.

Number of layers, specified as an integer from 1 to 8. The maximum number of layers depends on the transmission scheme, `txscheme`.

Data Types: `double`

PDSCH transmission scheme, specified as one of the following options.

Transmission schemeDescription
`'Port0'`Single antenna port, port 0
`'TxDiversity'`Transmit diversity
`'CDD'`Large delay cyclic delay diversity scheme
`'SpatialMux'`Closed loop spatial multiplexing
`'MultiUser'`Multi-user MIMO
`'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 eight layer transmission, ports 7–14

Data Types: `char` | `single`

Codebook index to select the precoding matrix, specified as an integer from 0 to 15. This input is ignored for the `'Port0'`, `'TxDiversity'`, and `'CDD'` transmission schemes. Find the precoding matrix corresponding to a particular codebook index in TS 36.211 [1], Section 6.3.4. In the case of `'TxDiversity'` and `nu=1`, the function falls back to single port processing.

Data Types: `double`

eNodeB cell-wide settings, specified as a structure containing these parameter fields:

Parameter FieldRequired or OptionalValuesDescription
When `chs`.`TxScheme` is set to `'TxDiversity'`, `'CDD'`, `'SpatialMux'`, or `'MultiUser'`, these parameters are applicable:
`CellRefP`Required

1, 2, 4

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

When `chs`.`TxScheme` is set to `'SpatialMux'`, or `'MultiUser'` and `chs`.`PMISet` is present, these parameters are applicable:.
`NCellID`Required

Integer from 0 to 503

Physical layer cell identity

`NSubframe`Required

0 (default), nonnegative scalar integer

Subframe number

`NDLRB`Required

Scalar integer from 6 to 110

Number of downlink resource blocks. (${N}_{\text{RB}}^{\text{DL}}$)

`CFI`Required

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'`)

`CyclicPrefix`Optional

`'Normal'` (default), `'Extended'`

Cyclic prefix length

`DuplexMode`Optional

`'FDD'` (default), `'TDD'`

Duplexing mode, specified as:

• `'FDD'` for Frequency Division Duplex or

• `'TDD'` for Time Division Duplex

When `DuplexMode` is set to `'TDD'`, these parameters are applicable:
`TDDConfig`Optional

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

`SSC`Optional

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

Special subframe configuration (SSC)

Data Types: `struct`

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

Parameter FieldRequired or OptionalValuesDescription
`TxScheme`Required

`'Port0'`, `'TxDiversity'`, `'CDD'`, `'SpatialMux'`, `'MultiUser'`, `'Port5'`, `'Port7-8'`, `'Port8'`, `'Port7-14'`.

PDSCH transmission scheme, specified as one of the following options.

Transmission schemeDescription
`'Port0'`Single antenna port, port 0
`'TxDiversity'`Transmit diversity
`'CDD'`Large delay cyclic delay diversity scheme
`'SpatialMux'`Closed loop spatial multiplexing
`'MultiUser'`Multi-user MIMO
`'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 eight layer transmission, ports 7–14

`NLayers`Required

Integer from 1 to 8

Number of transmission layers.

The following parameters are applicable when `TxScheme` is set to `'SpatialMux'` or `'MultiUser'`. Include either `CodebookIdx` field or both `PMISet` and `PRBSet` fields. For more information, see Algorithms.
`CodebookIdx`Required

Integer from 0 to 15

Codebook index used during precoding

`PMISet`Required

Integer vector with element values from 0 to 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`.

`PRBSet`Required

Integer column vector or two-column 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` are used to determine the frequency-domain position occupied by each precoded symbol in `out`. This step is performed to apply the correct subband precoder when multiple PMI mode is used. Alternatively, you can provide the `CodebookIdx` parameter 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 index is given in TS 36.213 [2], Section 7.2.4.

Data Types: `struct`

## Output Arguments

collapse all

Deprecoded downlink output, returned as NSYM-by-v matrix, containing v layers, with NSYMNSYM symbols in each layer. The symbols for layers and antennas lie in columns rather than in rows.

Data Types: `double`
Complex Number Support: Yes

## Algorithms

For transmission schemes `'CDD'`, `'SpatialMux'`, and `'MultiUser'`, and degenerately `'Port0'`,

• Precoding involves multiplying a P-by-v precoding matrix, F, by a v-by-NSYM matrix, representing NSYM symbols on each of v transmission layers. This multiplication yields a P-by-NSYM matrix, representing NSYM 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-by-v.

For the `'TxDiversity'` transmission scheme,

• A P 2-by-2v precoding matrix, F, is multiplied by a 2v-by-NSYM matrix, formed by splitting the real and imaginary components of a v-by-NSYM matrix of symbols on layers. This multiplication yields a P 2-by-NSYM matrix of precoded symbols, which is then reshaped into a P-by-PNSYM matrix for transmission. Since v is P for the `'TxDiversity'` transmission scheme, F is of size P 2-by-2P, rather than P 2-by-2v.

When v is P in `'CDD'`, `'SpatialMux'`, and `'MultiUser'` transmission schemes, and when P and v are 2 in the `'TxDiversity'` transmission scheme,

• The precoding matrix, F, is square. Its size is 2P-by-2P for the transmit diversity scheme and P-by-P otherwise. In this case, the deprecoder takes the matrix inversion of the precoding matrix to yield the deprecoding matrix F –1. The matrix inversion is computed using LU decomposition with partial pivoting (row exchange):

1. Perform LU decomposition PxF = LU.

2. Solve LY = I using forward substitution.

3. Solve UX = Y using back substitution.

4. F –1 = XPx.

The degenerate case of the `'Port0'` transmission scheme falls into this category, with P = v = 1.

For the `'CDD'`, `'SpatialMux'`, and `'MultiUser'` transmission schemes,

• The deprecoding is then performed by multiplying F –1 by the transpose of the input `symbols` (`symbols` is size NSYM-by-P, so the transpose is a P-by-NSYM matrix). This multiplication recovers the v-by-NSYM (equals P-by-NSYM) matrix of transmission layers.

For the `'TxDiversity'` transmission scheme,

• The deprecoding is performed, multiplying F –1 by the transpose of the input `symbols` (`symbols` is size PNSYM-by-P, so the transpose is a P-by-PNSYM matrix), having first been reshaped into a 2P-by-NSYM matrix. This multiplication yields a 2v-by-NSYM, matrix which is then split into two v-by-NSYM matrices. To recover the v-by-NSYM matrix of transmission layers multiply the second matrix by j and add the two matrices together (thus recombining real and imaginary parts).

For the other cases, specifically `'CDD'`, `'SpatialMux'`, and `'MultiUser'` transmission schemes with v ≠ P and the `'TxDiversity'` transmission scheme with P = 4,

• The precoding matrix F is not square. Instead, the matrix is rectangular with size P-by-v, except in the case of `'TxDiversity'` transmission scheme with P = 4, where it is of size P 2-by-(2P = 16)-by-8. The number of rows is always greater than the number of columns in the matrix F is size m-by-n with m > n.

• In this case, the deprecoder takes the matrix pseudo-inversion of the precoding matrix to yield the deprecoding matrix F +. The matrix pseudo-inversion is computed as follows.

1. Perform LU decomposition PxF = LU.

2. Remove the last m − n rows of U to give $\overline{U}$.

3. Remove the last m − n columns of L to give $\overline{L}$.

4. $X={\overline{U}}^{H}{\left(\overline{U}{\overline{U}}^{H}\right)}^{-1}{\left({\overline{L}}^{H}\overline{L}\right)}^{-1}{\overline{L}}^{H}$ (the matrix inversions are carried out as in the previous steps).

5. F + = XPx

The application of the deprecoding matrix F + is the same process as described for deprecoding the square matrix case with F + in place of F –1.

This method of pseudo-inversion is based onLinear Algebra and Its Application [3], Chapter 3.4, Equation (56).

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

[2] 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.

[3] Strang, Gilbert. Linear Algebra and Its Application. Academic Press, 1980. 2nd Edition.