Documentation

ltePDSCHDecode

Physical downlink shared channel decoding

Syntax

  • [cws,symbols] = ltePDSCHDecode(enb,chs,sym)
    example
  • [cws,symbols] = ltePDSCHDecode(enb,chs,sym,hest,noiseest)
  • [cws,symbols] = ltePDSCHDecode(enb,chs,rxgrid,hest,noiseest)

Description

example

[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, or codewords, 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.

[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

Decode PDSCH Symbols

This example shows steps to generate , then decode PDSCH symbols

Initialize cell parameter structure enb for RMC R.0.

enb = lteRMCDL('R.0');

Populate a complex codeword matrix.

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

Generate modulated PDSCH symbols

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

Decode the PDSCH symbols.

[rxCws,symbols] = ltePDSCHDecode(enb,enb.PDSCH,pdschSym);

Plot of decoded PDSCH symbols

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

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

size(rxCws{:})
rxCws{1}(1:1:5)
ans =

   504     1


ans =

    0.9487
    0.9487
   -0.3162
    0.3162
    0.3162

Show size and first 5 elements of output received symbols, symbols.

size(symbols{:})
symbols{1}(1:5)
ans =

   126     1


ans =

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

Input Arguments

collapse all

enb — eNodeB cell-wide settingsstructure

eNodeB cell-wide settings, specified as a structure that can contain these parameter fields.

Parameter FieldRequired or OptionalValuesDescription
NCellIDrequired

Integer from 0 to 503

Physical layer cell identity.

NSubframerequired

Nonnegative integer

Subframe number.

CellRefPrequired

1, 2, 4

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

DuplexModeoptional

'FDD' (default), 'TDD'

Duplexing mode, specified as:

  • 'FDD' for Frequency Division Duplex or

  • 'TDD' for Time Division Duplex

The following parameters are dependent upon the condition that 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)

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

  NDLRBrequired

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

Number of downlink (DL) resource blocks (RBs)

  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

chs — Channel-specific transmission configurationstructure

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

Parameter FieldRequired or OptionalValuesDescription
Modulationrequired

('QPSK', '16QAM', '64QAM', '256QAM') String or cell array of strings.

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

RNTIrequired

Scalar integer

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

TxSchemerequired

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 cyclic delay diversity 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 eight-layer transmission, ports 7–14.

NLayersrequired

1,…,8, depending on TxScheme

Number of transmission layers (downlink modulation)

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

  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. An empty matrix, [], signifies no precoding.

sym — Complex modulated PDSCH symbolsnumeric matrix

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

hest — Channel estimate3-D numeric array | 4-D numeric array

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

noiseest — Noise estimatenumeric array

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

Data Types: double

rxgrid — Full received resource gridnumeric array

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

cws — Codeword or codewordsnumeric vector | cell array

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

Data Types: double

symbols — Received constellation symbolscell array of column vectors

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. "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 R2014a

Was this topic helpful?