>
Home5G NRPHY โ€” Physical LayerCSI Feedback
๐Ÿ“ถ PHY โ€” Physical LayerAdvanced

CSI Feedback (CQI / PMI / RI) in 5G NR

Channel State Information reporting and how it drives link adaptation and MIMO.

📚 3GPP-basedTS 38.214

The gNB schedules the downlink, but only the UE can see the downlink channel it actually experiences. CSI (Channel State Information) is the feedback that closes that loop: the UE measures a known reference signal and hands the network a compact recommendation for how good the channel is (CQI), how to shape the transmit antennas (PMI), how many parallel streams it can carry (RI), which layer is strongest (LI), and which beam to use (CRI). Everything the scheduler does about rate, precoding and MIMO rank starts from this report. Grounded in TS 38.214.

Introduction

Channel State Information is the downlink's eyes. Because the propagation channel is only observable at the receiver, the gNB cannot know how to transmit efficiently unless the UE measures the channel and reports back. CSI is the standardised feedback that carries that measurement — a bundle of quantities the UE derives from downlink reference signals and returns on the uplink, defined in TS 38.214.

It runs throughout the connected lifetime of the UE. Once RRC has configured the measurement resources and the report, the UE measures continuously and reports either on a fixed cadence, on demand, or in switchable bursts. Every downlink transmission decision the scheduler makes — the MCS for link adaptation, the precoder and rank for MIMO, the serving beam in a beamformed cell — is seeded by the most recent CSI report.

CSI matters because it is the difference between transmitting blind and transmitting to the channel. Get it right and the network runs close to the channel's capacity; get it stale, mis-configured, or wrongly scoped and the scheduler either wastes spectrum by playing safe or triggers retransmissions by overreaching. Understanding CSI is understanding how the downlink is steered.

Why CSI is needed

💡

In plain words: imagine a lecturer speaking to a hall they cannot see — they have no idea whether the back rows can hear, whether an echo is muddying one corner, or how many people are even listening. CSI is the audience raising cards that say "speak faster, you're clear here," "point the speaker this way," and "we can follow three separate speakers at once." Without those cards the lecturer must either shout slowly at everyone (wasteful) or talk fast and lose half the room (errors).

Concretely, four downlink decisions are impossible to make well without feedback. The gNB must pick a rate (modulation and code rate) — too high and the block fails, too low and capacity is wasted. It must pick a precoder to steer energy along the channel's strong spatial directions. It must pick a rank — how many independent streams the channel can actually carry. And in a beamformed cell it must pick the right beam. Each of these depends on the instantaneous channel, which only the UE can see.

CSI supplies exactly these four answers in one report: CQI for rate, PMI for the precoder, RI for the rank, and CRI for the beam (with LI as a fifth, smaller hint about where to place phase-tracking pilots). It turns the UE's private, unobservable view of the radio link into a standardised, quantised recommendation both ends interpret identically — letting the scheduler match the transmission to the channel in rate, spatial dimension, and direction simultaneously.

What CSI is and why it exists

Downlink transmission is decided entirely at the gNB — modulation, code rate, precoder, number of layers, transmit beam — but the propagation channel is something only the receiver can observe. Without feedback the gNB would be guessing at every one of those choices, and a wrong guess costs throughput (too conservative) or a decode failure and retransmission (too aggressive). CSI is the mechanism that turns the UE's private view of the channel into something the scheduler can act on.

What

A bundle of quantities — CQI, PMI, RI, LI, CRI, and for beam management L1-RSRP/L1-SINR — that the UE derives from downlink reference-signal measurements and reports to the gNB, per TS 38.214.

Why

It drives two distinct scheduler decisions at once: link adaptation (which MCS to use) and MIMO (which precoder, how many layers, which beam). Accurate feedback lets the network run close to the channel's capacity instead of playing safe or overreaching.

How

The gNB transmits NZP-CSI-RS for the channel and optionally CSI-IM for interference; the UE assumes a hypothetical PDSCH transmission and reports the settings that keep block error rate at the configured target. Reporting is wired up by CSI-ResourceConfig and CSI-ReportConfig.

