PUSCH precoder matrix indication calculation

performs
PUSCH precoder matrix indication (PMI) calculation for given UE-specific
settings, `pmi`

= lteULPMISelect(`ue`

,`chs`

,`hest`

,`noiseest`

)`ue`

, channel configuration structure, `chs`

,
channel estimate resource array, `hest`

, and receiver
noise variance, `noiseest`

. The output, `pmi`

,
is a scalar containing the PMI selected for closed-loop transmission.

`hest`

is a 4-D array of size *M*-by-*N*-by-`NRxAnts`

-by-`NTxAnts`

,
where *M* is the number of subcarriers, *N* is
the number of SC-FDMA symbols, `NRxAnts`

is the number
of receive antennas, and `NTxAnts`

is the number
of transmit antennas.

`noiseest`

is a scalar, an estimate of the
received noise power spectral density.

provides
an additional input `pmi`

= lteULPMISelect(`ue`

,`chs`

,`hest`

,`noiseest`

,`refgrid`

)`refgrid`

, a 3-D *M*-by-*N*-by-`NTxAnts`

array
containing known transmitted data symbols in their correct locations.
All other locations i.e. DRS Symbols and unknown data symbol locations
should be represented by a `NaN`

. This is the same
array as the additional `refgrid`

input described
for the `lteULChannelEstimate`

function.
For PMI selection the symbols in `refgrid`

are
ignored, but the non-`NaN`

RE locations are used
as RE locations at which to sample the channel estimate and perform
PMI estimation. This approach can be used to provide a `refgrid`

containing
for example the SRS RE locations created on all `NTxAnts`

,
allowing for full-rank channel estimation for the purposes of PMI
selection when the PUSCH is transmitted with less than full rank.

accepts
channel estimator configuration structure `pmi`

= lteULPMISelect(`ue`

,`chs`

,`hest`

,`noiseest`

,`refgrid`

,`cec`

)`cec`

containing
the field `Reference`

.

`Reference`

= `'None'`

will
generate no internal reference signals, and the PMI estimation can
be performed on arbitrary known REs as given by the `refgrid`

argument.
This approach can be used to provide a `refgrid`

containing
for example the SRS signals created on all `NTxAnts`

,
allowing for full-rank PMI estimation for the purposes of PMI selection
when the PUSCH is transmitted with less than full rank. `Reference`

= `'Antennas'`

or `Reference`

= `'Layers'`

will
use the PUSCH DMRS RE indices as reference locations for PMI estimation;
additional references can still be provided in `refgrid`

.