Main Content


PDSCH rank indication calculation



[ri,pmiset] = lteRISelect(enb,chs,hest,noiseest) calculates PDSCH rank indication (RI), given cell-wide settings,enb, channel configuration settings, chs, channel estimate resource array hest, and receiver noise variance noiseest. For more information, see RI Selection.


collapse all

This example shows how to populate an empty resource grid for RMC R.13 with cell-specific reference signal symbols. The signal is passed through a channel and OFDM demodulated. Estimates of the channel and noise power spectral density are used for RI and PMI calculation. A CodebookSubset bitmap of all ones means that no codebook subset restriction is applied, allowing any PMI/RI combination applicable for the configured transmission scheme to be selected during RI selection.

Create empty resource grid and populate with cell specific reference symbols. Set enb.PDSCH.CodebookSubset to all ones so the PMI selection is unconstrained

enb = lteRMCDL('R.13');
enb.PDSCH.CodebookSubset = '1111111111111111';
reGrid = lteResourceGrid(enb);
reGrid(lteCellRSIndices(enb)) = lteCellRS(enb);
[txWaveform,txInfo] = lteOFDMModulate(enb,reGrid);

Initialize the channel configuration structure (chcfg), filter the signal through a channel and demodulate the signal.

chcfg.DelayProfile = 'EPA';
chcfg.NRxAnts = 4;
chcfg.DopplerFreq = 5;
chcfg.MIMOCorrelation = 'Low';
chcfg.SamplingRate = txInfo.SamplingRate;
chcfg.Seed = 1;
chcfg.InitPhase = 'Random';
chcfg.ModelType = 'GMEDS';
chcfg.NTerms = 16;
chcfg.NormalizeTxAnts = 'On';
chcfg.NormalizePathGains = 'On';
chcfg.InitTime = 0;

rxWaveform = lteFadingChannel(chcfg,txWaveform);
rxSubframe = lteOFDMDemodulate(enb,rxWaveform);

Estimate corresponding channel, including noise spectral density and reference signal subcarriers. Use lteRISelect to calculate RI & PMI

cec.FreqWindow = 1;
cec.TimeWindow = 15;
cec.InterpType = 'cubic';
cec.PilotAverage = 'UserDefined';
cec.InterpWinSize = 1;
cec.InterpWindow = 'Centered';
[hest,noiseEst] = lteDLChannelEstimate(enb,cec,rxSubframe);
[ri,pmi] = lteRISelect(enb,enb.PDSCH,hest,noiseEst)
ri = 3
pmi = 13

Input Arguments

collapse all

eNodeB cell-wide settings, specified as a structure containing the following parameter fields:

Parameter FieldRequired or OptionalValuesDescription

Scalar integer from 6 to 110

Number of downlink resource blocks (NRBDL)


Integer from 0 to 503

Physical layer cell identity


1, 2, 4

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


'Normal' (default), 'Extended'

Cyclic prefix length


'FDD' (default), 'TDD'

Duplexing mode, specified as either:

  • 'FDD' for Frequency Division Duplex

  • 'TDD' for Time Division Duplex

The following parameters apply when DuplexMode is set to, TDD.


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

Uplink–downlink configuration


0 (default), 1, 2, 3, 4, 5, 6, 7, 8, 9

Special subframe configuration (SSC)

The following parameters apply when DuplexMode is set to 'TDD' or chs.TxScheme is set to 'Port7-14'


0 (default), nonnegative scalar integer

Subframe number

The following parameters apply when chs.TxScheme is set to 'Port7-14'.


1 (default), 2, 4, 8

Array of number of CSI-RS antenna ports


Scalar integer

Array CSI-RS configuration indices. See TS 36.211, Table


'On' (default), 'Off', Icsi-rs (0,...,154), [Tcsi-rs Dcsi-rs]. You can also specify values in a cell array of configurations for each resource.

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.


0 (default), nonnegative scalar integer

Frame number

Channel specific transmission configuration, specified as scalar structure, or structure array containing the following parameter fields:

Parameter FieldRequired or OptionalValuesDescription

'Wideband' (default), 'Subband'

PMI reporting mode. PMIMode='Wideband' corresponds to PUSCH reporting Mode 1-2 or PUCCH reporting Mode 1-1 (PUCCH Report Type 2) and PMIMode='Subband' corresponds to PUSCH reporting Mode 3-1.