A crucial point of philosophy: CSI is a recommendation, not a command. The gNB is free to follow the report verbatim, adjust it with its own outer-loop algorithms, or ignore it. What the report guarantees is a grounded, standardised snapshot of the radio link computed against agreed assumptions, so that both ends interpret it identically.

🎯

One-liner: CQI answers "how good," PMI answers "how to point," RI answers "how many layers," LI answers "which layer is strongest," and CRI/L1-RSRP answer "which beam." Together they let the gNB schedule the downlink intelligently instead of blindly.

The CSI quantities

Each quantity targets a different scheduling decision. A given CSI-ReportConfig selects which of them the UE reports through its reportQuantity field — for example cri-RI-PMI-CQI for full MIMO feedback, or cri-RSRP for pure beam reporting. Not every report carries every quantity.

QuantityFull nameWhat it tells the gNBFeeds
CQIChannel Quality IndicatorA 4-bit index (0–15) recommending the highest modulation + code rate the channel can carry at the target BLER — effectively a suggested MCS.Link adaptation
PMIPrecoding Matrix IndicatorThe preferred precoder, identified as an entry (or pair of indices i1,i2) in a defined codebook, matching the channel's spatial structure.MIMO precoding
RIRank IndicatorHow many independent spatial layers (streams) the channel can usefully support right now — 1 up to the number of CSI-RS ports (max 8).MIMO layer count
LILayer IndicatorWhich of the reported layers is the strongest — used to place phase-tracking reference signals on the best layer.DMRS/PTRS placement
CRICSI-RS Resource IndicatorWhich NZP-CSI-RS resource (i.e. which transmit beam) the UE prefers, when several are configured in a set.Beam selection
L1-RSRPLayer-1 Reference Signal Received PowerThe received power of the best beam(s), reported fast at the physical layer for beam management — not filtered like L3 RSRP.Beam management
L1-SINRLayer-1 Signal-to-Interference-plus-Noise RatioBeam quality including interference, giving a richer beam-selection metric than power alone.Beam management
⚠️

Ordering trap: the MIMO quantities are computed conditionally, in a fixed order. The UE first picks CRI (best beam), then RI (rank on that beam), then PMI (precoder for that rank), then CQI (quality assuming that precoder and rank), and finally LI (strongest of the chosen layers). Each later quantity is conditioned on the earlier ones — which is why CQI always means "quality given this rank and this precoder," never an unconditional SNR.

CRI, L1-RSRP and L1-SINR belong to the beam-management side of the story. When the gNB sweeps several narrow beams (each carried on its own NZP-CSI-RS resource), the UE measures all of them and reports the best index plus its power/quality. That is how the network keeps a moving mmWave UE pointed at the right beam without dropping the link — see Beam Management.

Measuring channel and interference: NZP-CSI-RS and CSI-IM

Everything in a CSI report is derived from measurements, and CSI cleanly separates the two things worth measuring: the wanted channel and the interference the UE will actually see. Getting both right is what lets CQI reflect true operating conditions rather than an interference-free ideal.

The wanted channel is measured on NZP-CSI-RS (Non-Zero-Power CSI Reference Signal). These are known pilot symbols the gNB transmits in a configured pattern of resource elements; because the sequence is known, the UE can estimate the complete channel matrix — amplitude and phase on every transmit-receive antenna pair — from them. An NZP-CSI-RS resource can span 1, 2, 4, 8, 12, 16, 24 or 32 antenna ports, and its density and periodicity are configurable, trading measurement accuracy against overhead.

Interference is measured on CSI-IM (CSI Interference Measurement) resources. A CSI-IM is deliberately a set of resource elements on which the serving cell sends nothing — so whatever power the UE observes there is pure interference plus noise from neighbours and other transmissions. Pairing a channel measurement with an interference measurement lets the UE compute a realistic SINR, and therefore a realistic CQI. Alternatively, interference can be measured on a dedicated NZP-CSI-RS-for-interference resource that emulates an interfering stream.

