PDSCH precoder matrix indicator calculation
[
performs
PDSCH precoder matrix indication (PMI) set calculation for the given
cell-wide settings, pmiset
,info
,sinrs
,subbandsinrs
]
= ltePMISelect(enb
,chs
,hest
,noiseest
)enb
, channel configuration
structure, chs
, channel estimate resource array, hest
,
and receiver noise variance, noiseest
. For more
information, see PMI Selection.
This example shows PMI selection and configuration of a downlink transmission with the selected PMI set.
Populate an empty resource grid for RMC R.13 with cell specific reference signal symbols. OFDM modulate the grid to create txWaveform
. Initialize channel configuration structure. Pass txWaveform
through channel and demodulate rxWaveform
to recover rxSubframe
enb = lteRMCDL('R.13'); enb.PDSCH.PMIMode = 'Subband'; reGrid = lteResourceGrid(enb); reGrid(lteCellRSIndices(enb)) = lteCellRS(enb); [txWaveform,info] = lteOFDMModulate(enb,reGrid); chcfg.SamplingRate = info.SamplingRate; chcfg.DelayProfile = 'EPA'; chcfg.NRxAnts = 4; chcfg.DopplerFreq = 5; chcfg.MIMOCorrelation = 'Low'; chcfg.InitTime = 0; chcfg.Seed = 1; rxWaveform = lteFadingChannel(chcfg,txWaveform); rxSubframe = lteOFDMDemodulate(enb,rxWaveform);
Initialize channel estimation structure. Perform channel estimation. Use estimates of the channel and noise power spectral density for PMI selection. This PMI set is then used to configure a downlink transmission.
cec.FreqWindow = 1; cec.TimeWindow = 31; cec.InterpType = 'cubic'; cec.PilotAverage = 'UserDefined'; cec.InterpWinSize = 1; cec.InterpWindow = 'Centered'; [hest, noiseEst] = lteDLChannelEstimate(enb,cec,rxSubframe); pmi = ltePMISelect(enb,enb.PDSCH,hest,noiseEst)
pmi = 9×1
1
1
6
2
12
12
12
12
12
enb.PDSCH.PMISet = pmi; txWaveform = lteRMCDLTool(enb,[1;0;0;1]);
enb
— Cell-wide settingsCell-wide settings, specified as a structure containing the following fields:
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
NDLRB | Required | Scalar integer from 6 to 110 | Number of downlink resource blocks. () |
NCellID | Required | Integer from 0 to 503 | Physical layer cell identity |
CellRefP | Optional | 1 (default), 2, 4 | Number of cell-specific reference signal (CRS) antenna ports |
CyclicPrefix | Optional |
| Cyclic prefix length |
DuplexMode | Optional |
| Duplexing mode, specified as:
|
The following parameters
apply when | |||
TDDConfig | Optional | 0, 1 (default), 2, 3, 4, 5, 6 | Uplink–downlink configuration |
SSC | Optional | 0 (default), 1, 2, 3, 4, 5, 6, 7, 8, 9 | Special subframe configuration (SSC) |
The
following parameters apply when
| |||
NSubframe | Required | 0 (default), nonnegative scalar integer | Subframe number |
The following parameters apply when
| |||
CSIRefP | Required | 1, 2, 4 | Array of number of CSI-RS antenna ports |
CSIRSConfig | Required | Scalar integer | Array CSI-RS configuration indices. See TS 36.211, Table 6.10.5.2-1. |
CSIRSPeriod | Optional |
| CSI-RS subframe configurations for one or more CSI-RS resources. Multiple CSI-RS resources can be configured from a single common subframe configuration or from a cell array of configurations for each resource. |
Nframe | Optional | 0 (default), nonnegative scalar integer | Frame number |
Data Types: struct
chs
— Channel transmission configurationChannel transmission configuration, specified as a structure containing the following fields:
Parameter Field | Required or Optional | Values | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NLayers | Required | Integer from 1 to 8 | Number of transmission layers. | ||||||||||||||||||||
PMIMode | Optional |
| PMI reporting mode. | ||||||||||||||||||||
TxScheme | Optional |
| PDSCH transmission scheme, specified as one of the following options.
| ||||||||||||||||||||
CodebookSubset | Optional | Character vector, string scalar, or integer vector, all ones (default) | Codebook subset restriction, specified as a character vector or
string scalar bitmap. The default values are all ones, permitting all PMI values. This parameter
is configured by higher layers and indicates the values of PMI that can be reported. The bitmap,
defined in TS 36.213, Section 7.2, is arranged a_A-1,a_A-2,...a_0. For example, the element
CodebookSubset(1) corresponds to a_A-1 and the element CodebookSubset(end) corresponds to a_0.
The length of the bitmap is given by the | ||||||||||||||||||||
The following parameter applies for
| |||||||||||||||||||||||
AltCodebook4Tx | Optional |
| If set to |
Data Types: struct
hest
— Channel estimateChannel estimate, specified as a multidimensional array of size K-by-L-by-NRxAnts-by-P where:
K is the number of subcarriers.
L is the number of OFDM symbols.
NRxAnts is the number of received antennas.
P is the number of planes.
Data Types: double
Complex Number Support: Yes
noiseest
— Receiver noise varianceReceiver noise variance, specified as a numeric scalar. This input argument specifies an estimate of the received noise power spectral density.
Data Types: double
pmiset
— PMI set selectedPrecoder matrix indications (PMI) set selected, returned as a column vector or an integer.
For the 'Port7-14'
transmission scheme with eight CSI-RS ports, or
for CSI reporting with the alternative codebook
for four antennas, pmiset
has
info
.
NSubbands + 1
rows. The first row indicates wideband codebook
index i1. The subsequent
info
.
NSubbands
rows indicate the subband codebook indices
i2 or if
info
.
NSubbands = 1
,
the wideband codebook index i2.
For other numbers of CSI-RS ports in the
'Port7-14'
transmission scheme,
and for other transmission schemes,
pmiset
has
info
.
NSubbands
rows. Each row gives the subband codebook index
for that subband.
For wideband reporting (info
.
NSubbands = 1
), pmiset
is
a scalar specifying the selected wideband codebook index.
Note
pmiset
is empty if the noise estimate, noiseest
,
is zero or NaN, or if the channel estimate, hest
,
contains any NaNs in the locations of the reference signal REs used
for PMI estimation.
info
— Information related to PMI reportingInformation related to PMI reporting, returned as a scalar structure. info
contains
the following fields:
Parameter Field | Description | Values |
---|---|---|
k | Subband size, in resource blocks (equal to | numeric scalar |
NSubbands | Number of subbands for PMI reporting (equal to 1 for wideband PMI reporting) or transmission schemes without PMI reporting. | numeric scalar |
MaxPMI | Maximum permitted PMI value for the given configuration. Valid
PMI values range from 0 to | nonnegative numeric scalar |
CodeBookSubsetSize | Size of the codebook subset restriction bitmap. For transmission
schemes without PMI reporting, | scalar |
sinrs
— Signal-to-interference plus noise ratiosSignal to interference plus noise ratios, returned as a multidimensional array of size K-by-L-by-N1-by-N2, where:
K is the number of subcarriers
L is the number of OFDM symbols
Definition of N1 and N2 depends on the CSI-RS ports:
For the 'Port7-14'
transmission scheme with eight CSI-RS ports, or
for CSI reporting with the alternative codebook
for four antennas, N1 and
N2 are the number of possible
first and second codebook indices:
N1 is
info
.MaxPMI(1) + 1
N2 is
info
.MaxPMI(2) + 1
For other numbers of CSI-RS ports in the
'Port7-14'
transmission scheme,
and for other transmission schemes:
N1 is 1
N2 is
info
.MaxPMI + 1
The array contains non-NaN
values in the
time and frequency locations (first two dimensions) of the reference
signal REs. This array is used for PMI estimation for all possible
codebook indices (last two dimensions). These values are the calculated
sinrs in the reference signal RE locations for each codebook index
combination. You can obtain the values using a linear MMSE SINR metric.
All locations not corresponding to a reference signal RE are set to NaN
.
subbandsinrs
— Subband signal-to-interference plus noise ratiosSubband signal-to-interference plus noise ratios (sinrs
),
returned as an info
.NSubbands
-by-N1-by-N2-by-chs
.NLayers
array.
This array indicates the average linear SINR in the subband specified
for each possible PMI value (N1 and N2 dimensions)
and each layer. The sinrs
output is formed by
summing a 5–dimensional K-by-L-by-N1-by-N2-by-chs
.NLayers
estimate
of the sinrs
across all the layers. subbandsinrs
is
formed by averaging that same five-dimensional estimate across each
subband that is in the appropriate region of the K dimension and across
the L dimension. Dimensionality described in sinrs
applies
here.
PDSCH precoder matrix indication (PMI) selection
calculates a PMI set, pmiset
. Functions, such
as lteRMCDLTool
or ltePDSCH
, can use the returned pmiset
to
configure the PMI for downlink transmissions they generate. PMI selection
is performed using the PMI definitions specified in TS 36.213, Section
7.2.4.
The CSI reporting codebook is used for:
'Port7-14'
transmission scheme
with eight CSI-RS ports
CSI reporting with the alternative codebook for four antennas (alternativeCodeBookEnabledFor4TX -r12 = true).
The codebook for closed-loop spatial multiplexing, defined in TS 36.211 Tables 6.3.4.2.3-1 and 6.3.4.2.3-2, is used for other cases.
The PMI feedback type associated with the PMI selection process can be wideband or subband:
PMIMode = 'Wideband'
corresponds to PUSCH
reporting Mode 1-2 or PUCCH reporting Mode 1-1 (PUCCH Report Type 2).
PMIMode = 'Subband'
corresponds to PUSCH
reporting Mode 3-1.
PMI selection is based on the rank indicated by
chs.NLayers
, except for 'TxDiversity'
transmission
scheme, where the rank is 1. In PUCCH reporting Mode 1-1, you can achieve codebook
subsampling for submode 2, as specified in TS 36.213, Table 7.2.2-1D, with an appropriate
chs
.CodebookSubset
.
[1] 3GPP TS 36.211. “Evolved Universal Terrestrial Radio Access (E-UTRA); Physical Channels and Modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
[2] 3GPP TS 36.213. “Evolved Universal Terrestrial Radio Access (E-UTRA); Physical layer procedures.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
lteCQISelect
| lteCSICodebook
| lteDLPrecode
| ltePDSCH
| ltePDSCHDecode
| ltePMIInfo
| lteRISelect
You have a modified version of this example. Do you want to open this example with your edits?