'Port0', 'TxDiversity', 'CDD', 'SpatialMux' (default), 'MultiUser', 'Port5', 'Port7-8', 'Port8', 'Port7-14'.

PDSCH transmission scheme, specified as one of the following options.

Transmission schemeDescription
'Port0'Single antenna port, port 0
'TxDiversity'Transmit diversity
'CDD'Large delay cyclic delay diversity scheme
'SpatialMux'Closed loop spatial multiplexing
'MultiUser'Multi-user MIMO
'Port5'Single-antenna port, port 5
'Port7-8'Single-antenna port, port 7, when NLayers = 1. Dual layer transmission, ports 7 and 8, when NLayers = 2.
'Port8'Single-antenna port, port 8
'Port7-14'Up to eight layer transmission, ports 7–14


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 info.CodebookSubsetSize field returned by ltePMIInfo. You can also specify the bitmap in a hexadecimal form by adding the prefix '0x'. Alternatively, you can specify a numeric array identical to the pmiset output, indicating to restrict the selection to only those pmiset values. Specifying the parameter in this way enables you to obtain SINR estimates against an existing reported PMI for RI and CQI selection. If this parameter field is defined but is empty, no codebook subset restriction is applied. (codebookSubsetRestriction)

The following parameter applies for 'Port7-14' transmission scheme with CSIRefP equal to 4, or for 'Port7-8' or 'Port8' transmission scheme with CellRefP equal to 4.

  AltCodebook4Tx Optional

'Off' (default), 'On'

If set to 'On', enables the alternative codebook for CSI reporting with four antennas defined in TS 36.213, Tables 7.2.4-0A to 7.2.4-0D. The default is 'Off'. (alternativeCodeBookEnabledFor4TX-r12)

Channel estimate, specified as a K-by-L-by-NRxAnts-by-P array where:

  • K is the number of subcarriers.

  • L is the number of OFDM symbols.

  • NRxAnts is the number of receive antennas.

  • P is the number of transmit antennas.

Data Types: double
Complex Number Support: Yes

Receiver noise variance, specified as numeric scalar. It is an estimate of the received noise power spectral density.

Data Types: double

Output Arguments

collapse all

Rank indication, returned as a scalar, indicates the optimal number of layers to use for transmission to maximize SINR.

Precoder matrix indications, returned as a scalar, or a column vector.

  • For wideband reporting (NSubbands=1), pmiset is a scalar specifying the selected wideband codebook index,i2.

  • For the 'Port7-14' transmission scheme with eight CSI-RS ports, or for CSI reporting with the alternative codebook for four antennas, pmiset has NSubbands+1 rows. The first row indicates wideband codebook index, i1, and the subsequent NSubbands rows indicate the subband codebook indices, i2.

  • For other numbers of CSI-RS ports in the 'Port7-14' transmission scheme, and for other transmission schemes, pmiset has NSubbands rows, each row returns the subband codebook index for that subband.

The number of subbands, NSubbands, is a field in the info structure output by ltePMIInfo and ltePMISelect.

More About

collapse all

RI Selection

The PDSCH rank indication (RI) selection process determines the optimal number of layers (NLayers) to use for transmission to maximize SINR. The range of NLayers to consider is calculated based on the transmission scheme and the configured reference signal ports.

  1. For ν = 1,...,NLayers,

    1. Use ltePMISelect, with chs.NLayers = ν, to perform PMI selection.

    2. Record the selected PMI and total SINR across all layers, excluding layers with SINR below the threshold of 0 dB.

  2. Select the number of transmission layers, ν, that maximizes the SINR of the transmission and return as the rank indication, ri and corresponding PMI set, pmiset.

RI selection corresponds to:

  • Report Type 3 (for reporting Mode 1-0 or Mode 1-1) on the PUCCH.

  • Reporting Mode 1-2 or Mode 3-1 on the PUSCH.

For more information on RI selection, see TS 36.213 Section 7.2.

PMI Selection

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 and, 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.213. “Evolved Universal Terrestrial Radio Access (E-UTRA); Physical layer procedures.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL:

[2] 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:

Version History

Introduced in R2014b