Main Content


PDSCH channel quality indication calculation



[cqi,sinrs] = lteCQISelect(enb,chs,hest,noiseest) calculates PDSCH CQI (Channel Quality Indication) for cell-wide configuration enb, channel configuration chs, channel estimate hest, and receiver noise variance noiseest. For more information, see CQI Selection.


collapse all

An empty resource grid for RMC R.13 is populated with cell-specific reference signals symbols. The signal is filtered through the channel, demodulated and the corresponding channel is estimated along with an estimate of noise power spectral density on the reference signal subcarriers. The estimates are used for CQI calculation.

Populate an empty resource grid for RMC R.13 with cell-specific reference signal symbols and modulate the waveform. Add noise to txWaveform. Configure an EPA fading channel and filter the signal through this channel.

enb = lteRMCDL('R.13');
reGrid = lteResourceGrid(enb);
reGrid(lteCellRSIndices(enb)) = lteCellRS(enb);
[txWaveform,info] = lteOFDMModulate(enb,reGrid);

noise = 0.5*complex(randn(size(txWaveform)),randn(size(txWaveform)));
txWaveform_nz = txWaveform + noise;

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_nz);

Demodulate the received signal. Perform downlink channel estimate and noise power spectral density estimation on the demodulated signal. Use estimates of channel and noise power spectral density for CQI calculation.

rxSubframe = lteOFDMDemodulate(enb,rxWaveform);

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

cqi = lteCQISelect(enb,enb.PDSCH,hest,noiseEst)
cqi = 5

Input Arguments

collapse all

eNodeB cell-wide settings, specified as a structure. The structure contains 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, 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 a structure or structure array. The structure contains the following parameter fields:

Parameter FieldRequired or OptionalValuesDescription

Integer from 1 to 8

Number of transmission layers.


'PUCCH 1-0', 'PUCCH 1-1', 'PUSCH 1-2', 'PUSCH 3-0', 'PUSCH 3-1'

CSI reporting mode

TxSchemeRequired'Port0', 'TxDiversity', 'CDD', 'SpatialMux', '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


15 element vector, or function handle

A vector of 15 SINR values or a function handle to a function of the form f(enb, chs) which returns a vector of 15 SINR values, one for each CQI index 1, ..., 15. These correspond to the lowest SINR for which the throughput of the PDSCH in the CQI/CSI reference resource, for the given configuration and CQI index, is at least 90%. Default is to internally select SINRs based on configuration given in enb and chs, assuming perfect channel estimation and either MMSE equalization or transmit diversity decoding (as appropriate for the transmission scheme) at the receiver.

The following parameter applies for 'SpatialMux', 'MultiUser', 'Port5', 'Port7-8', 'Port8', 'Port7-14' transmission schemes.


Integer vector with element values from 0 to 15.

A vector of Precoder Matrix Indications. The vector may contain either a single value (corresponding to single PMI mode) or multiple values (corresponding to multiple or subband PMI mode). For the 'Port7-14' transmission scheme with eight CSI-RS ports or for CSI reporting with the alternative codebook for four antennas, an additional first value indicates the wideband codebook index, i1, and subsequent values indicate the subband codebook indices, i2, or the wideband codebook index, i2. Valid value range depends on CellRefP, CSIRefP, NLayers, TxScheme, and AltCodebook4Tx. For more information about setting PMI parameters, see ltePMIInfo.

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 Required

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

Additionally, one of the following fields must be included. see note 1


1, 2

Number of codewords

  ModulationRequired'QPSK', '16QAM', '64QAM', '256QAM', '1024QAM'

Modulation type, specified as a character vector, cell array of character vectors, or string array. If blocks, each cell is associated with a transport block.

note 1 – Specify the number of codewords directly in the NCodewords field. Alternatively, if the Modulation field is provided, the number of codewords is established from the number of modulation formats. This value lets you establish the correct number of codewords using the channel transmission configuration structure, chs, as provided to ltePDSCH function on the transmit side. If present, the NCodewords field takes precedence.

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 a numeric scalar. noiseest is an estimate of the received noise power spectral density.