ResourcePurposeWhat the UE observesUsed to derive
NZP-CSI-RS (for channel)Channel measurementKnown pilots → full channel matrix HRI, PMI, CRI, signal part of CQI
CSI-IMInterference measurementEmpty REs → interference + noise powerInterference term of SINR → CQI
NZP-CSI-RS (for interference)Emulated interferencePilot standing in for an interfering layerInterference term (MU-MIMO hypotheses)
SSB (as CSI resource)Beam measurementSS/PBCH block powerL1-RSRP, CRI/SSBRI

A CSI-RS resource can also be time-configured as periodic, semi-persistent, or aperiodic — independently of the report timing. Periodic CSI-RS is always present; aperiodic CSI-RS is transmitted only when a report is triggered, saving overhead. The report and its resources do not have to share the same timing mode, but valid combinations are restricted (for instance, an aperiodic report can use periodic, semi-persistent or aperiodic resources).

📘

Spec detail: a UE can also report ZP-CSI-RS awareness — Zero-Power CSI-RS marks resource elements the gNB is muting (often because a neighbour cell is transmitting its CSI-RS there). ZP resources do not carry a measurement themselves; they tell the UE to rate-match its PDSCH around those REs.

The configuration framework: ReportConfig and ResourceConfig

Two RRC structures wire the whole thing together, and keeping them straight is the key to understanding CSI. One says what to measure; the other says what to report and how.

CSI-ResourceConfig defines the measurement side. It groups one or more resource sets — nzp-CSI-RS-ResourceSet(s) for channel measurement, and optionally csi-IM-ResourceSet(s) for interference. Each set in turn lists the individual resources. This is the "what the UE measures" container.

CSI-ReportConfig defines the reporting side. It references the relevant CSI-ResourceConfig(s) — one for channel measurement (resourcesForChannelMeasurement), and optionally ones for interference (csi-IM-ResourcesForInterference or nzp-CSI-RS-ResourcesForInterference) — then selects the reportQuantity, the codebookConfig (Type I or Type II and its parameters), whether feedback is wideband or subband (reportFreqConfiguration), and the timing mode (reportConfigType). It is the "what to report and how" container.

IE / fieldBelongs toRole
CSI-ResourceConfigmeasurementContainer grouping the resource sets the UE measures on.
nzp-CSI-RS-ResourceSetmeasurementSet of NZP-CSI-RS resources for channel (and possibly beam) measurement.
csi-IM-ResourceSetmeasurementSet of CSI-IM resources for interference measurement.
CSI-ReportConfigreportingContainer defining one report: its resources, quantity, codebook and timing.
resourcesForChannelMeasurementreportingPoints at the CSI-ResourceConfig used for the channel.
reportQuantityreportingWhich quantities to report (cri-RI-PMI-CQI, cri-RSRP, none, …).
codebookConfigreportingType I vs Type II codebook and its structure parameters.
reportConfigTypereportingTiming mode: periodic, semiPersistentOnPUCCH, semiPersistentOnPUSCH, or aperiodic.

A UE can be configured with many CSI-ReportConfigs at once — for example one periodic wideband report as a cheap baseline, plus an aperiodic subband Type II report the gNB triggers only when it wants to set up high-order MU-MIMO. Each report is independent and points at its own resources.

Report timing: periodic, semi-persistent, aperiodic

CSI reporting comes in three timing modes, each carried on a different uplink channel and triggered differently. The choice trades feedback freshness and detail against uplink overhead.

ModeCarried onTriggered / controlled byTypical use
Periodic (P-CSI)PUCCHRRC-configured period + offsetSteady, low-overhead, always-on baseline feedback
Semi-persistent (SP-CSI) on PUCCHPUCCHActivated / deactivated by MAC CEBursts of periodic feedback switched on only when needed
Semi-persistent (SP-CSI) on PUSCHPUSCHActivated by DCI (then recurs), released by DCIRicher periodic reports without permanent PUCCH cost
Aperiodic (A-CSI)PUSCHTriggered one-shot by DCI CSI request fieldDetailed, on-demand report exactly when the gNB needs it

Periodic CSI is the simplest: RRC configures a period and offset, and the UE reports on PUCCH at that cadence forever until reconfigured. It is cheap and predictable, but because PUCCH has limited payload it usually carries only compact wideband feedback.

