# lteEqualizeMIMO

MMSE-based joint downlink equalization and combining

## Syntax

``````[out,csi] = lteEqualizeMIMO(enb,chs,in,hest,noiseest)``````

## 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
`NDLRB`Required

Scalar integer from 6 to 110

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

`NCellID`Required

Integer from 0 to 503

Physical layer cell identity

`CyclicPrefix`Optional

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

Cyclic prefix length

`CellRefP`Required

1, 2, 4

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

`NSubframe`Required

0 (default), nonnegative scalar integer

Subframe number

`DuplexMode`Optional

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

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

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

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

Data Types: `struct`

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

Parameter FieldRequired or OptionalValuesDescription
`NLayers`Required

Integer from 1 to 8

Number of transmission layers (downlink modulation)

`RNTI`Required

0 (default), scalar integer

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

`TxScheme`Required

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

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`

## Version History

Introduced in R2014a