Main Content

ltePDSCHDecode

Physical downlink shared channel decoding

Description

[cws,symbols] = ltePDSCHDecode(enb,chs,sym) performs the inverse of physical downlink shared channel (PDSCH) processing on the matrix of complex modulated PDSCH symbols, 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.

example

[cws,symbols] = ltePDSCHDecode(enb,chs,sym,hest,noiseest) performs the decoding of the complex modulated PDSCH symbols 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.

[cws,symbols] = ltePDSCHDecode(enb,chs,rxgrid,hest,noiseest) accepts the full received resource grid, 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.

Examples

collapse all

Generate and decode PDSCH symbols.

Initialize cell parameter structure enb for RMC R.0.

enb = lteRMCDL('R.0');

Populate a complex codeword matrix and generate modulated PDSCH symbols.

codewordBits = randi([0,1],enb.PDSCH.CodedTrBlkSizes(1),1);

pdschSym = ltePDSCH(enb,enb.PDSCH,codewordBits);

Decode and plot the PDSCH symbols.

[rxCodewords,rxSymbols] = ltePDSCHDecode(enb,enb.PDSCH,pdschSym);

plot (rxSymbols{:},'k.')
title('decoded PDSCH symbols')

Figure contains an axes object. The axes object with title decoded PDSCH symbols contains a line object which displays its values using only markers.

Show size and first 5 elements of output codewords to be modulated, rxCws, and received symbols, symbols.

size_rxCodewords = size(rxCodewords{:})
size_rxCodewords = 1×2

   504     1

rxCodewords{1}(1:1:5)
ans = 5×1

    0.9487
    0.9487
   -0.3162
    0.3162
    0.3162

size_rxSymbols = size(rxSymbols{:})
size_rxSymbols = 1×2

   126     1

rxSymbols{1}(1:5)
ans = 5×1 complex

  -0.9487 - 0.9487i
  -0.3162 + 0.9487i
  -0.3162 - 0.9487i
  -0.3162 - 0.3162i
   0.9487 - 0.9487i

Input Arguments

collapse all

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

Parameter FieldRequired or OptionalValuesDescription
NCellIDRequired

Integer from 0 to 503

Physical layer cell identity

NSubframeRequired

0 (default), nonnegative scalar integer

Subframe number

CellRefPRequired

1, 2, 4

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

DuplexModeOptional

'FDD' (default), 'TDD'

Duplexing mode, specified as either:

  • 'FDD' for Frequency Division Duplex

  • 'TDD' for Time Division Duplex

The following parameters are dependent upon the condition that DuplexMode is set to 'TDD'.

  TDDConfigOptional

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

Uplink–downlink configuration

  SSCOptional

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

Special subframe configuration (SSC)

The following parameter fields are dependent upon the condition that chs.TxScheme is set to 'SpatialMux' or 'MultiUser'.

  NDLRBRequired

Scalar integer from 6 to 110

Number of downlink resource blocks (NRBDL)

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

  CyclicPrefixOptional

'Normal' (default), 'Extended'

Cyclic prefix length

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

Parameter FieldRequired or OptionalValuesDescription
ModulationRequired'QPSK', '16QAM', '64QAM', '256QAM', '1024QAM'

Modulation type, specified as a character vector, cell array of character vectors, or string array. If blocks, each cell is associated with a transport block.

RNTIRequired

0 (default), scalar integer

Radio network temporary identifier (RNTI) value (16 bits)

TxSchemeRequired

'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

NLayersRequired

Integer from 1 to 8

Number of transmission layers.

CSIOptional

'Off' (default), 'On'

Flag provides control over weighting the soft values that are used to determine the output values with the channel state information (CSI) calculated during the equalization process. If 'On', soft values are weighted by CSI.

The following parameters are dependent upon the condition that TxScheme is set to 'SpatialMux' or 'MultiUser'.
  PMISetRequired

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.

  PRBSetRequired

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 following parameters are dependent upon the condition that TxScheme is set to 'Port5', 'Port7-8', 'Port8', or 'Port7-14'.
  WOptional

Numeric matrix, [] (default)

NLayers-by-P precoding matrix for the wideband UE-specific beamforming of the PDSCH symbols. P is the number of transmit antennas. When W is not specified, no precoding is applied.

Complex modulated PDSCH symbols, specified as a numeric matrix of size NRE-by-NRxAnts. NRE is the number of QAM symbols per antenna assigned to the PDSCH and NRxAnts is the number of receive antennas.

Data Types: double
Complex Number Support: Yes

Channel estimate, specified as a 3-D or 4-D numeric array. For the 'Port0', 'TxDiversity', 'SpatialMux', 'CDD', and 'MultiUser' transmission schemes, the array size is NRE-by-NRxAnts-by-CellRefP, where NRE is the number of QAM symbols per antenna assigned to the PDSCH, NRxAnts is the number of receive antennas, and CellRefP is the number of cell-specific reference signal antennas, given by enb.CellRefP. For the 'Port5', 'Port7-8', 'Port8', and 'Port7-14' transmission schemes, the array size is NRE-by-NRxAnts-by-NLayers, where NLayers is the number of transmission layers given by chs.NLayers.

When rxgrid is supplied, hest is a 4-D numeric array of size M-by-N-by-NRxAnts-by-CellRefP, 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.

Data Types: double

Noise estimate of the noise power spectral density per RE on the received subframe, specified as a numeric array.

Data Types: double

Full received resource grid, specified as 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.

Data Types: double
Complex Number Support: Yes

Output Arguments

collapse all

Codeword or codewords, returned as a cell array containing one or two vectors of bit values corresponding to the one or two codewords to be modulated.

Data Types: double

Received constellation symbols, returned as a cell array of complex double column vectors, resulting from performing the inverse of PDSCH processing.

Data Types: cell

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 R2014a