Semi-persistent CSI behaves like periodic reporting that can be switched on and off. On PUCCH it is activated and deactivated by a MAC CE; on PUSCH it is activated by a DCI and then recurs on scheduled PUSCH occasions. This lets the network pay for detailed periodic feedback only during the intervals it matters — a bursty large download, say — and stop it otherwise.

Aperiodic CSI is a single on-demand report carried on PUSCH. A DCI (typically an uplink grant, DCI format 0_1/0_2) contains a CSI request field; each nonzero codepoint maps to one or more configured CSI-ReportConfigs (a "trigger state" in CSI-AperiodicTriggerStateList). When the UE sees the trigger, it measures and appends the report to the granted PUSCH. Because PUSCH can carry a large payload, aperiodic reporting is where the heavy, subband, Type II reports live.

CSI Part 1 and Part 2, and how it maps to the channel

A CSI report can be large and, worse, its size can depend on its own content — the number of subband CQIs and the PMI payload depend on the reported RI, which the gNB does not know until it decodes the report. To make this decodable, larger reports are split into two parts:

  • CSI Part 1 has a fixed, known size. It carries the RI (and CRI), a wideband CQI, and — for Type II — an indication of the number of non-zero coefficients. Because its size is fixed, the gNB can always decode Part 1.
  • CSI Part 2 carries the rest: the PMI, subband CQI, LI, and Type II amplitude/phase coefficients. Its size is derived from Part 1, so the gNB knows how many bits to expect only after decoding Part 1.

On PUSCH, Part 1 and Part 2 are encoded separately, and if the grant is too small Part 2 can be partially omitted according to a defined priority order (wideband survives, the least important subband information is dropped first). On PUCCH, small reports fit in one part; larger periodic reports use the two-part structure across the PUCCH resource. This two-part design is the reason a variable-size report never becomes undecodable.

🎯

Why the split matters: Part 1 is fixed-size so it is always decodable; Part 2's size is computed from Part 1. That ordering is what lets a single report carry a rank-dependent, content-dependent payload without the receiver ever guessing at its length.

Codebooks and frequency granularity: Type I vs Type II, wideband vs subband

The PMI is an index into a codebook — a standardised set of candidate precoding matrices both ends agree on. NR defines two families, trading feedback overhead against precoding accuracy.

Type I codebooks report a single preferred beam direction per layer, chosen from a DFT-based grid of beams, with a co-phasing term across polarisations. The feedback is compact and the resulting precoder is essentially "point the array in the best direction." Type I is the workhorse for single-user MIMO (SU-MIMO), where you mainly need to steer energy toward one UE.

Type II codebooks report a linear combination of several beams per layer, each with its own quantised amplitude and phase. This produces a far more accurate reconstruction of the channel's spatial structure — precise enough for the gNB to null interference between users — which is exactly what multi-user MIMO (MU-MIMO) needs. The price is a much larger report, which is why Type II typically rides aperiodic PUSCH. An enhanced variant (eType II) adds frequency-domain compression to cut that overhead.

AspectType IType II
PMI structureSingle beam per layer + co-phasingLinear combination of multiple beams, per-beam amplitude & phase
OverheadLowHigh (eType II compresses it)
Precoding accuracyCoarse (beam steering)Fine (channel reconstruction)
Primary useSU-MIMOMU-MIMO, interference nulling
Max layers reportedUp to 8Up to 4 (rel-dependent)
Usual carrierPUCCH / PUSCHPUSCH (aperiodic)

Independently of codebook type, the report has a frequency granularity. Wideband feedback gives one value across the whole bandwidth part — one CQI, one PMI. Subband feedback gives per-subband values (a subband is a small group of resource blocks — typically 4, 8, 16 or 32 RBs, its size set by BWP width), letting a frequency-selective scheduler assign each UE the resource blocks where its channel is best. Subband feedback costs proportionally more uplink bits, so it is reserved for reports where the gain justifies it. The reportFreqConfiguration in CSI-ReportConfig selects wideband vs subband for CQI and PMI separately.

