Main Content

lteEqualizeULMIMO

MMSE-based joint uplink equalization and combining

Description

[out,csi] = lteEqualizeULMIMO(ue,chs,in,hest,noiseest) performs joint equalization and combining of the received PUSCH symbols in in, given UE-specific settings structure, ue, PUSCH 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 performing MMSE equalization between transmit and receive layers and returning the result in out.

example

Examples

collapse all

Extract, equalize, and deprecode PUSCH symbols from an RMC A3-2 grid.

Generate a resource grid using multiple antennas to transmit a single PUSCH codeword.

ue = lteRMCUL('A3-2');
ue.TotSubframes = 1;
ue.NTxAnts = 2;
ue.PUSCH.NLayers = 2;
[~,txGrid] = lteRMCULTool(ue,[1;0;0;1]);

Extract the PUSCH symbols from this transmit grid.

[ind,indInfo] = ltePUSCHIndices(ue,ue.PUSCH);
puschSym = txGrid(ind);

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

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

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

[out,csi] = lteEqualizeULMIMO(ue,ue.PUSCH,puschSym,hest,nest);
NPRB = size(ue.PUSCH.PRBSet,1);
deprecoded = lteULDeprecode(out,NPRB);

Input Arguments

collapse all

UE-specific settings, specified as a structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
NTxAntsOptional

1 (default), 2, 4

Number of transmission antennas.

Data Types: struct

PUSCH configuration structure, specified as a structure that can contain the following fields. The PMI parameter field is only required if ue.NTxAnts is set to 2 or 4.

Parameter FieldRequired or OptionalValuesDescription
NLayersOptional

1 (default), 2, 3, 4

Number of transmission layers.

The following parameter is required only when ue.NTxAnts is set to 2 or 4.
PMIRequired

Nonnegative scalar integer from 0 (default) to 23

Precoder matrix indication. This PMI is to be used during precoding of the DRS reference symbols. For more information, see lteULPMIInfo.

Data Types: struct

Received PUSCH input symbols, specified as a numeric matrix of size M-by-NRxAnts, where M is the number of received symbols for each of the 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-NTxAnts, where M is the number of received symbols in in, NRxAnts is the number of receive antennas, and NTxAnts is the number of transmit antenna ports, given by ue.NTxAnts.

Data Types: double

Noise power estimate as power spectral density per RE on rxgrid, specified as a numeric scalar. Such an estimate is provided by the lteULChannelEstimate function.

Data Types: double

Output Arguments

collapse all

Equalized output symbols, returned as a complex-valued numeric matrix of size M-by-NU, where M is the number of received symbols for each receive antenna and NU is the number of transmit layers.

Data Types: double
Complex Number Support: Yes

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

Data Types: double

Version History

Introduced in R2013b