Data Types: double

Output Arguments

collapse all

Channel quality information, returned as a column vector containing a channel quality information report. Report contents depend on the CSI reporting mode.

Report ModeReporting Contents

Single codeword:

'PUCCH 1-0'A single wideband CQI index
'PUSCH 3-0'A single wideband CQI index, followed by a subband differential CQI offset level for each subband.

Two codewords:

'PUCCH 1-1'A single wideband CQI index for codeword 0, followed by a spatial differential CQI offset level for codeword 1.
'PUSCH 1-2'A single wideband CQI index for codeword 0, followed by a single wideband CQI index for codeword 1.
'PUSCH 3-1'A single wideband CQI index for codeword 0, followed by a subband differential CQI offset level for each subband for codeword 0, followed by a single wideband CQI index for codeword 1, followed by a subband differential CQI offset level for each subband for codeword 1.


CSI reporting modes, are separated into the modes that support one or two codewords, as described by the standard. The CQI select function derives these code words from chs.NCodewords or chs.Modulation.

Signal-to-interference plus noise ratios, in dB, returned as a matrix. Each column of the matrix represents a single codeword. If subband CQI reporting is configured, the SINR for the wideband CQI is in the first row, followed by the sinrs for the subband CQIs in subsequent rows. sinrs is an optional output.

More About

collapse all

CQI Selection

The function performs the CQI selection by first obtaining SINR (Signal to Interference and Noise Ratio) estimates for a given configuration from ltePMISelect. Then the function performs a lookup between those SINR estimates and the CQI index. The lookup tables are precomputed and stored in this function. CQI selection is conditioned on the rank indicated by chs.NLayers, except for the 'TxDiversity' transmission scheme which has a rank of 1. On PUCCH, CQI selection corresponds to Report Type 2 (for reporting Mode1-1) or Report Type 4 (for reporting Mode 1-0). On PUSCH, the reporting is Mode 1-2, Mode 3-0, or Mode 3-1.

A CQI Index is a scalar (0,...,15), indicating the selected value of the CQI index. The CQI index is defined as per TS 36.213. The highest CQI index is selected when a single PDSCH transport block with a modulation scheme and transport block size of CQI index, and occupying a group of downlink physical resource blocks termed the CSI reference resource, can be received with a transport block error probability not exceeding 0.1. If a CQI index of 1 does not satisfy this condition, then the returned CQI index is 0. The CQI reference resource is defined in TS 36.213, Section 7.2.3. The relationship between CQI indices, modulation scheme, and code rate (from which transport block size is derived) is described in TS 36.213, Tables 7.2.3-1 and 7.2.3-2.

A subband differential CQI offset level is the difference between a subband CQI index and the corresponding wideband CQI index.

A spatial differential CQI offset level is the difference between the wideband CQI index for codeword 0 and the wideband CQI index for codeword 1.

Within the 3GPP standard, CQI offsets are reported as CQI values. These values are nonnegative integers corresponding to single CQI offset levels or ranges of CQI offset levels (see TS 36.213, Tables 7.2-2 and 7.2.1-2). The CQI offset levels reported here are either the single CQI offset level corresponding to the CQI value reported or the boundary value of the CQI offset level range corresponding to the CQI value reported. For example, a calculated spatial differential CQI offset level of –6 would be reported per the standard as a spatial differential CQI value of 4. This function will return a spatial differential offset level of –4 because the calculated differential CQI offset level exceeds this boundary value, meaning –6 < –4 (see TS 36.213, Table 7.2-2).

For transmission schemes using UE-specific beamforming ('Port 5', 'Port 7-8', 'Port 8', 'Port7-14'), the performance depends on the beamforming used. For UE-specific beamforming, the appropriate value of chs.SINRs90pc field is provided. If this field is not provided, for single antenna ports, the function uses default SINRs90pc values.


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

Version History

Introduced in R2014b