5G NR Precoding and Codebooks
Precoding is the spatial mapping step that turns transmission layers into the actual antenna-port or antenna-resource pattern used on the air interface. Codebooks provide the defined precoding choices used in that spatial mapping path.
Read this page as the main NR reference entry for spatial transmission selection. It connects rank and layer behavior, CSI-RS-supported reporting, RI and PMI decisions, uplink TPMI use, codebook-based and non-codebook transmission, and the practical effect on PDSCH and PUSCH.
| Technology | 5G NR |
|---|---|
| Main specs | 3GPP TS 38.214, TS 38.211, and TS 38.331 |
| Release | Release 18 |
| Main concepts | Precoding matrix, codebook-based transmission, non-codebook transmission, RI, PMI, TPMI, layers, antenna ports |
| Main downlink focus | PDSCH precoding, CSI reporting, Type I and Type II codebook use |
| Main uplink focus | PUSCH codebook and non-codebook transmission, TPMI, SRS-based support |
| Why it matters | Precoding decides how spatial streams are mapped across antenna resources, so it directly affects layer use, throughput, beam quality, and decode stability |
Contents
Overview
Precoding is part of how NR turns spatial opportunity into actual transport efficiency. If the channel can support multiple layers and the reporting path is useful, precoding decides how those layers are placed across antenna resources so the receiver can separate and decode them reliably.
- Precoding maps layers to antenna ports or equivalent transmission resources.
- Codebooks define the allowed spatial choices for codebook-based transmission.
- Downlink precoding is commonly read through RI, PMI, and CSI reporting.
- Uplink precoding uses its own codebook and non-codebook paths, including TPMI-based transmission context.
Quick interpretation
| Role | Choose how spatial layers are mapped across transmission resources |
|---|---|
| Main downlink indicators | RI, PMI, CQI, CSI resource context, and the active codebook family |
| Main uplink indicators | TPMI, transmission mode, SRS-based support, and the configured PUSCH context |
| Main transmission types | Codebook-based and non-codebook transmission |
| Main reading point | When layers, throughput, or beam behavior look wrong, check the precoding and reporting path before assuming the radio channel alone is the problem |
Precoding model
A practical NR precoding view begins with layers and antenna ports. Layers are the transport-side streams. The precoding choice determines how those layers appear on the transmission side through ports, weights, or equivalent spatial mapping.
measurement and CSI context
-> RI / PMI or TPMI decision
-> precoding matrix or transmission mapping
-> layers mapped to antenna ports
-> PDSCH or PUSCH transmission | Element | Main meaning | Reading notes |
|---|---|---|
| Layers | Transport-side data streams | Read them together with rank and layer behavior |
| Antenna ports | Transmission-side signal reference points used by the physical-layer design | Ports are not the same as physical antennas; use the antenna ports page for the port model |
| Precoding matrix | Weighting and spatial mapping choice used for transmission | Its effect is visible through layer quality, beam direction, and decode stability |
| Codebook | Defined set of allowed precoding choices | Downlink and uplink do not reuse the exact same reporting and signaling path |
| Reporting indicators | RI, PMI, TPMI, and associated CSI context | These are the practical breadcrumbs that show how the spatial decision was formed |
Codebook families
The most useful way to read NR codebooks is by family and transmission type rather than trying to memorize every table in one pass.
| Family or mode | Main use | What to remember |
|---|---|---|
| Type I single-panel | Main downlink codebook family for single-panel style spatial transmission | Often the first practical codebook family people meet in PDSCH precoding analysis |
| Type I multi-panel | Downlink codebook family for multi-panel transmission structures | Panel structure changes the available reporting and matrix interpretation |
| Type II | More detailed downlink codebook reporting and spatial control | Use it when the CSI reporting path carries richer spatial information than the simpler Type I view |
| Codebook-based transmission | Transmission follows the defined codebook and related reporting path | This is the common way to read RI and PMI-driven downlink behavior |
| Non-codebook transmission | Transmission uses a different spatial model without the same codebook-matrix selection path | Do not force a codebook reading onto a non-codebook case |
| Uplink codebook path | PUSCH spatial transmission with TPMI and configured uplink precoding context | Read this separately from the downlink PMI-driven CSI path |
Downlink use
Downlink precoding is most visible on PDSCH. Here, CSI reporting and codebook choice drive how many layers are transmitted and which spatial mapping is used for those layers.
| Area | What to read |
|---|---|
| RI | How many layers the channel currently appears able to support |
| PMI | Which downlink precoding choice is preferred inside the active codebook structure |
| CSI resource context | Which CSI-RS resources and reporting structures produced the current spatial decision |
| Panel model | Whether the codebook is being read in a single-panel or multi-panel structure |
| Transport result | Whether the selected layers and matrix actually improve throughput and reduce retransmission pressure |
The right way to read downlink precoding is not only by the selected matrix label. Read it together with CQI and adaptation, beam behavior, and the actual PDSCH outcome.
Uplink use
Uplink precoding belongs mainly to PUSCH. The uplink path has both codebook and non-codebook modes, and it uses its own indicators and SRS-supported understanding of the uplink channel.
| Uplink area | What to read |
|---|---|
| TPMI | Which uplink transmission precoding matrix is selected in the active codebook context |
| Codebook vs non-codebook | Whether the uplink path uses a codebook-based matrix view or a different non-codebook transmission model |
| SRS support | How SRS observations support uplink spatial decisions |
| Transform-precoding context | How the uplink waveform mode interacts with the later spatial transmission reading |
| Power and decode outcome | Whether the chosen uplink transmission mode survives real power and coverage conditions |
Reporting path
The spatial decision is only as good as the reporting path that feeds it. This is why precoding needs to be read together with CSI resources, reporting configuration, and the active transmission procedure.
CSI-RS or SRS observation
-> RI / PMI or TPMI support
-> scheduler selects layers and transmission mapping
-> PDSCH or PUSCH uses the chosen precoding
-> throughput and HARQ show whether it worked | Indicator | Main role |
|---|---|
| RI | Shows the preferred spatial rank or layer-support view |
| PMI | Shows the preferred downlink codebook-based precoding choice |
| TPMI | Shows the uplink transmission precoding matrix in the active uplink context |
| CQI | Works with the spatial indicators to influence modulation and coding decisions |
| CSI reporting structure | Defines how rich or limited the available spatial feedback really is |
Reading notes
| Reading point | What to remember |
|---|---|
| Beamforming vs precoding | They are closely related but not identical. Beamforming is the directional behavior seen on the link, while precoding is the spatial mapping choice used to create the transmission. |
| Ports vs antennas | Do not treat antenna ports as raw physical antenna count. The port model is a PHY abstraction used in signal and transmission design. |
| Rank vs matrix choice | A good PMI or TPMI choice cannot rescue a channel that does not support the selected rank or number of layers. |
| Single-panel vs multi-panel | Panel structure changes how the codebook should be interpreted. Do not assume a single-panel reading on a multi-panel case. |
| Codebook vs non-codebook | Identify the transmission mode first. Otherwise the spatial indicators can be misread from the start. |
Troubleshooting
When spatial behavior looks inconsistent, start by checking the reporting path and transmission type before assuming the channel itself is the only problem.
| Symptom | What to inspect first |
|---|---|
| Layer count does not scale even with good radio conditions | Check RI trend, CSI resource setup, codebook family, UE capability, and whether the selected panel structure is being read correctly |
| Throughput is below expectation even though CQI looks good | Check PMI or TPMI, actual layer use, PDSCH or PUSCH mapping, and whether spatial gain is really being used |
| Retransmissions increase after a spatial-mode change | Check whether the new precoding choice is too aggressive for the current beam stability or channel separability |
| Trace shows PMI but performance does not follow it | Check whether the CSI path is stale, whether the chosen PMI belongs to the active codebook structure, and whether later scheduling actually applied the expected transmission mode |
| Uplink multi-antenna behavior looks weak | Check TPMI, SRS support, codebook vs non-codebook mode, and whether power or coverage is limiting the uplink result |
References
- 3GPP TS 38.214 Release 18 - main NR data-procedure reference for codebooks, RI, PMI, TPMI, and precoding use on shared channels
- 3GPP TS 38.211 Release 18 - physical-channel and antenna-port context used in spatial transmission and precoding interpretation
- 3GPP TS 38.331 Release 18 - RRC configuration for CSI reporting and related codebook and transmission settings
FAQ
What is precoding in 5G NR?
It is the spatial mapping of transmission layers onto antenna ports or equivalent transmission resources using a selected matrix or weighting structure.
What is a codebook in 5G NR?
It is the defined set of allowed precoding choices shared by the transmitter and receiver in codebook-based transmission.
What is the difference between PMI and TPMI?
PMI is the downlink precoding indicator used in the CSI-driven codebook path, while
TPMI identifies the uplink transmission matrix in the active uplink context.
What is the difference between codebook-based and non-codebook transmission?
Codebook-based transmission uses a defined codebook choice, while non-codebook transmission follows a different spatial model that does not depend on the same matrix-selection path.
Why is precoding important for troubleshooting?
Because wrong spatial assumptions can make rank, layers, throughput, CQI, and retransmission behavior all look inconsistent even when the basic radio coverage still looks acceptable.