# lteEqualizeMIMO

MMSE-based joint downlink equalization and combining

## Description

example

[out,csi] = lteEqualizeMIMO(enb,chs,in,hest,noiseest) performs joint equalization and combining of the received PDSCH symbols in in, given cell-wide settings structure, enb, PDSCH configuration structure, chs, channel estimate, hest, and noise power estimate, noiseest. MMSE equalization is performed on the product of the channel matrix and precoding matrices. Thus, it performs MMSE equalization between transmit and receive layers and returns the result, out.

## Examples

collapse all

Equalize and deprecode the PDSCH symbols for RMC R.11 in a MIMO configuration. The PDSCH symbols are extracted from a transmit resource grid. An ideal (identity) channel estimate and ideal (zero) noise estimate are created. The channel and noise estimates are used to equalize and deprecode the PDSCH symbols.

Initialize cell-wide configuration structure, enb. Generate and populate transmit resource grid for RMC R.11.

rmccfg.RC = 'R.11';
ncodewords = 2;
enb = lteRMCDL(rmccfg, ncodewords);
enb.TotSubframes = 1;
[~,txGrid] = lteRMCDLTool(enb, {[1;0] [0;1]});

Extract the PDSCH symbols from this transmit grid.

[ind,indInfo] = ltePDSCHIndices(enb, enb.PDSCH, enb.PDSCH.PRBSet);
pdschSym = txGrid(ind);

Create an ideal, or identity, channel estimate and an ideal, or zero, noise estimate.

hest = permute(repmat(eye(enb.CellRefP), [1 1 indInfo.Gd]), [3 1 2]);
nest = 0.0;

Equalize and deprecode the PDSCH symbols, using the channel and noise estimates.

[out,csi] = lteEqualizeMIMO(enb, enb.PDSCH, pdschSym, hest, nest);
deprecoded = lteDLDeprecode(enb,enb.PDSCH,out);

## Input Arguments

collapse all

Cell-wide settings, specified as a structure with the following fields.

Parameter FieldRequired or OptionalValuesDescription
NDLRBRequired

Scalar integer from 6 to 110

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

NCellIDRequired

Integer from 0 to 503

Physical layer cell identity

CyclicPrefixOptional

'Normal' (default), 'Extended'

Cyclic prefix length

CellRefPRequired

1, 2, 4

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

NSubframeRequired

0 (default), nonnegative scalar integer

Subframe number

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 enb.DuplexMode is set to 'TDD'.

TDDConfigOptional

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

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

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

Data Types: struct

PDSCH configuration, specified as a structure with the following fields.

Parameter FieldRequired or OptionalValuesDescription
NLayersRequired

Integer from 1 to 8

Number of transmission layers (downlink modulation)

RNTIRequired

0 (default), scalar integer

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

TxSchemeRequired

'CDD', 'SpatialMux', 'MultiUser'

Transmission scheme, specified as one of the following options.

Transmission schemeDescription
'CDD'Large delay cyclic delay diversity
'SpatialMux'Closed loop spatial multiplexing
'MultiUser'Multi-user MIMO

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

Data Types: struct

Received PDSCH input symbols, specified as a numeric matrix of size M-by-NRxAnts, where M is the number of received symbols for each of NRxAnts receive antennas.

Data Types: double
Complex Number Support: Yes

Channel estimate, specified as a 3-D numeric array of size M-by-NRxAnts-by-enb.CellRefP, where:

• M is the number of received symbols in in,

• NRxAnts is the number of receive antennas,

• enb.CellRefP is the number of cell-specific reference signal antenna ports.

Data Types: double

Noise power estimate, specified as a numeric scalar. This argument is an estimate of the noise power spectral density per RE on rxgrid. Such an estimate is provided by the lteDLChannelEstimate function.

Data Types: double

## Output Arguments

collapse all

Equalized output symbols, returned as a numeric matrix of size M-by-NU, where

• M is the number of received symbols for each receive antenna

• NU is the number of transmit layers

Data Types: double
Complex Number Support: Yes

Soft channel state information, returned as a numeric matrix of size M-by-NU, the same size as out. This argument contains soft channel state information and provides an estimate, via MMSE, of the received gain for each received layer.

Data Types: double