CQI in depth: the quality-to-MCS bridge

The CQI is the quantity most directly tied to throughput. The UE reports the index of the highest entry in a CQI table such that a hypothetical PDSCH using that entry's modulation and code rate would decode with block error rate not exceeding the target — 10% (0.1) for normal traffic, or 0.001 for the low-spectral-efficiency (URLLC) table. The three CQI tables mirror the MCS tables: one topping out at 64QAM, one reaching 256QAM, and a low-SE table for high-reliability services.

UE reports highest CQI index such that BLER( modulation, code rate ) ≤ target

Each index encodes a modulation order and a target code rate, from which a spectral efficiency (bits/RE) follows. The excerpt below is from the 256QAM CQI table (TS 38.214, Table 5.2.2.1-3); index 0 always means "out of range — no reliable transmission possible."

CQI indexModulationCode rate × 1024Efficiency (bits/RE)
0out of range (no transmission)
1QPSK780.1523
4QPSK3780.7383
716QAM4381.7109
916QAM6162.4063
1164QAM5673.3223
1364QAM7724.5234
14256QAM7976.2266
15256QAM9487.4063

The CQI can be wideband (one index for the whole BWP) or subband (a wideband reference plus small per-subband differentials, each a 2-bit offset), controlled by cqi-FormatIndicator. Note that the UE computes CQI conditioned on the reported RI and PMI and on the assumed number of layers — it is the quality you would get if the gNB used the recommended rank and precoder, not a raw SNR.

📘

Spec detail: the gNB does not use the reported CQI verbatim. It feeds it into an outer-loop link adaptation algorithm that biases the final MCS up or down based on the actual HARQ ACK/NACK history — correcting for the UE's implementation margin and any mismatch between the CQI assumptions and reality. See Modulation & MCS.

How CSI drives link adaptation and MIMO precoding

Once a report lands, the scheduler splits it across two decisions. CQI sets the starting point for link adaptation — it maps to an MCS that the outer loop then trims using HARQ feedback. RI and PMI drive MIMO: the rank fixes how many transport layers to send, and the precoder shapes the transmit antenna array to concentrate energy along the channel's strong directions (and, with Type II, to null energy where other users sit). CRI picks the serving beam in a beamformed cell, and LI tells the transmitter which layer to hang phase-tracking reference signals on. The outcome is a transmission matched to the channel simultaneously in rate, spatial dimension, and direction.

gNB UE NZP-CSI-RS (channel) + CSI-IM (interference) reference signals on CSI-ResourceConfig UE measures & computes CRI → RI → PMI → CQI → LI CSI report PUCCH (periodic / SP) or PUSCH (aperiodic, DCI-triggered) Part 1 (fixed: RI, wideband CQI) + Part 2 (PMI, subband CQI, LI) gNB scheduler decides MCS (CQI) + precoder (PMI) + layers (RI) + beam (CRI) then transmits PDSCH matched to the channel
Figure 1. The CSI loop: the gNB sends NZP-CSI-RS (and CSI-IM) down, the UE measures and computes the quantities in order, reports them up on PUCCH or PUSCH as a two-part payload, and the scheduler turns them into MCS, precoder, rank and beam choices for the next PDSCH.

Because the loop has latency — measure, compute, wait for an uplink occasion, report, decode, schedule — the channel may have moved by the time the report is used, especially for fast-moving UEs. This is another reason the gNB treats CSI as advisory and leans on HARQ-driven outer-loop correction: the report tells it where the channel was, and the ACK/NACK stream tells it how well its guess about now is holding up.

⚠ Common pitfalls / gotchas

  • Reading CQI as a raw SNR. It is conditioned on the reported RI and PMI — a high-rank CQI and a rank-1 CQI for the same channel are different numbers, and comparing them directly is meaningless.
  • Forgetting that Part 2 can be silently omitted. On a small PUSCH grant the least-important subband information is dropped by the priority rule; a report that "lost" its subband PMI was not corrupted — it was rate-matched away.
  • Trusting subband/Type II feedback on a fast-moving UE. The measure-to-use latency means detailed spatial and per-subband detail ages fastest; on high-Doppler UEs it can perform worse than compact wideband Type I.
  • Omitting a CSI-IM. Without an interference measurement the CQI reflects an interference-free ideal and is optimistic — the scheduler then over-reaches and drives up BLER, especially in a loaded, interference-limited cell.
  • Mismatching resource and report timing modes. Only certain combinations are legal (e.g. a periodic report cannot point at aperiodic CSI-RS); an illegal pairing means no valid measurement underlies the report.

