Physical downlink shared channel decoding

`[`

performs
the inverse of physical downlink shared channel (PDSCH) processing
on the matrix of complex modulated PDSCH symbols, `cws`

,`symbols`

]
= ltePDSCHDecode(`enb`

,`chs`

,`sym`

)`sym`

,
using cell-wide settings structure, `enb`

, and
channel-specific configuration structure, `chs`

.
The channel inverse processing includes inverting the channel precoding,
layer demapping and codeword separation, soft demodulation, and descrambling.
Inverting the precoding is accomplished by matrix pseudoinversion
of the precoding matrices. It returns a cell array, `cws`

,
of soft bit vectors, and a cell array, `symbols`

,
of received constellation symbol vectors resulting from performing
the inverse of Physical Downlink Shared Channel (PDSCH) processing.
For more information, see TS 36.211 [1], Section 6.4 and `ltePDSCH`

. `cws`

is
optionally scaled by channel state information (CSI) calculated during
the equalization process.

`[`

performs
the decoding of the complex modulated PDSCH symbols `cws`

,`symbols`

]
= ltePDSCHDecode(`enb`

,`chs`

,`sym`

,`hest`

,`noiseest`

)`sym`

using
cell-wide settings, `enb`

, channel-specific configuration, `chs`

,
channel estimate, `hest`

, and the noise estimate, `noiseest`

.

The behavior varies based on the `chs`

.`TxScheme`

setting.
For the `'TxDiversity'`

transmission scheme, the precoding
inversion is performed using an orthogonal space frequency block code (OSFBC)
decoder. For the `'SpatialMux'`

, `'CDD'`

, and
`'MultiUser'`

transmission schemes, the precoding inversion is
performed using a multiple-input, multiple-output (MIMO) minimum mean square error
(MMSE) equalizer, equalizing between transmitted and received layers. For the
`'Port0'`

, `'Port5'`

,
`'Port7-8'`

, `'Port8'`

, and
`'Port7-14'`

transmission schemes, the reception is performed
using MMSE equalization. The input channel estimate, `hest`

, is
assumed to be with reference to the transmission layers, using the UE-specific
reference signals, so the MMSE equalization will produce MMSE equalized layers.

`noiseest`

is an estimate of the noise power
spectral density per RE on the received subframe. This estimate is
provided by the `lteDLChannelEstimate`

function.

`[`

accepts the full received resource grid, `cws`

,`symbols`

]
= ltePDSCHDecode(`enb`

,`chs`

,`rxgrid`

,`hest`

,`noiseest`

)`rxgrid`

, for one
subframe, in place of the `sym`

input; the decoder will
internally extract the PDSCH REs to obtain the complex modulated PDSCH symbols.
`rxgrid`

is a 3-D
*M*-by-*N*-by-`NRxAnts`

array
of resource elements, where *M* and *N* are the
number of subcarriers and symbols for one subframe for cell-wide settings
`enb`

and `NRxAnts`

is the number of receive
antennas. In this case, `hest`

is a 4-D
*M*-by-*N*-by-`NRxAnts`

-by-`CellRefP`

array where *M* and *N* are the number of
subcarriers and symbols for one subframe for cell-wide settings
`enb`

, `NRxAnts`

is the number of receive
antennas, and `CellRefP`

is the number of cell-specific reference
signal antenna ports, given by
`enb`

`.`

`CellRefP`

.
`hest`

is processed to extract the channel estimates relevant
to the PDSCH, those in the time and frequency locations corresponding to the PDSCH
REs in `rxgrid`

.

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