Summary

CSI is how the downlink is steered. Only the UE can observe the channel, so it measures known reference signals — NZP-CSI-RS for the wanted channel, CSI-IM for interference — and returns a bundle of quantities that answer the scheduler's four questions: CQI (how good → MCS), PMI (how to point → precoder), RI (how many layers → rank), and CRI (which beam), with LI flagging the strongest layer for PTRS. The quantities are computed conditionally in the order CRI → RI → PMI → CQI → LI, so every CQI means "quality given this rank and precoder," never a raw SNR.

Two RRC structures wire it up — CSI-ResourceConfig (what to measure) and CSI-ReportConfig (what to report and how) — and reporting comes in periodic, semi-persistent and aperiodic modes on PUCCH or PUSCH, with a fixed-size Part 1 / derived-size Part 2 split that keeps a content-dependent payload decodable. Codebooks trade overhead for accuracy (Type I for SU-MIMO steering, Type II for MU-MIMO nulling), and frequency granularity trades uplink bits for frequency-selective scheduling (wideband vs subband). Finally, because the loop has latency, the gNB treats every report as advisory and corrects it with HARQ-driven outer-loop link adaptation — the report says where the channel was, the ACK/NACK stream says how the guess about now is holding up.

Quick Q&A

Q&A Interview quickfire

Q. What do CQI, PMI and RI each control?

A. CQI → recommended modulation and code rate (link adaptation / MCS); PMI → preferred precoder from the codebook (MIMO precoding); RI → number of usable spatial layers (MIMO rank). LI flags the strongest layer for PTRS, and CRI selects the preferred NZP-CSI-RS resource / beam.

Q. On what does the UE measure the channel, and on what the interference?

A. The wanted channel is measured on NZP-CSI-RS (known pilots → channel matrix). Interference is measured on CSI-IM, which is a set of resource elements the serving cell leaves empty, so whatever the UE sees there is interference plus noise. Combining the two yields a realistic SINR for CQI.

Q. Periodic vs semi-persistent vs aperiodic CSI — how do they differ?

A. Periodic CSI is on PUCCH at an RRC-configured interval (cheap, always-on). Semi-persistent is periodic reporting switched on/off by MAC CE (on PUCCH) or DCI (on PUSCH). Aperiodic is a one-shot report on PUSCH triggered by the CSI request field in a DCI — used for detailed subband/Type II feedback on demand.

Q. Why is a CSI report split into Part 1 and Part 2?

A. Because the report's size depends on its own content (subband count and PMI payload depend on RI). Part 1 has a fixed size and carries RI, CRI and wideband CQI, so it is always decodable; Part 2's size is computed from Part 1 and carries PMI, subband CQI and LI. Part 2 can be partially omitted by a priority rule if the grant is too small.

Q. When would the gNB choose Type II over Type I feedback?

A. For MU-MIMO. Type I reports a single beam per layer (compact, good for SU-MIMO steering); Type II reports a linear combination of beams with per-beam amplitude and phase, reconstructing the channel accurately enough to null inter-user interference — at the cost of a much larger report, usually carried on aperiodic PUSCH.

Q. What BLER target does CQI assume?

A. The UE reports the highest CQI whose modulation and code rate would give a block error rate at most 10% (0.1) for normal traffic, or 0.001 when the low-spectral-efficiency (URLLC) CQI table is configured for high-reliability services.

Where this fits

CSI is the feedback that powers rate selection, spatial multiplexing and beam choice — it is the input the scheduler turns into an MCS, a precoder, a rank and a beam. From here, follow how that feedback becomes a transmission and how the beams it references are maintained.

Modulation & MCSMIMO & PrecodingBeam Management