A 3GPP-Based Practical Engineering Guide

Massive MIMO Engineering

Practical 5G NR Beamforming, CSI and RF Optimization — from antenna arrays to AI-driven beam management.

12 Parts · 45 Chapters · ~130 Diagrams

CopyrightEdition & rights

First edition, 2026. This book is a technical educational work. All trademarks (3GPP, and vendor names such as Ericsson, Huawei, Nokia, Samsung, ZTE, Mavenir) are the property of their respective owners and are used for identification and educational purposes only. 3GPP specifications referenced herein (TS/TR series) are © 3GPP and its Organizational Partners; consult the official specifications at www.3gpp.org for authoritative, current text.

DisclaimerAccuracy & use

This guide is written for education and engineering intuition. While it is grounded in 3GPP specifications and standard practice, it simplifies for clarity and may not reflect the latest release or every vendor implementation. Always verify against the current 3GPP specification and your vendor's documentation before making design, configuration, or safety decisions. RF parameters, exposure limits, and regulatory rules vary by region. The author and publisher accept no liability for actions taken based on this material. Worked numbers are illustrative.

How to use this bookReading paths

The book is built so each chapter stands on the ones before it, but you can also dip in by need:

  • Cover to cover — the intended path; Parts 1–12 build from physics to deployment to the future.
  • RF/RAN optimization engineer — Parts 1, 6, 7, 8, 11 (foundations, massive MIMO, CSI, beam management, troubleshooting).
  • Protocol/PHY engineer — Parts 4, 5, 7, 9 (NR PHY, beamforming, CSI, uplink/SRS).
  • Planner/architect — Parts 2, 6, 10, 12 (arrays, deployment, mobility/failure, advanced/future).
  • Interview/exam — read Chapter 44 last as a review map; each answer links to its chapter.
  • On a bad night — go straight to Chapter 45 (the playbook) and the troubleshooting flow.

Conventions: the reading text is plain black‑and‑white for comfort; every diagram uses a single blue/white palette and is followed by a "How to read this picture" walkthrough. Boxes marked "▸ Advanced · 3GPP deep‑dive" carry the exact IE/field names, equations, and worked numbers — skip them on a first read for intuition, return for depth. Each chapter ends with KPIs, a field case, interview Q&A, takeaways, and a summary that sets up the next chapter.

AudienceWho this is for

RF optimization and RAN planning engineers; 5G/6G RAN and protocol engineers; telecom trainers; university students of wireless communications; engineers preparing for 5G/6G roles; and vendor engineers across Ericsson, Huawei, Nokia, Samsung, ZTE, Mavenir, Open RAN, and private‑5G systems.

— begin with Chapter 1 —
Part One — Foundations of Wireless MIMO
CHAPTER ONE

Why MIMO Changed
Wireless Communication

"We never got more spectrum. We just learned to reuse the space between the antennas."

Let me take you to a street corner I think about often. It's 6:30 in the evening, downtown, and the pavement is packed with people walking to the metro — almost every one of them staring at a screen, watching something. Above them, bolted to a rooftop, is a single radio serving that whole sector. One carrier. A hundred megahertz of spectrum at 3.5 gigahertz. That's it. That's all the "road" those few hundred people have to share.

Now, if you've taken even one radio course, a little alarm should be going off in your head. Because there's a famous law — Shannon's law — that tells us the absolute most you can squeeze through a channel like that. Let me do the napkin math the way I'd do it standing next to you at the cabinet:

C = B × log₂(1 + SNR) C = 100 MHz × log₂(1 + 31.6) ← a decent 15 dB signal C ≈ 100 MHz × 5 bits/Hz C ≈ 500 Mbps

Five hundred megabits per second. Split between three hundred busy people, that's about a megabit and a half each — barely a single standard-definition video. By that arithmetic, this corner should be a disaster. Buffering wheels everywhere. Angry faces.

Except it isn't. I'm looking at the live counters, and the sector is happily pushing 2.8 gigabits per second. Same hundred megahertz. Nearly six times more than the textbook swears is possible. The first time you see something like this, it genuinely feels like cheating. So let me show you the trick — because it's the most important idea in this entire book.

SISO — one antenna, one pipe UE ≈ 500 Mbps Massive MIMO — 64-element array UE 1 UE 2 UE 3 UE 4 ≈ 2.8 Gbps One pipe vs a beam per user — spatial multiplexing on the same time/frequency
Figure 1 · Same spectrum, two different worlds
How to read this picture On the left is the world Shannon described: one antenna talking to one antenna through a single fat "pipe," and no matter how clever you are, you get one pipe's worth of data — about 500 Mbps. On the right is what's actually bolted to that rooftop: a panel of 64 little antenna elements that fires several separate beams at once, each carrying its own data to a different phone, all on the very same megahertz. Count the beams — that's why the number jumps to 2.8 Gbps. I drew one beam in red on purpose; keep an eye on it, because later that red beam is how we'll talk about steering energy at one person while staying out of everyone else's way.

That's the whole story in one sentence, and I want you to tattoo it somewhere:

For a hundred years we treated a radio link as a single pipe, and we obsessed over making that one pipe wider or louder. MIMO stopped playing that game. It asked a different question — why settle for one pipe? — and turned the empty air between the antennas into many pipes at once.

MIMO stands for Multiple Input, Multiple Output. By the end of this chapter you'll know exactly why that street corner beats the textbook, what physical trick makes it work, and how we went from a single lonely antenna to a 64-element array that beams data at people like a lighthouse that can somehow point in sixteen directions at once.

Before we dive inWhat you'll walk away knowing

I'm not going to give you a sterile bullet list of "learning outcomes." Here's the honest version — by the last page of this chapter, you should be able to sit across from a skeptical senior engineer and:

  • Explain, without hand-waving, why we can't just buy our way out of the capacity problem with more spectrum or more power.
  • Talk fluently about SISO, SIMO, MISO and MIMO — and say what each one actually buys you.
  • Tell apart the three gifts MIMO gives us — diversity, multiplexing, and beamforming — and explain why you can't have all three at full strength at the same time.
  • Say why 5G's massive MIMO is a different animal from the MIMO we had in LTE, not just a bigger version of it.
  • Point at the right 3GPP spec when someone challenges you, and read the KPIs that tell you whether MIMO is actually working out in the field.

Section 1.2The squeeze that started everything

Every wireless engineer eventually has the same hard realization, and you might as well have it now: they stopped making spectrum. You can pour concrete and raise more towers. You can hire more optimization people. But the usable radio frequencies — roughly 600 MHz up to about 100 GHz — are a fixed slice of nature, chopped up by regulators and auctioned off for sums that genuinely don't sound real.

I'm not exaggerating about the money. In big markets, operators have paid more than a dollar per megahertz, per person covered. Do the arithmetic on a nationwide 100 MHz block over 300 million people and you're staring at something like thirty billion dollars — before a single bolt is tightened on a single antenna. Spectrum is the most expensive raw material in the whole industry. So the question that has driven twenty years of engineering is brutally simple:

Given a fixed, eye-wateringly expensive sliver of spectrum, how do we wring more bits per second out of it?

Shannon hands us the ceiling — that same formula from the street corner — and when you stare at it, you notice there are only three knobs you can turn. Let me walk you through each one, because two of them are basically jammed.

how hard you push the knob → capacity → spectrum sold out 1×12×24×48×8 still has room ↗ Antennas (MIMO) — keeps climbing Bandwidth — linear, but runs out Power / SNR — flattens fast
Figure 2 · The three knobs — and why only the blue one still turns
How to read this picture Three lines, three ways to add capacity — read the small legend, then watch the lines. The black curve (more power / SNR) shoots up at first and then goes nearly flat — that's the cruelty of the logarithm; once you're up there, buying one more bit-per-hertz means doubling your power. The light-blue line (more bandwidth) is lovely and straight... right up until it smacks into the red wall labelled "spectrum sold out," because you've run out of the stuff to buy. Only the strong-blue line (more antennas) keeps climbing — and notice the dots: going 1×1 → 2×2 → 4×4 → 8×8 roughly doubles, quadruples, octuples the capacity on spectrum you already own. That climbing blue line is the entire reason this book exists.

Knob one: more bandwidth

Capacity grows straight-line with bandwidth — double the megahertz, double the bits. Wonderful. It's why we chase carrier aggregation and millimetre-wave spectrum where there's elbow room. But we just established that bandwidth is the scarce, thirty-billion-dollar thing. At low and mid bands it's all spoken for. This knob is basically at the stop.

Knob two: more power (a better SNR)

Here's where people get fooled. "Just turn up the power!" Capacity only grows with the logarithm of SNR, and the logarithm is a miser. Look at what it gives back:

SNR (linear)SNR (dB)bits/Hz you getcost of the next bit
10 dB1.0
3≈ 4.8 dB2.03× the power
7≈ 8.5 dB3.02× again
15≈ 11.8 dB4.02× again
31≈ 14.9 dB5.02× again
63≈ 18.0 dB6.02× again

Read that last column out loud. To climb from 5 bits/Hz to 6, you must double your signal power. To get the next one, double it again. In a real network — hemmed in by interference, regulatory power masks, and a phone battery that has to last all day — you hit that wall almost immediately. Knob two is jammed too.

Knob three: more antennas — the one nobody could turn until now

This is the knob that needed forty years of antenna design, signal processing, and cheap silicon to even become turnable. And here's the beautiful part: put several antennas at both ends, and if the air between them is rich with reflections and scattering, the channel stops behaving like one pipe and starts behaving like several independent pipes side by side — each carrying its own data, on the same frequency, at the same instant. Capacity then grows straight-line with the number of pipes:

C ≈ min(Nt, Nr) × B × log₂(1 + SNR) └──────┬──────┘ number of parallel pipes (we call this the "rank")

A 4×4 system, in good conditions, gives you four times the capacity of a single link — same spectrum, same power. We didn't break Shannon's law; Shannon's law about one pipe is untouchable. We just stopped using one pipe. That's the entire game, and it's why MIMO ate the world.

Section 1.3From one antenna to many — the family tree

Let's build this up the way it actually grew, one antenna at a time. Throughout the book I'll write configurations as Nt × Nr — that's transmit antennas first, receive antennas second. Keep that order and you'll never get confused.

SISO · 1×1one in, one out no backup — one fade and you go dark SIMO · 1×None in, many out — receive diversity MRC several copies → combine, win ~10·log N dB MISO · N×1many in, one out — transmit diversity / beam line them up in phase → they add at the UE MIMO · N×Nmany in, many out — parallel pipes! 4 different streams, same time & frequency
Figure 3 · The four configurations — and the leap from "copies" to "pipes"
How to read this picture Read it like a comic strip, top-left to bottom-right. SISO: one antenna each, a single link, and that red warning is the point — when that one path fades, you go dark, full stop. SIMO: still one transmit antenna, but now several receive antennas hear the same signal through slightly different paths; a little combiner box ("MRC") stacks those copies up and pulls a weak signal out of the noise. MISO: flip it — many transmit antennas, one receiver; the gNB lines its signals up so they add together at the phone. Notice that in SIMO and MISO the extra antennas only give you copies of the same data. Then look at MIMO, bottom-right: antennas at both ends, and now those coloured lines are four different data streams running at once. That jump — from copies to genuinely separate pipes — is the whole reason MIMO is a revolution and not just an upgrade.

Let me say a few honest words about each, the way I'd explain it leaning on a whiteboard.

SISO (1×1) is the link your grandparents' radio used. One pipe, exactly what Shannon priced. Its fatal flaw is loneliness: in a city full of reflections, the signal constantly fades in and out as those reflections add up or cancel out, and when SISO's single path drops into one of those holes, there's no plan B. Think of a one-lane country road — one fallen tree and everything stops.

SIMO (1×N) puts extra antennas on the receiving end. This is the classic uplink helper: a tiny phone with one antenna, talking up to a base station with four. Each base-station antenna hears its own slightly-different echo of the signal, and a technique called Maximum Ratio Combining (MRC) stacks those copies intelligently. Two wins fall out of this: the chance that all the copies fade at the same instant is tiny (that's diversity), and stacking the copies coherently lifts your effective signal by up to 10·log₁₀(N) dB — about 6 dB for four antennas. This is the cheapest coverage trick in the uplink, full stop.

MISO (N×1) puts the extra antennas on the transmitting side. There's a subtlety here that trips people up: if two antennas blast the same symbol naively, their waves can arrive at the phone out of phase and cancel — making things worse. We fix it two ways. Either with clever coding that wins regardless of phase (the famous Alamouti scheme — that's LTE's transmit-diversity mode), or, if the gNB knows the channel, by pre-rotating each antenna's phase so the waves arrive perfectly stacked. That second one is the seed of beamforming, which we'll obsess over for the rest of the book.

MIMO (N×N) is where it all compounds. With antennas at both ends, the number of independent pipes leaps from one to min(Nt, Nr). Four-by-four? Up to four parallel data streams — we call each stream a layer. The receiver knows the channel, so it can mathematically untangle the four streams back into clean data (we'll do that math in Chapter 3). That's the trick behind our 2.8 Gbps street corner.

ConfigTxRxParallel pipes (max rank)What it really buys you
SISO111Nothing extra — the baseline
SIMO1N1Receive diversity + ~10·log N dB gain
MISON11Transmit diversity / beamforming
MIMONNmin(Nt,Nr)Parallel data streams — real capacity
A reality check you'll thank me for
The "max pipes = min(Nt, Nr)" figure is the best case. What you actually get depends on whether the air is rich with scattering. Drop a beautiful 4×4 radio in a flat, open field with a clean line of sight and nothing to bounce off, and it may stubbornly give you one pipe — you bought the antennas but the channel won't cooperate. This single fact is behind the most common complaint I hear in the field: "Why is my rank stuck at 1?" We spend all of Chapter 34 on it. Remember the field, not just the radio.

Section 1.4The three gifts — and why you can't keep all three

Everything good that MIMO does comes down to three gifts. A junior engineer sees a pile of features; a senior engineer sees these three and instantly knows which one a feature is spending. Let me give you all three, plain-language first, and then show you the catch that ties them together.

Gift one — Diversity: buying reliability

Plainly: send the same thing over several independent paths so that if one drops into a fade, another carries it through. Diversity doesn't make you faster — it makes you dependable. Here's the picture that finally made it click for me.

time → signal level → below this line = link breaks combined (MRC) — never falls in a hole antenna Aantenna B
Figure 4 · Two antennas rarely fall in the same hole at the same time
How to read this picture The wavy lines are signal strength over time. The red dashed line is the floor — drop below it and the link breaks. Watch antenna A (light blue): near the left it plunges below the floor into a fade — circled in red. If that were your only antenna, you'd drop the call right there. But look at antenna B (the black dashed line) at that same moment — it's perfectly fine. Later, B takes its own plunge while A is healthy. They almost never fall into a hole together. So when we combine them, the thick blue line rides comfortably above the floor the whole time. That's diversity in one glance: not more speed, just a link that refuses to die.

Put a number on it: if a single path is in a deep fade 10% of the time, two independent paths are both faded only 0.1 × 0.1 = 1% of the time, and four paths only 0.01% of the time. We call that exponent the diversity order. You feel it as lower block error rate, fewer retransmissions, and a steadier connection at the cell edge. The price? You spent your spatial resources sending copies instead of new data. You bought safety, not speed.

Gift two — Multiplexing: buying throughput

This is the gift that beat Shannon's single pipe. When the channel is rich, we split the antennas into independent streams and send different data down each. This is pure speed.

rich scattering — buildings, walls, echoes gNB sends L1L2L3L4 UE untangles L1L2L3L4
Figure 5 · Four streams go in, get scrambled by the city, come out clean
How to read this picture Four separate data streams — L1 to L4, each its own colour — leave the gNB on the left at the same time, on the same frequency. In the middle is the messy real world: walls, buildings, echoes, all tangling the streams together into a jumble (that's why the coloured lines cross and weave). Here's the counter-intuitive bit that beginners hate and experts love: that mess is a gift. Because every stream takes a measurably different tangled route, the phone on the right — which has measured the channel — can run the math backwards and pull the four colours apart into four clean streams again. Four pipes' worth of data, one channel. Now you also see why a clean line-of-sight kills this: no mess means no way to tell the streams apart, and you collapse back to one pipe.

Capacity here scales like rank × log₂(1+SNR) — four layers, roughly four times the data. You see it as a high rank indicator, high spectral efficiency, and big throughput numbers. The catch: multiplexing is greedy. It demands a strong signal and a rich channel. Split your power across four layers in a weak, simple channel and each layer drowns. Multiplexing shines near the cell centre and falls apart at the lonely edge.

Gift three — Beamforming: buying coverage and quiet

Instead of spraying energy everywhere like a bare bulb, line up the antennas so their waves stack toward one person — a focused beam, like a flashlight. You get a louder signal where it matters and, just as importantly, silence aimed at everyone you're not talking to.

SPRAY IT EVERYWHERE only a sliver reaches here (weak) neighbour gets blasted = interference AIM IT LIKE A FLASHLIGHT strong signal here null — nothing wasted this way
Figure 6 · A bare bulb versus a flashlight pointed at the right person
How to read this picture Left: the old way — energy radiating outward in rings like a bare bulb. The user you actually care about (top) gets only a thin slice of it, so the signal is weak; meanwhile your neighbour cell (bottom, in red) gets blasted with energy it never wanted — that's interference, the thing that ruins everyone's night. Right: beamforming. The little blue dots are the antenna array; by nudging each one's timing, all their waves pile up into a single blue cone aimed straight at your user — now they get a strong signal. And notice the red dashed line with the ✕: we deliberately steer a "null," a direction of near-silence, toward the interferer. Beamforming gives twice: louder where you want it, quiet where you don't.

An N-element array can lift your signal by up to 10·log₁₀(N) dB — a 64-element array gives up to about 18 dB, which is frequently the difference between "no service" and "fast." You see it as better RSRP and SINR, longer reach, and far less interference poured into your neighbours. The catch is that the gNB has to know which way to point — that means accurate channel information. A beam aimed slightly wrong is worse than no beam at all, and as your user walks around, you have to keep re-aiming. That whole discipline of re-aiming is what we call beam management, and it's the spine of Part 8.

The catch that ties them together

Here's the wisdom that separates the seniors from the rest: you have a fixed budget of spatial "degrees of freedom," and these three gifts all spend from the same budget. Spend it all on diversity and you get a bulletproof but slow link. Spend it all on multiplexing and you get blistering speed with no safety margin. Spend it on beamforming and you get tremendous reach for one beam but fewer independent layers. You simply cannot max out all three at once.

MULTIPLEXINGthroughput · high RI DIVERSITYreliability · low BLER BEAMFORMINGcoverage · high SINR your budget = min(Nt, Nr) spend it on one, lose the others still / centre user → high rank edge / fast user → beam + safety
Figure 7 · The triangle every scheduler walks around, thousands of times a second
How to read this picture Three corners, three gifts. Anywhere you stand inside the triangle is a blend, and getting closer to one corner means backing away from the other two — that's the trade-off, drawn honestly. The two coloured dots are real decisions the scheduler makes: the blue dot near the Multiplexing corner is a person sitting still near the tower in a rich signal — give them speed, pile on the layers. The red dot down near Beamforming is someone at the edge or in a moving car — forget speed, give them a strong, safe beam they won't lose. And here's the kicker: those RI, PMI and CQI reports your UE keeps sending? That's the phone whispering to the network which corner of this triangle to move toward. Every chapter after this one is really just a deep study of one corner.

Section 1.5Why 5G's massive MIMO isn't just "more LTE"

People love to say 5G massive MIMO is "LTE MIMO but bigger." I understand the instinct, and it's wrong, and the difference is worth getting right because it explains almost everything about how 5G behaves. The short version: LTE bolted MIMO onto an architecture that was never designed for beams. 5G threw that architecture out and started over.

LTE — the brave pioneer, held back by one design choice

LTE leaned on something called the Cell-specific Reference Signal, or CRS — a known pilot signal the cell constantly broadcasts across the whole sector so every phone can measure the channel. For a 2- or 4-antenna world it was elegant. But it carried two limits baked into its DNA: the overhead grows painfully as you add antenna ports (imagine 64 of these always-on pilots flooding the air), and — this is the killer — a signal sprayed across the entire cell by definition cannot be a narrow beam aimed at one person. LTE worked around it with extra user-specific pilots, but the CRS anchor always dragged.

LTE organized its MIMO behaviour into "Transmission Modes," TM1 through TM10 — a menu the network picks from. Here's the menu, lightly annotated:

ModeWhat it doesWhich gift
TM1Plain single antennanone (SISO)
TM2Transmit diversity (Alamouti / SFBC)diversity
TM3Open-loop spatial multiplexingmultiplexing
TM4Closed-loop spatial multiplexing (with feedback)multiplexing
TM7 / TM8Single- & dual-layer beamforming (user-specific pilots)beamforming
TM9 / TM10Up to 8 layers; TM10 adds multi-cell coordinationmux + beam

Late LTE introduced FD-MIMO (the study lives in TR 36.897) — 2D antenna panels and a new pilot called CSI-RS that finally let the cell beam up and down, not just side to side. That was the dress rehearsal. The main act was 5G.

5G NR — born to beam

The single most important sentence about 5G MIMO: NR has no CRS. None. Every reference signal in 5G is sent on demand, for a specific purpose, often inside a specific beam. That one decision is what makes 64-antenna arrays and per-person beams practical. Here's the cast:

  • SSB — the sync signal, itself swept across many beams so the cell can find you no matter which direction you're in.
  • CSI-RS — fired when needed so the gNB can measure the channel and refine its beams (up to 32 ports).
  • DM-RS — rides inside the beamed data, so the phone always demodulates whatever beam it was actually served. This is the quiet genius that lets the gNB beam freely.
  • SRS — an uplink sounding pilot; in TDD the gNB listens to it and, by reciprocity, figures out the downlink beam without waiting for feedback.
LTE — ONE BROAD FLOODLIGHT cell-wide CRS can't aim · ~4 antennas max 5G NR — A BEAM PER PERSON two UEs share the red beam-pair = MU-MIMO
Figure 8 · The architectural leap — from a floodlight to a room full of laser pointers
How to read this picture Left, LTE: the gNB throws one wide floodlight across the whole cell — that's the always-on CRS. Every phone sits in the same broad wash of light. It's simple and it works, but you literally cannot point it at one person, and stacking up more than about four antennas drowns the air in pilot overhead (that's the red caption). Right, 5G NR: the same job done with a panel of 64 elements firing individual beams — a separate laser pointer per user. Look at the two red beams landing on two different phones: because they point in different directions, the cell can send different data to both at the same time on the same frequency. That's MU-MIMO, and it's where 5G's giant capacity numbers actually come from. Same idea as Figure 1's red beam — now you see why I told you to remember it.

Stack the two generations side by side and the leap is obvious:

 LTE MIMO5G NR Massive MIMO
Pilot philosophyAlways-on, cell-wide CRSOn-demand SSB / CSI-RS / DM-RS / SRS — no CRS
Typical antennas2×2, 4×432T32R, 64T64R, 128T128R
Max downlink layers8 on paper, 2–4 in real life8
MU-MIMONiche, awkwardEveryday, beam-separated
BeamformingBolt-on modes (TM7/8/9)Native, per-user, 2D & 3D
Beam managementEssentially noneA full lifecycle (sweep → measure → report → recover)
mmWave (FR2)Not supportedSupported — beamforming is mandatory to survive
The PHY specsTS 36.211 / 213 / 214TS 38.211 / 212 / 213 / 214 / 215
If you remember one line for your next design review, make it this: LTE bolted MIMO onto a floodlight; 5G was built from the ground up as a room full of individually-aimed laser pointers. Everything else — the new pilots, the beam lifecycle, the MU-MIMO capacity — falls out of that one difference.

Section 1.6Three stories from real sites

Theory is lovely, but you'll meet these as tickets and trouble reports. Here are three I've effectively lived, one for each gift.

The rescued rural uplink (diversity, SIMO). A country site dropped calls and crawled on uploads at the cell edge — phones were just too quiet by the time they reached the tower. We added receive antennas, going to a 1×4 uplink. Combining four copies bought roughly 6 dB and a fat diversity margin; the cell-edge SINR went from about −2 dB to +4 dB, the reliable voice radius grew by nearly a third, and uplink drops more than halved. No new spectrum, no extra phone power — just smarter listening.

The downtown speed demon (multiplexing, MIMO). A stationary user near a busy 64T64R site, surrounded by glass and concrete throwing echoes everywhere. The channel happily supported rank 4. The scheduler gave them four layers and a high modulation, and a single user's throughput climbed from ~250 Mbps (one layer) to ~950 Mbps (four). Then the same person walked out onto an open balcony with a clean sky view — and watched their rank quietly collapse to 1. Same phone, same radio. The channel changed. That lesson is worth more than any equation.

The mmWave cliff edge (beamforming, FR2). A 28 GHz small cell, a user 150 m away with a building shoulder in the path. Without beamforming the link simply doesn't close — the path loss is savage and there's no service at all. Switch on 64-element beamforming, find a strong reflected path, and suddenly there's a ~400 Mbps connection where there was nothing. Beautiful — but fragile: a pedestrian walking through the beam drops it in milliseconds, and the system scrambles to recover onto a backup beam. At mmWave, beamforming isn't optimization; it's life support.

Section 1.7Where the rules actually live (3GPP map)

When someone challenges a design, you want to point at chapter and verse. Pin this table to your wall.

TopicLTE5G NR
Physical channels, modulation, the pilotsTS 36.211TS 38.211
Multiplexing & channel codingTS 36.212TS 38.212
Control-plane PHY proceduresTS 36.213TS 38.213
Data PHY procedures (CSI, MIMO, rank)TS 36.213TS 38.214
Measurements (RSRP / RSRQ / SINR)TS 36.214TS 38.215
RRC config (CSI-RS, SRS, BWP)TS 36.331TS 38.331
MAC (scheduling, beam indication)TS 36.321TS 38.321
The channel model itselfTR 38.901
FD-MIMO backgroundTR 36.897
Who writes this stuff
All the PHY-layer MIMO and beam work belongs to 3GPP RAN Working Group 1. The plumbing that switches it on (RRC, the MAC beam-indication commands) is RAN2. The radio-frequency conformance for those big active-antenna units is RAN4. Knowing who owns a topic tells you instantly which spec to open.

Section 1.8How you know it's working — reading the KPIs

You can't fix what you can't see. Each gift leaves a fingerprint on your counters. Learn the fingerprints and you can often diagnose a problem from the dashboard before you ever leave the office.

KPIWhat it whispersHealthyWorrying
Rank Indicator (RI)how many pipes the channel offersspreads into 2/3/4 near the centrestuck at 1 everywhere → Ch.34
CQIquality the UE feelsmid-to-high, steadylow despite good RSRP → interference / bad beam
BLERreliability~10% on first try (by design)persistently high → wrong beam / too-greedy rank
SINRsignal vs noise+interferencehigh & stable for beamed usersgood RSRP but low SINR → interference-limited
MU-MIMO pairingare we multiplexing usershigh under loadnear zero → feature / CSI / scheduler issue (Ch.35)
WALK THE CHAIN LEFT → RIGHT; FIX THE FIRST BOX THAT'S WRONG RSRPSINRCQI RIMCS Thrput good RSRP but bad SINR?→ interference / mis-aimed beam good SINR but RI stuck at 1?→ the channel won't give more pipes
Figure 9 · The golden chain — follow it left to right and the culprit shows itself
How to read this picture When throughput disappoints, don't guess — walk this chain. Each box feeds the next: your raw signal strength (RSRP) sets your signal quality (SINR), which sets the quality the phone reports (CQI), which together with how many pipes you've got (RI) decides the modulation (MCS), which finally yields throughput. The trick is to find the first box that looks wrong. If RSRP is strong but SINR is poor (left red note), someone's interfering or your beam is mis-aimed. If SINR is great but RI won't climb past 1 (right red note), it's not power — the channel won't give you more pipes. I coloured the RI box blue because it's the one beginners forget to check, and it explains half the "why is it slow?" tickets you'll ever get.

Section 1.9The four tickets you will see

A quick preview of trouble — we solve each one fully later, but start building the reflex now.

"Signal's great, speed's awful, rank won't leave 1." Don't blame congestion. Strong signal + stuck rank is the calling card of a poor-rank channel — antennas seeing nearly the same thing, a too-clean line of sight, or a CSI-RS config that won't let the phone ask for more. (Chapter 34.)

"Good RSRP but the CQI is in the gutter." RSRP is loudness; CQI is clarity. Loud but unclear means interference, or a beam landing slightly off so the user sits in a side-lobe. (Chapters 33, 36.)

"We spent a fortune on 64T64R and capacity barely moved." Almost always MU-MIMO isn't switching on — a disabled feature/licence, a scheduler that can't find users far enough apart to pair, too few active users, or CSI too rough to pair confidently. (Chapter 35.)

"It only breaks when people move." Beam misalignment with mobility — the narrow beam can't keep up, recovery timers are mistuned, or (at mmWave) something keeps blocking the path. (Chapters 30, 31, 36.)

Section 1.10A tiny lab that will teach you more than this whole chapter

Honestly — go do this. Twenty lines of Python.

  1. Make a random complex channel matrix H of size Nr × Nt with independent Gaussian entries (that's "rich scattering" in a bottle). Start at 1×1.
  2. Compute capacity: C = log₂( det( I + (SNR/Nt)·H·Hᴴ ) ).
  3. Sweep Nt = Nr from 1 to 8 at a fixed SNR; average over many random Hs.
  4. Plot capacity versus antenna count. Watch it climb almost straight up — there's your multiplexing gain, with your own eyes.
  5. Now sabotage it: make H's columns nearly identical (a clean, correlated, line-of-sight channel). Re-run. Watch the curve go flat. There's "rank stuck at 1," and you built it yourself.

When you feel that flat line in your gut, every low-rank ticket in your career will make instant sense.

Section 1.11If they put you on the spot (interview questions)

Capacity grows with min(Nt,Nr) — the multiplexing slope SNR (dB) → bps/Hz SISO (slope 1) 2×2 (slope 2) 4×4 (slope 4)
Figure 1.14 · Capacity scales with the number of spatial streams
How to read this picture Each curve is the Shannon capacity of one link versus SNR. SISO (grey) gains only ~1 bit/Hz per 3 dB. A 2×2 link (blue) has twice the slope because it carries two parallel streams; 4×4 (red) four times. That multiplying slope — not a one-off offset — is the whole economic case for MIMO: at high SNR, capacity grows in proportion to min(Nt, Nr), so adding antennas multiplies the pipe rather than just widening it.
Advanced Deep-Dive  ·  MIMO capacity and the multiplexing-gain law (TR 36.897 / Telatar)

The open-loop ergodic capacity of an Nr×Nt link with equal power across transmit antennas is the log-det formula below. Its key property: at high SNR it grows linearly with the number of spatial streams, r = min(Nt, Nr) — this r is the multiplexing gain, the slope you see in the figure. Beamforming, by contrast, adds a fixed array-gain offset (a horizontal shift) but does not change the slope. Understanding which of the two you are buying is the foundation for everything later in the book.

# Telatar / TR 36.897 — MIMO channel capacity C = log2 det( I + (SNR / Nt) · H Hᴴ ) bps/Hz high-SNR slope = min(Nt, Nr) # multiplexing gain r array/beamforming gain = +10·log10(N) dB # offset, not slope
Worked example For a 4×4 i.i.d. Rayleigh channel at 20 dB SNR, capacity is roughly 4 × log2(1+100) ≈ 4 × 6.66 = 26.6 bps/Hz — about four times the SISO value of ~6.66 bps/Hz at the same SNR. Double the antennas on both ends and you double the achievable rate, which is exactly why operators chase higher-order MIMO before extra spectrum.
"A 4×4 system gives 4× the capacity in the same band — isn't that breaking Shannon's law?"
No. Shannon prices a single channel, and we never beat it on any one stream. MIMO opens min(Nt,Nr) parallel channels through a scattering environment; each obeys Shannon on its own, and total capacity is their sum. We multiplied the pipes, not the law.
"Diversity, multiplexing, array gain — separate them, and tell me which KPI shows each."
Diversity = reliability via redundant copies → watch BLER and drop rate. Multiplexing = throughput via parallel layers → watch RI and spectral efficiency. Array/beamforming = louder, cleaner signal → watch SINR and RSRP. They trade off because they share one budget: min(Nt,Nr).
"RSRP is excellent, rank is stuck at 1, throughput is bad. Diagnose."
Strong RSRP rules out coverage, so it's a poor-rank channel — high antenna correlation, a line-of-sight-dominated path with little scattering, or a CSI-RS/feedback config that blocks high-rank reporting. The phone can't find independent pipes no matter how loud the signal. Check geometry, scattering, CSI-RS config, UE capability.
"Why did 5G drop the CRS that LTE relied on?"
CRS is always-on and cell-wide, so its overhead explodes with antenna count and — fatally — it can't be a per-user beam. NR replaced it with on-demand pilots (SSB, CSI-RS, DM-RS, SRS), and DM-RS riding inside the beamed data is what lets the gNB beam freely. That's what makes 64-antenna arrays and routine MU-MIMO possible.
"In TDD, how does the gNB beamform downlink without a precoder fed back?"
Reciprocity. Uplink and downlink share the frequency, so the channel is ~the same both ways. The UE sends SRS, the gNB measures the uplink channel and computes downlink weights from it — no codebook feedback. The catch is calibration: the transmit and receive RF chains differ, and without reciprocity calibration the trick quietly breaks.

Section 1.12What to carry out of this chapter

  • Spectrum is fixed and brutally expensive; of Shannon's three knobs, bandwidth is finite, power gives only logarithmic returns, and only adding antennas scales capacity linearly on spectrum you already own.
  • SISO → SIMO → MISO → MIMO: antennas at one end give you copies (diversity, gain); antennas at both ends give you genuine parallel pipes.
  • Three gifts, one budget: diversity (reliability), multiplexing (speed), beamforming (reach & quiet). You can't max all three — the scheduler picks a point in the triangle for every user, every millisecond.
  • Antennas are only potential; a rich, scattered channel is what turns them into real pipes. A clean line of sight can strand a great radio at rank 1.
  • 5G isn't bigger LTE — it's a different architecture: no CRS, on-demand beamed pilots, native per-user beams, routine MU-MIMO, and a whole beam-management lifecycle.
  • When in doubt, walk the chain: RSRP → SINR → CQI → RI → MCS → throughput, and fix the first box that's wrong.

In closing1.13 · The street corner, explained

We started on a crowded pavement watching a single radio do something the textbook said was impossible, and now you know the trick wasn't magic — it was a refusal to accept one pipe. For a century we made the pipe wider or louder and ran straight into the cost of spectrum and the stinginess of the logarithm. MIMO sidestepped both by opening the spatial dimension: many pipes through the same air, paid for with antennas and arithmetic instead of billions in fresh spectrum.

You can now tell the three gifts apart, you understand why they fight over one budget, and — most useful of all — you know that the channel, not the radio, often decides what you actually get. You also understand why 5G feels like a different machine: it was built to aim, not to spray.

That 2.8 Gbps corner isn't a mystery anymore. It's massive MIMO doing exactly what we just described — many beams, many users, one slice of spectrum, all at once. From here we go deeper. In Chapter 2 we turn to the channel itself — the multipath, the fading, the Doppler, the scattering — because, as you've already learned the hard way, the channel is what decides whether all those gorgeous antennas become parallel pipes or just sit on the tower as very expensive metal.

— end of Chapter 1 —
Part One — Foundations of Wireless MIMO
CHAPTER TWO

Radio Channel Fundamentals
for MIMO

"The radio doesn't decide what you get. The air between the antennas does."

In Chapter 1 I made you a promise and a warning. The promise was that antennas, used cleverly, turn one slice of spectrum into many parallel pipes. The warning — the thing I kept circling back to — was that the antennas are only potential. Whether that potential becomes four real pipes or stays stuck as one depends entirely on something you can't see and can't touch: the radio channel. The air. The geometry of the buildings, the cars, the rain, and the speed of the person holding the phone.

Let me tell you about the day this stopped being abstract for me. Two cells, same vendor, same 64T64R radio, same software load, same 100 MHz. One sat in a dense city block and routinely served users at rank 4. The other sat on a tower overlooking a flat highway, with a gorgeous clean line of sight for kilometres — and it could not get a single user above rank 1, no matter what we did. We swapped hardware. We re-tuned everything. Nothing moved. The radios were identical. The channels were opposite, and the channel won.

That highway taught me the lesson this whole chapter exists to teach: before you can optimize MIMO, you have to understand the channel MIMO is fighting through. So we're going to take that invisible thing — the radio channel — and make it visible. We'll watch a single transmitted wave arrive as a dozen smeared echoes. We'll see why a moving car shifts the very frequency of the signal. We'll see why a city is a MIMO engineer's best friend and an open field is the enemy. And by the end, that mysterious matrix H from Chapter 1 will feel like an old acquaintance instead of a piece of math.

Before we dive inWhat you'll walk away knowing

By the last page you should be able to look a senior engineer in the eye and:

  • Explain multipath in plain words and draw why one transmitted signal arrives as many overlapping copies.
  • Define delay spread and coherence bandwidth, and say why they decide whether your channel is "flat" or "frequency-selective" — and why the cyclic prefix exists.
  • Explain Doppler, Doppler spread and coherence time, and connect them to the thing that quietly murders throughput on a train: CSI ageing.
  • Tell apart fast fading vs slow fading, and flat vs frequency-selective fading, without mixing them up (everyone mixes them up).
  • Read the channel matrix H as a physical object — and explain why rich scattering fills it with independent numbers while a line of sight collapses it.
  • Define spatial correlation and connect it, finally and concretely, to the "rank stuck at 1" problem.
  • Map every one of these to its 3GPP home (especially the channel model in TR 38.901) and to the KPIs they move.

Section 2.1Multipath — why one signal becomes many

Here's the first thing nobody tells you cleanly: when the gNB transmits a signal, the phone does not receive that signal. It receives many copies of it. The wave leaves the antenna and spreads out in all directions. Some of it travels straight to the phone — the direct, or line-of-sight, path. But the rest bounces. It reflects off the glass face of an office tower, scatters off a brick wall, diffracts around the edge of a building, glances off a passing bus. Each of those bounced copies eventually arrives at the phone too — but later, because it travelled farther, and weaker, because each bounce steals energy.

towertowerbuilding gNB UE direct path (shortest, strongest) reflected paths (longer, weaker, arrive later)
Figure 2.1 · One transmitted signal, many arriving echoes
How to read this picture Follow the energy out of the gNB on the left. The solid blue line is the direct path — the straight shot to the phone, the shortest route, so it arrives first and strongest. Every black dashed line is a copy of the same signal that took a detour: it bounced off a tower or a building and only then reached the phone. Because those routes are longer, those copies arrive a little later, and because each bounce loses energy, they arrive weaker. The phone doesn't hear one clean signal — it hears the direct shot plus a crowd of late, faint echoes all piled on top of each other. That pile-up is called multipath, and almost everything in this chapter is a consequence of it.

Now, multipath sounds like a problem — and for old single-antenna systems it largely was. But hold that thought, because here is the plot twist that makes this the most important chapter in the book: multipath is exactly what MIMO feeds on. Those independent echoes, arriving from different directions, are what let a receiver tell two transmitted streams apart. The city that smears your signal is the same city that gives you rank 4. The clean highway that keeps your signal pristine is the one that strands you at rank 1. Keep that paradox in your pocket; we'll cash it in at the end of the chapter.

Section 2.2Delay spread — measuring the smear

If the echoes arrive at different times, an obvious question follows: how spread out in time are they? That number has a name — delay spread — and it quietly governs a huge amount of system design, including why every OFDM symbol carries a little guard interval called the cyclic prefix.

The clean way to picture it is the power-delay profile: a little bar chart where the horizontal axis is "how late did this copy arrive" and the height is "how strong was it." Plot every arriving echo and you get a cluster of bars that starts tall (the direct path) and tails off as the later, weaker echoes trickle in.

delay τ (how late the echo arrives) → power → direct path delay spread (στ) cyclic prefixlength echoes must landleft of this line —or you get ISI
Figure 2.2 · The power-delay profile, and why the cyclic prefix has the length it does
How to read this picture Each blue bar is one arriving echo from Figure 2.1, placed by when it arrived (left = early) and how strong it was (tall = strong). The tallest bar on the left is the direct path; the bars marching down to the right are the later, fainter bounces — the dashed curve traces that decay. The bracket underneath measures the delay spread: the time gap between the first and last meaningful echo. Now the red line is the key engineering point: OFDM bolts a small guard time (the cyclic prefix) onto every symbol, and as long as all the echoes land to the left of that red line, the system mops them up harmlessly. If the delay spread is so large that echoes spill past the red line, they smear into the next symbol — that's inter-symbol interference (ISI), and it shows up as a noise floor you can't fix with power.

There's a beautiful inverse relationship hiding here, and it's worth saying in plain words before the formula. A signal that is smeared out a lot in time is choppy across frequency, and vice versa. If the echoes are spread over a long delay, then different frequencies within your carrier fade differently — some subcarriers strong, some weak — and we call the channel frequency-selective. If the delay spread is tiny, the whole band rises and falls together, and we call it flat. The frequency width over which the channel stays roughly constant has a name, coherence bandwidth, and it's roughly the reciprocal of the delay spread:

Coherence bandwidth B_c ≈ 1 / (5 · στ) (a common rule of thumb) big delay spread → small coherence bandwidth → frequency-SELECTIVE small delay spread → large coherence bandwidth → FLAT

Why should you, an RF engineer, care? Because this is exactly why CSI feedback is reported per subband and not as one number for the whole carrier (Chapter 18), why the scheduler can do frequency-selective scheduling (put users on the subcarriers where they happen to be strong), and why a channel that's frequency-selective is actually good for capacity — it gives the scheduler choices. Flat is simple; selective is rich.

EnvironmentTypical delay spreadCoherence bandwidthChannel looks…
Indoor / small office~20–50 nsseveral MHzmostly flat
Urban macro~0.5–3 µstens to hundreds of kHzfrequency-selective
Hilly / rural with far reflectorsup to ~10 µstens of kHzstrongly selective

Section 2.3Doppler — what motion does to frequency

Everything so far assumed nobody was moving. The moment your user starts walking — or driving, or sitting on a train doing 300 km/h — a new effect switches on, and it's the one that breaks more high-mobility cells than anything else. It's Doppler, and you already know it in your bones: it's the reason an ambulance siren drops in pitch the instant it passes you.

A signal's frequency appears to shift when the transmitter and receiver move relative to each other. Move toward the source and the waves bunch up — higher frequency. Move away and they stretch out — lower frequency. The size of that shift, the Doppler frequency, depends on how fast you're moving and on the carrier frequency itself:

f_d = (v / c) · f_carrier · cos(θ) v = your speed (m/s) c = speed of light f_carrier= carrier frequency (higher band ⇒ bigger Doppler) θ = angle between your motion and the incoming ray
gNB UE moving at speed v → incoming ray (angle θ) f_carrier Doppler spread −f_d+f_d
Figure 2.3 · Motion smears one clean tone into a band of frequencies
How to read this picture On the left, the gNB sends a single, perfectly clean tone at f_carrier. The car receives it while moving, so the frequency it sees is shifted — the angle θ between its motion and each incoming ray sets how much. But here's the subtlety: in a multipath world the car receives many rays from many angles at once, so it doesn't get one shifted tone — it gets a whole spread of shifted tones, from −f_d to +f_d. That's the little hump in the spectrum box on the right, and its width is the Doppler spread. The faster you go (or the higher the band), the wider that hump — and a wide hump means the channel is changing fast.

Two things deserve a flashing light here. First, look back at the formula: Doppler scales with the carrier frequency. The same 120 km/h that's a mild nuisance at 700 MHz becomes five times worse at 3.5 GHz and brutal at 28 GHz mmWave. High-band 5G and high mobility are natural enemies, and that's pure physics. Second — and this is the one that pays your salary — the Doppler spread tells you how quickly the channel is reshuffling itself. The reciprocal of Doppler spread is the coherence time: roughly how long the channel stays "the same" before it's a different channel.

Coherence time T_c ≈ 1 / (2 · f_d, max) fast user / high band → big Doppler → SHORT coherence time → channel ages FAST

Why this is the quiet killer: MIMO and beamforming depend on the gNB knowing the channel — the CSI report, the chosen precoder, the beam direction. That knowledge is measured at one instant and used a few milliseconds later. If the coherence time is shorter than that feedback delay, the channel you measured is gone by the time you act on it. The precoder points at where the user was; the rank you chose no longer fits. We call this CSI ageing, and it is the textbook reason a fast train's throughput craters even with a strong signal. We'll meet it again, in anger, in Chapter 31.

Section 2.4Fading — and the four words everyone confuses

"Fading" just means the received signal strength going up and down. But there are two completely different axes of fading, and almost every engineer I've trained has, at some point, mixed them up in a report. Let me draw the clean mental grid once so you never do.

Axis one — time (caused by Doppler/motion):

  • Fast fading — the signal envelope flutters up and down rapidly, many times per second, as the multipath components drift in and out of phase. This is the small-scale, instant-to-instant flutter. Doppler controls its speed.
  • Slow fading (shadowing) — the slow drift in average level as you move behind a building, into a tunnel, under a bridge. Large-scale, seconds-long.

Axis two — frequency (caused by delay spread/multipath):

  • Flat fading — the whole carrier rises and falls together (delay spread small vs your bandwidth).
  • Frequency-selective fading — different subcarriers fade differently (delay spread large vs your bandwidth).
time / distance → signal level → fast fading (rapid flutter — Doppler) slow fading / shadowing (the trend) deep fade
Figure 2.4 · Fast flutter riding on a slow trend — two different kinds of fading at once
How to read this picture This is one user's signal as they move. The thin jagged light-blue line is fast fading: the rapid, jittery up-and-down as multipath copies slip in and out of phase from one instant to the next — that's the small-scale flutter Doppler controls, and one of those sharp dips (circled red) is a deep fade where the link momentarily collapses. The thick smooth blue line underneath is slow fading (shadowing): the gentle drift in the average level as the user walks behind a building or out into the open. Same signal, two stories layered together — the fast flutter is what diversity (Chapter 1, Figure 4) rescues you from; the slow trend is what power control and handover deal with. Don't confuse the two in a report, and never confuse either of these (time axis) with flat-vs-selective fading (frequency axis).

One more piece of vocabulary you must get right, because it changes how a cell is engineered. When there's a dominant direct path (line of sight), the fast-fading statistics follow a Rician distribution — the strong direct ray steadies things. When there's no dominant path, just a democratic crowd of echoes, the statistics follow a Rayleigh distribution — deeper, nastier fades. Here's the irony you should already feel coming: Rician (line of sight) feels "better" for a single link because it's steadier and stronger, but Rayleigh (rich scattering, no dominant path) is what gives MIMO its high rank. Good for coverage is often bad for multiplexing. Hold that thought ten more minutes.

Section 2.5The channel matrix H — finally, an old friend

We're ready to assemble everything into the single object that the rest of this book runs on: the channel matrix H. In Chapter 1 I showed it to you and asked you to trust me. Now you've earned the real version.

Picture a gNB with Nt transmit antennas and a UE with Nr receive antennas. Between every transmit antenna and every receive antenna there is a path — and thanks to Section 2.1, that "path" is itself the sum of a direct ray plus a crowd of multipath echoes, with its own amplitude and phase. We bundle that single complex number into h(i,j): the channel from transmit antenna j to receive antenna i. Stack all of them into a grid and you have H, an Nr × Nt matrix. The whole link, in one line, is:

y = H x + n x = what the Nt transmit antennas sent (a column of Nt symbols) H = the Nr × Nt channel matrix (every Tx-to-Rx path) n = noise y = what the Nr receive antennas heard (a column of Nr symbols)
Tx (gNB) · 3 x₁x₂x₃ Rx (UE) · 3 y₁y₂y₃ y₁ = h₁₁x₁ + h₁₂x₂ + h₁₃x₃ + noise H (3 × 3) h₁₁ h₁₂ h₁₃h₂₁ h₂₂ h₂₃h₃₁ h₃₂ h₃₃ each hᵢⱼ = a Tx→Rx path
Figure 2.5 · The channel matrix H is just "every path from every Tx to every Rx"
How to read this picture Three transmit antennas on the left, three receive antennas on the right. There's a faint line from every Tx to every Rx — nine paths in total — and that grid of nine numbers on the right is the matrix H. I've highlighted in solid blue the three paths that all land on the first receive antenna: that's why y₁ is a mixtureh₁₁x₁ + h₁₂x₂ + h₁₃x₃ — every transmitted symbol smeared together. The receiver's whole job in MIMO is to know H and run that mixing backwards to recover the original x's (we do that math in Chapter 3). And remember Section 2.1: each single hᵢⱼ isn't one clean path — it's the summed-up amplitude and phase of a direct ray plus all its echoes. Multipath lives inside every entry of H.

Whether the receiver can actually undo that mixing comes down to one question about H: are its rows (and columns) genuinely different from one another, or are they near-copies? That single question is the whole ballgame, and it has a name.

Section 2.6Spatial correlation — the answer to "why is my rank stuck at 1?"

Here, at last, we cash in the paradox. Spatial correlation measures how similar the channels seen by neighbouring antennas are. Low correlation means each antenna sees a meaningfully different view of the world — H is full of independent numbers, its rows point in different directions, and the receiver can cleanly separate many layers. High correlation means the antennas all see nearly the same thing — H's rows are near-copies of each other, and no amount of math can pull apart streams that arrived looking identical.

And what decides correlation? The channel. The scattering. Exactly the stuff we just spent the chapter on.

RICH SCATTERING (city) low correlation → H is rich RANK 4 — fast CLEAN LINE OF SIGHT (highway) all antennas see the same ray high correlation → H collapses RANK 1 — slow
Figure 2.6 · The same radio, two channels, two completely different outcomes
How to read this picture This is my tale of two cells, drawn. On the left — the city — the signal ricochets off buildings from every direction, so each receive antenna catches a genuinely different tangle of rays. The matrix H fills up with independent numbers, its rows point different ways, correlation is low, and the receiver can separate four clean layers: rank 4, full speed. On the right — the highway — there's basically one clean ray arriving from one direction, so every antenna sees almost exactly the same thing (notice the rays are nearly parallel). H's rows become near-copies, correlation is high, and there's simply no independent information to separate streams from: rank 1, stuck. Same 64T64R radio on both sides. The channel decided. This is the picture to summon every time someone files a "rank stuck at 1" ticket.

Two more practical levers that push correlation around, so you can actually do something about it in the field:

  • Antenna spacing. Antennas packed closer than about half a wavelength see almost the same wave — high correlation. This is why array geometry matters and why you can't just cram elements together for free (Chapter 4).
  • Polarization. A neat trick: put two antennas at the same spot but with perpendicular polarizations (±45°, "cross-pol"). They're physically co-located yet see nearly independent channels — instant low correlation without needing space. This is why almost every real massive-MIMO panel is built from cross-polarized elements (Chapter 4 again).

Section 2.7Where the rules live (3GPP map)

The channel itself isn't "specified" — physics writes it — but 3GPP models it (so everyone simulates against the same assumptions) and defines the tools we use to measure and cope with it.

Topic from this chapter3GPP home
The statistical channel model (paths, delay spread, Doppler, angles, scenarios UMa/UMi/RMa/InH)TR 38.901 — the channel-model bible; read it before any MIMO simulation
DM-RS that the UE uses to actually estimate HTS 38.211 (signal definition), TS 38.212
CSI measurement & reporting that tracks the channel (per-subband CQI, RI, PMI)TS 38.214
Physical measurements (RSRP/RSRQ/SINR) that summarize itTS 38.215
Cyclic prefix / numerology choices vs delay spread & DopplerTS 38.211 (frame structure)
Earlier-generation channel model (LTE/FD-MIMO 3D)TR 36.873, TR 36.897
A note worth internalizing
When a vendor or a paper says "evaluated in UMa" or "CDL-C, 300 ns delay spread, 30 km/h," they are quoting TR 38.901. Those tags are not jargon — they're a precise, shared description of the channel the result was obtained in. A throughput number without its channel assumption is meaningless, the same way a speed without "downhill / into the wind" is meaningless.

Section 2.8How the channel shows up in your KPIs

You don't measure "delay spread" or "Doppler" directly on a live network dashboard — but they leave unmistakable fingerprints on the counters you do see.

Channel propertyFingerprint in the KPIsWhat it's telling you
High spatial correlation (LOS / tight spacing)RI pinned at 1; throughput far below the radio's capability despite strong RSRPmultiplexing unavailable — the channel, not coverage
Large delay spread (frequency-selective)Wide spread in per-subband CQI; subband scheduling helps a lotrich frequency diversity — exploit it
Delay spread > cyclic prefixBLER floor that power can't fix; poor MCS even at high SINRISI — wrong numerology for the environment
High Doppler (fast user / high band)Erratic PMI/RI; CQI that's optimistic then wrong; rising BLER with speedCSI ageing — feedback is stale on arrival
Deep Rayleigh fadesBursty BLER, HARQ retransmission spikesneeds diversity (Chapter 1) to ride through

Section 2.9Two field cases the channel explains

"The highway cell won't go above rank 1." My opening story. Strong RSRP, healthy SINR, rank stubbornly 1. Walk the chain from Chapter 1: RSRP good, SINR good — so it's not coverage or interference. That points straight at a low-rank channel, and a clean line-of-sight highway is the textbook cause: high spatial correlation, a dominant direct ray, near-copy rows in H. The honest answer to the ticket is "the channel doesn't support more layers here." Levers: verify cross-polarized elements are actually being used as two layers, check antenna spacing/geometry, and set expectations — you will not multiplex your way to rank 4 over an open field. (Full treatment in Chapter 34.)

"Throughput collapses on the express train, but RSRP looks fine." A 3.5 GHz cell along a rail line. Stationary tests are gorgeous; at 300 km/h the same spot crawls. This is CSI ageing from Doppler: at 3.5 GHz and 300 km/h the coherence time is on the order of a couple of milliseconds, shorter than the measure-report-act loop, so every precoder and rank decision is based on a channel that's already gone. RSRP — a slow average — looks fine the whole time, which is exactly why this fools people. Levers: shorter CSI reporting periods, more robust/lower rank under high Doppler, Doppler-aware features. (Chapter 31.)

Section 2.10A tiny lab: build a channel and watch it misbehave

Twenty more lines of Python, and it'll cement everything above.

  1. Make a multipath channel: pick 5 taps at random delays with decaying power. Plot the power-delay profile — there's your Figure 2.2.
  2. Fourier-transform it across frequency and plot magnitude vs subcarrier. Watch it ripple — that's frequency selectivity, born from delay spread.
  3. Now add Doppler: let each tap's phase rotate at a rate f_d. Plot the received envelope over time at 3 km/h, then 120 km/h, then 300 km/h. Watch the flutter speed up — that's coherence time shrinking.
  4. Build a 4×4 H two ways: (a) all entries independent Gaussian (rich scattering), (b) every row nearly equal to the first (line of sight). Compute the singular values of each. The rich H has four healthy ones (rank 4); the LOS H has one big one and three tiny ones (rank 1).

Step 4 is the punchline of the whole chapter. When you see those three near-zero singular values in the line-of-sight case, you are looking at "rank stuck at 1" — and we'll turn exactly those singular values into the engine of MIMO in Chapter 3.

Section 2.11If they put you on the spot

Coherence time — how long the channel stays still UE speed (km/h) → T_c (ms) 3 km/h ≈ 35 ms60 km/h ≈ 1.7 ms350 km/h ≈ 0.3 ms
Figure 2.7 · Coherence time collapses as the user speeds up
How to read this picture Coherence time Tc is how long the channel stays roughly constant before fading changes it. It is inversely proportional to speed (via Doppler): a walking user gives tens of milliseconds — ample time to measure, feed back and precode — while a high-speed train gives a fraction of a millisecond, so any CSI is stale by the time it's used. This single curve explains why mobility is the enemy of closed-loop MIMO, the theme that returns in Chapter 31.
Advanced Deep-Dive  ·  Coherence time, coherence bandwidth and CSI ageing

Two numbers govern how fast and how 'colourfully' the channel changes. Coherence time Tc ≈ 0.423 / fD sets how often you must re-measure; once the channel decorrelates, fed-back CSI is worthless. Coherence bandwidth Bc ≈ 1 / (5·τrms) sets how wide a chunk of spectrum shares one channel response, which is why CSI and PMI are reported per subband rather than per subcarrier. Get these wrong and you either waste overhead measuring too often or precode on a channel that has already moved.

Doppler f_D = (v / c) · f_c coherence T T_c ≈ 0.423 / f_D # seconds the channel is ~static coherence BW B_c ≈ 1 / (5 · τ_rms) # Hz that fade together
Worked example A UE at 60 km/h on a 3.5 GHz carrier sees fD = (16.7/3×10⁸)·3.5×10⁹ ≈ 195 Hz, so Tc ≈ 0.423/195 ≈ 2.2 ms. The closed-loop CSI must complete measure→report→precode well inside ~2 ms or the precoder is already pointing at where the channel was.
"Is multipath good or bad for MIMO?"
For an old single-antenna link it's a problem — it causes fading and ISI. For MIMO it's the fuel: independent multipath from different directions is what decorrelates the antennas and fills the channel matrix with independent entries, which is what lets you separate multiple layers. Rich multipath → high rank. The same scattering that hurt SISO is what makes MIMO fly.
"Why does the cyclic prefix exist, and what sets its length?"
It's a guard interval prepended to each OFDM symbol so that delayed multipath echoes from the previous symbol don't smear into the current one. Its length must exceed the channel's delay spread; if the delay spread is larger than the CP, you get inter-symbol interference — a BLER floor you can't beat with power. That's why larger-cell / longer-delay-spread deployments care about numerology and CP choice.
"A user has great RSRP but throughput is poor and RI is 1. Channel-level explanation?"
Strong RSRP rules out coverage. The likely cause is a low-rank channel from high spatial correlation — a line-of-sight-dominated path or antennas that effectively see the same wave. The channel matrix rows are near-copies, so there's no independent spatial structure to carry extra layers. Fix expectations and check polarization/geometry; you can't multiplex without a rich channel.
"Why is high mobility worse at 3.5 GHz than at 700 MHz?"
Doppler shift scales with carrier frequency: f_d = (v/c)·f_c·cosθ. At five times the carrier you get five times the Doppler, five times the Doppler spread, and a fifth of the coherence time — so the channel ages much faster, CSI goes stale sooner, and beamforming/rank decisions miss. Same speed, much harder channel.
"Difference between flat and frequency-selective fading?"
It's the frequency axis. If the delay spread is small compared to your symbol/bandwidth (large coherence bandwidth), the whole carrier fades together — flat. If the delay spread is large (small coherence bandwidth), different subcarriers fade differently — frequency-selective. Selective is actually useful: it lets the scheduler put users where they're individually strong (frequency-selective scheduling).

Section 2.12What to carry out of this chapter

  • The channel, not the radio, decides what MIMO delivers. Identical hardware in opposite channels gives opposite results.
  • Multipath makes one signal arrive as many echoes — bad for old SISO, but the very fuel MIMO needs for high rank.
  • Delay spreadcoherence bandwidth (inverse): big delay spread → frequency-selective channel; if it exceeds the cyclic prefix you get ISI.
  • Doppler scales with speed and carrier frequency; Doppler spread ↔ coherence time (inverse). Short coherence time → CSI ageing, the silent throughput killer on fast users.
  • Keep the two fading axes straight: fast/slow is the time axis (Doppler/shadowing); flat/selective is the frequency axis (delay spread). Rician = line of sight (steady); Rayleigh = rich scatter (deep fades, high rank).
  • H is just every Tx-to-Rx path, each entry a sum of multipath. Spatial correlation — how alike the antennas' views are — decides whether H is rich (rank 4) or collapsed (rank 1). Antenna spacing and cross-polarization are your practical knobs.
  • It all lives in TR 38.901; a throughput number without its channel assumption means nothing.

In closing2.13 · The highway and the city, reconciled

We started with two identical radios that behaved like different machines, and now the mystery is gone. The city cell wins because the city is messy: every wall and window scatters the signal into independent paths, decorrelates the antennas, fills the channel matrix with real, distinct numbers, and hands the scheduler four clean pipes. The highway cell loses because the highway is clean: one dominant ray, antennas all seeing the same thing, a channel matrix of near-copies, and no spatial structure to carry more than one layer. The radio was never the variable. The channel was.

You can now read the invisible thing. You can look at an environment and predict whether it will be rank-rich or rank-poor; you can hear "300 km/h at 3.5 GHz" and immediately think coherence time, CSI ageing, drop the rank; you can see "delay spread 3 µs" and ask whether the cyclic prefix can cope. Most importantly, you understand the paradox at the heart of MIMO: the propagation conditions that look worst to a coverage engineer — all that messy scattering — are often best for capacity.

There's one piece of unfinished business. I keep promising that the receiver "runs the mixing backwards" to recover the layers, and I keep pointing at those singular values in the lab. It's time to make good on it. In Chapter 3 — MIMO Mathematics Made Practical, we'll take the matrix H we just built and crack it open with the singular value decomposition: we'll see the eigen-channels literally fall out of it, watch rank and capacity emerge as plain consequences, and turn "the channel decides" from a slogan into arithmetic you can do on a notepad.

— end of Chapter 2 —
Part One — Foundations of Wireless MIMO
CHAPTER THREE

MIMO Mathematics
Made Practical

"The matrix isn’t scary. It’s just bookkeeping for the air."

At the end of Chapter 2 I left you staring at four numbers and a promise. The numbers were the singular values of two channel matrices you built in the lab — and I told you they were the secret to everything. In the rich‑scattering city channel, all four came out healthy and roughly equal. In the clean line‑of‑sight channel, one was big and the other three were almost zero. I said: that is rank‑1‑stuck, you're looking right at it, and we'll turn those very numbers into the engine of MIMO. This is the chapter where I keep that promise.

I know the word "matrix" makes a lot of brilliant RF engineers tense up. Years of antennas and dB and drive tests, and suddenly someone's writing H = UΣVᴴ on a whiteboard like it explains anything. So let me make you a counter‑promise: we are not doing abstract linear algebra here. Every symbol in this chapter is going to map to something physical you already understand — a beam, a pipe, a signal level, a fade. By the end you'll read y = Hx + n the way you read a link budget: not as math, but as a sentence about the radio.

Here's the one idea the whole chapter rotates around, and it's genuinely beautiful once you see it: any MIMO channel, no matter how tangled, can be re‑drawn as a small set of simple, independent, parallel SISO pipes — each with its own gain. The tangling you saw in Chapter 2's multiplexing figure? It's not really tangling. It's a rotation. And once you rotate the right way, the mess falls apart into clean pipes you can count on your fingers. That rotation is the SVD, and it's the single most useful piece of math an RF engineer can carry. Let's earn it.

Before we dive inWhat you'll walk away knowing

By the last page you should be able to stand at the whiteboard and:

  • Read y = Hx + n out loud as a plain sentence about transmit antennas, the channel, noise, and what the receiver hears.
  • Define the rank of a channel as "the number of independent pipes it actually offers" — and explain why it's usually less than the antenna count.
  • Explain eigenvalues, singular values and the SVD in plain words, and draw how the SVD turns a messy channel into clean parallel pipes (the eigen‑channels).
  • Write and interpret the MIMO capacity formula — and explain water‑filling: why you pour more power into the strong pipes and starve the weak ones.
  • Use the condition number to explain why two channels with the same rank can perform completely differently.
  • Explain, intuitively, how a receiver inverts the channel with Zero‑Forcing vs MMSE — and the noise‑enhancement trap.
  • Connect all of it to RI and CQI (TS 38.214) so the math becomes counters you can read on a live network.

Section 3.1The whole link in one short equation

Let's start by writing the entire MIMO link as one line and then translate it word by word. With Nt transmit antennas and Nr receive antennas:

y = H x + n

Read it like this, left to right, as a sentence:

  • x — "what we sent." A stack of Nt numbers, one symbol per transmit antenna. If we're sending 4 layers from 4 antennas, x has 4 entries.
  • H — "what the air did to it." The Nr × Nt channel matrix from Chapter 2: every entry h(i,j) is the path (amplitude + phase, summed over all multipath) from transmit antenna j to receive antenna i.
  • n — "the noise the receiver adds." A stack of Nr random numbers, the thermal hiss in each receive chain.
  • y — "what we actually heard." A stack of Nr numbers, one per receive antenna — each a mixture of everything that was sent, because every transmit antenna reaches every receive antenna.
x — sent x₁x₂x₃ H the channel (the air) + noise n y — heard y₁y₂y₃ Each yᵢ is a mixture of all the x’s — the receiver’s job is to un-mix it.
Figure 3.1 · The MIMO link as a system: send x, the air applies H, noise adds, you hear y
How to read this picture Left to right is the life of a transmission. On the left, the stack x is what the antennas send. It flows into the blue H block — that's the air doing its mixing. Then noise n (in red, because noise is the enemy) gets added at the circle. Out the right comes y, what the receive antennas actually pick up. The whole point of the picture is the caption: every output is a blend of every input, so the receiver is handed a scrambled sum and must reverse‑engineer the original layers. The rest of this chapter is the story of how — and the answer turns out to be astonishingly clean.

That word "mixture" is the villain of the story. The receiver doesn't get x₁ on one antenna and x₂ on another. It gets a sum on every antenna. To recover the layers it must somehow "divide by H." Whether that division is easy or a disaster depends entirely on the shape of H — and the tool that reveals the shape is coming in three sections.

Section 3.2Rank — how many pipes you actually get

We've been using the word "rank" loosely since Chapter 1. Time to pin it down — and the definition is refreshingly physical. The rank of H is the number of genuinely independent pipes the channel offers. Mathematically it's the number of linearly independent rows (or columns) in the matrix, but forget that phrasing; here's the one that matters: it's how many different views of the transmitted signal the receiver can collect. The absolute ceiling is min(Nt, Nr) — you can't have more independent pipes than you have antennas at the skinnier end. But the channel decides how many of those potential pipes are real.

The cleanest way to see rank is to line up the channel's singular values (we'll define those properly next section — for now, just think "the strength of each available pipe") as a little bar chart. A healthy pipe is a tall bar; a useless pipe is a bar near zero.

Line of sight → RANK 1 one strong, three ≈ 0 Some scatter → RANK 2 two usable pipes Rich city → RANK 4 four healthy pipes bar height = strength of each spatial pipe (singular value)
Figure 3.2 · Rank, made visible — count the bars that are actually tall
How to read this picture Three channels, three bar charts. Each bar is one potential pipe, and its height is how strong that pipe is. On the left (a clean line‑of‑sight link) one bar towers and the other three are stubs near the floor — only one pipe is real, so rank 1. In the middle, two bars stand up — rank 2. On the right (the rich city) all four bars are tall and similar — rank 4, four real pipes. This is the exact picture you built in Chapter 2's lab. Rank isn't "how many antennas you have," it's "how many of these bars are tall," and the channel draws the bars, not you.

Notice the bars are never exactly zero — even the useless pipes have a sliver. That sliver matters: trying to push a layer down a near‑zero pipe is where receivers get into trouble, because to recover it they have to amplify it enormously and they amplify the noise right along with it. Hold that thought for Section 3.7.

Section 3.3The SVD — the master key

Now the centerpiece. The Singular Value Decomposition says that any matrix H can be written as a product of three special matrices:

H = U Σ Vᴴ

People see that and flinch. Don't. Here is the entire thing in plain English, and it's a story about rotate → stretch → rotate:

  • Vᴴ is a rotation at the transmitter. It says: "don't send your raw layers straight onto the antennas — first combine them into these special input directions the channel likes." These directions are the right way to point your energy.
  • Σ (capital sigma) is a stretch. It's a diagonal matrix — just a list of numbers σ₁ ≥ σ₂ ≥ … ≥ σᵣ down the diagonal and zeros everywhere else. Each σᵢ is the gain of one pipe. Those are the singular values — the bar heights from Figure 3.2.
  • U is a rotation at the receiver. It says: "after the channel, the clean pipes come out pointing in these output directions; rotate your received antennas to line up with them and read the pipes off cleanly."
H = Vᴴ rotate (Tx) × Σ stretch (gains σᵢ) × U rotate (Rx) becomes independent pipes σ₁σ₂σ₃σ₄ Rotate the input, scale each pipe by σᵢ, rotate the output — the tangle is gone.
Figure 3.3 · SVD: the messy channel H is really just rotate → stretch → rotate
How to read this picture Read the equation as a little assembly line. The channel H equals three steps done in order: Vᴴ rotates your layers into the directions the channel prefers; Σ simply scales each one by its own gain σᵢ; U rotates the result so the receiver can read it. The payoff is on the right: once you do this, the scrambled MIMO channel becomes a neat stack of independent parallel pipes, pipe i having gain σᵢ. No cross‑talk between them. That's the magic — the "mixing" from Figure 3.1 was never real chaos, it was just two rotations hiding a set of clean pipes. Find the rotations (that's what computing the SVD does) and the pipes appear.

Why should a busy RF engineer care that a matrix factors three ways? Because of what it means: the SVD proves that MIMO capacity is just the sum of several ordinary SISO links. It converts a frightening multi‑antenna problem into "a handful of normal links, side by side." And the σᵢ values it hands you are exactly the bar heights — so the SVD is how you'd compute rank, capacity, and the condition number in the first place. Every other quantity in this chapter is something you read off Σ.

Section 3.4Eigen-channels — your channel is a bundle of SISO pipes

Let's make the payoff concrete. After the SVD rotations, an Nt × Nr MIMO channel of rank r behaves exactly like r separate, non‑interfering SISO channels — the eigen‑channels. Pipe i carries its layer with a power gain of σᵢ² (the singular value squared — squaring shows up because power is amplitude‑squared). A strong pipe (big σᵢ) is a great SISO link; a weak pipe (tiny σᵢ) is a terrible one.

One MIMO channel = r parallel SISO pipes pipe 1gain σ₁² (strong) pipe 2gain σ₂² pipe 3gain σ₃² (weak) pipe 4σ₄² ≈ 0 — barely usable Each pipe obeys plain Shannon. Total capacity = sum of the pipes.
Figure 3.4 · The eigen-channels: a fat strong pipe, a couple of decent ones, and a near-dead one
How to read this picture Picture the one tangled MIMO channel unrolled into a stack of plain pipes, drawn here widest‑on‑top. Pipe 1 is fat and strong (gain σ₁²) — it'll carry a high‑order modulation easily. Pipe 2 is still good. Pipe 3 is getting thin. Pipe 4 is the near‑dead one (in red) — its gain is almost zero, so it can barely carry anything, and forcing a layer down it costs you dearly. Each pipe is now an ordinary SISO link obeying ordinary Shannon, and the total throughput is simply the sum across pipes. This is why "rank 4" is worth so much more than "rank 1": you're adding up four Shannon links instead of one.

Section 3.5The capacity formula — and why we feed the strong pipes first

Now we can write the famous MIMO capacity formula and actually understand it. Since the channel is just r parallel SISO pipes, and Shannon already told us a single pipe carries log₂(1 + SNR), the total is simply the sum over the pipes:

C = Σ log₂( 1 + (Pᵢ · σᵢ²) / N₀ ) i=1…r σᵢ² = power gain of pipe i (from the SVD) Pᵢ = power you choose to put into pipe i N₀ = noise power r = rank (number of pipes)

Read it as: "for each pipe, compute its own Shannon capacity using its own gain and the power you decided to give it; then add them up." That's the entire formula. The linear growth we kept claiming since Chapter 1 — 4× the capacity for 4 pipes — is just this sum having four healthy terms instead of one.

But there's a decision hiding in those Pᵢ values: how do you split your total power across the pipes? The optimal answer has a wonderful name — water‑filling — and a wonderful intuition. Imagine the pipes as containers of different depths: the strong pipes are shallow (low "noise‑to‑gain"), the weak pipes are deep. You pour your power in like water. It naturally pools more in the shallow (strong) pipes and may not even reach the bottom of the deepest (weakest) ones. You feed your best pipes first, and you don't waste power on near‑dead pipes at all. It's exactly what a good scheduler does — and exactly why, when rank drops, the system gracefully concentrates power into the surviving pipe instead of stubbornly splitting it.

SNR (dB) → capacity → SISO 1×12×24×4 more pipes lift the whole curve water-filling power σ₁σ₂σ₃σ₄ level strong pipes get the most power; the dead pipe (σ₄) gets none
Figure 3.5 · Left: more pipes raise the whole capacity curve. Right: water-filling pours power into the strong pipes.
How to read this picture Two ideas side by side. Left — capacity versus signal quality (SNR). The bottom light line is SISO (one pipe); 2×2 sits above it; 4×4 is the top dark line. The gap between them is the multiplexing gain — at any given SNR, more pipes simply lift the whole curve. Right — water‑filling, drawn literally. Each bar is a pipe, and the strong pipes are the short containers, the weak ones the tall containers. You "pour" your power and it fills to one flat level (the dashed line): the strong pipes (σ₁, σ₂) hold the most, the weak pipe (σ₃) gets a little, and the near‑dead pipe (σ₄) is so deep the water never reaches it — it gets zero power. That's the optimal strategy: don't waste a single milliwatt on a pipe that can't carry it.

Section 3.6Condition number — why two “rank-4” channels can be worlds apart

Here's a subtlety that separates people who've read about MIMO from people who've operated it. Two channels can both be rank 4 — four non‑zero pipes — and yet perform completely differently. Why? Because rank only counts how many pipes are non‑zero; it says nothing about whether they're balanced. The condition number measures that balance: it's the ratio of the strongest pipe to the weakest one.

condition number κ = σ_max / σ_min κ ≈ 1 → pipes are balanced → "well-conditioned" → MIMO loves it κ very big → one giant pipe, one near-dead pipe → "ill-conditioned" → MIMO struggles
WELL-CONDITIONED (κ ≈ 1) four balanced pipes → clean separation high, stable rank · low BLER ILL-CONDITIONED (κ ≫ 1) one giant pipe, the rest collapsing rank looks high but layers bleed together
Figure 3.6 · Same rank, different lives: balanced pipes vs one bully pipe
How to read this picture Both sides are technically "rank 4" — four non‑zero bars. But look at the shape. On the left, the four bars are nearly equal: a well‑conditioned channel where the condition number κ is close to 1. The receiver separates the four layers cleanly, rank is stable, errors stay low — MIMO's dream. On the right, one bar dominates and the others are collapsing toward zero: an ill‑conditioned channel, κ huge. The math still says "rank 4," but in practice the weak layers bleed into each other and into the noise the moment the receiver tries to separate them. This is why a UE can report rank 4 and still disappoint — and why CQI, which reflects the actual achievable quality, drops even when RI looks healthy. Rank counts the pipes; the condition number tells you if they're worth using.

Section 3.7Getting the layers back: Zero-Forcing vs MMSE

So the receiver has y, knows H (it estimated it from the DM‑RS — Chapter 2), and wants x. The obvious move is to "divide by H" — mathematically, multiply by the inverse of H. That's Zero‑Forcing (ZF): it perfectly cancels the cross‑talk between layers, forcing the interference to zero. Sounds ideal — and on a well‑conditioned channel it is.

But remember those near‑zero pipes. To invert a tiny σᵢ, ZF must multiply by an enormous 1/σᵢ — and that giant multiplier amplifies the noise on that pipe just as much as the signal. This is noise enhancement, and on an ill‑conditioned channel it's catastrophic: ZF cleans up the cross‑talk but drowns you in amplified noise.

MMSE (Minimum Mean Square Error) is the grown‑up version. Instead of blindly forcing cross‑talk to zero, it strikes the best balance between cancelling interference and not amplifying noise. On a clean channel it behaves almost like ZF; on a noisy or ill‑conditioned one it gracefully backs off, tolerating a little residual cross‑talk to avoid the noise blow‑up. In real receivers, MMSE (and its successors) is what you'll actually find. The practical takeaway you must carry: a receiver's ability to recover layers depends not just on rank but on the condition number and the SNR — which is exactly why the scheduler drops rank in poor conditions rather than greedily insisting on more layers.

 Zero-Forcing (ZF)MMSE
Goalkill all cross-talk between layersbest signal-to-(noise+interference) balance
On a clean channelexcellentexcellent (≈ ZF)
On ill-conditioned / low SNRnoise enhancement → poorbacks off gracefully → much better
Needs to know noise level?noyes
Real-world useteaching, simple casesthe practical baseline

Section 3.8Where the rules live (3GPP map)

This chapter is mathematics, but the standard turns every quantity here into a reported number.

Concept from this chapter3GPP home
Rank → the Rank Indicator (RI) the UE reportsTS 38.214 (CSI), TS 38.212 (UCI coding)
Per-pipe achievable quality → CQI (reflects post-equaliser SINR, i.e. condition number + SNR)TS 38.214
Input rotation Vᴴ → the precoder / PMI the UE recommends (codebook approximation of V)TS 38.214, codebooks in TS 38.214 §5.2.2
The channel H itself → estimated from CSI-RS / DM-RSTS 38.211
Statistical channel (where σ-profiles come from in simulation)TR 38.901
The bridge you must remember
The SVD's V (best input directions) is what the PMI approximates from a codebook; its Σ (pipe strengths) is what sets RI (how many pipes are worth using) and CQI (how good each is). So when you read RI/PMI/CQI off the OSS, you are reading a quantised, real‑time SVD of the channel. The math isn't academic — it's literally what those three feedback numbers are.

Section 3.9How the math shows up in your KPIs

Math quantityKPI fingerprintMeaning
Few non-zero singular valuesRI low (1–2) even with good RSRPlow-rank channel — multiplexing unavailable
High condition number κRI looks high but CQI & throughput disappoint; BLER creeps uppipes unbalanced — layers don't separate cleanly
Balanced σ’s, high SNRhigh RI + high CQI + high spectral efficiencyMIMO working as designed
PMI that tracks V wellstable PMI, low BLERgood precoder match → clean eigen-channels
Noise enhancement (ZF, bad channel)post-equaliser SINR ≪ raw SINRreceiver paying for forcing cross-talk to zero

Section 3.10A field case the math explains

"RI is 4 but throughput is what I'd expect from rank 2 — why?" A classic ill‑conditioned channel. The UE detects four non‑zero pipes (so it reports RI 4), but the condition number is large — pipes 3 and 4 are weak and nearly collinear with the strong ones. When the receiver tries to separate four layers, noise enhancement on the weak pipes drags down their effective SINR, so CQI on those layers is poor and the scheduler can only run low MCS there. The sum of capacities ends up near a clean rank‑2 channel. The math diagnosis: rank = 4 but κ ≫ 1. The fix isn't "force more layers" — it's recognising the channel only truly supports two strong pipes, and letting rank adaptation settle there (often higher throughput at rank 2 with solid MCS than rank 4 with garbage on two layers). We return to this in Chapter 34.

Section 3.11Mini-lab: see the SVD do its job

  1. Take the two 4×4 channel matrices from Chapter 2's lab (rich i.i.d. one, and the near‑line‑of‑sight one).
  2. Run numpy.linalg.svd(H) on each. Print the singular values. Rich channel → four similar numbers; LOS channel → one big, three tiny. There's Figure 3.2 from your own data.
  3. Compute the condition number σ_max/σ_min for each. The rich one is small (single digits); the LOS one is enormous. There's Figure 3.6.
  4. Plug the σ’s into the capacity formula at SNR = 10 and 20 dB, with equal power then with water‑filling. Watch water‑filling beat equal‑power most at low SNR, and watch the LOS channel's capacity barely exceed a single SISO link no matter what.
  5. Build a ZF receiver (x̂ = pinv(H) · y) and an MMSE receiver; add noise; compare recovered‑symbol error on the rich vs LOS channel. Watch ZF fall apart on the ill‑conditioned one while MMSE survives.

Step 5 is the whole chapter in one experiment: same code, two channels, and the condition number predicts which receiver lives.

Section 3.12If they put you on the spot

Water-filling: pour more power into the stronger eigen-channels water level μ 1/σ₁² (best) 1/σ₂² 1/σ₃² 1/σ₄² off grey = noise floor of each eigen-channel · blue = power poured in
Figure 3.6 · Water-filling power allocation across eigen-channels
How to read this picture After the SVD splits the channel into independent eigen-channels, you don't power them equally. Think of each channel's noise floor (grey) as the bottom of a vessel; you pour a common 'water level' μ of power across them. Strong channels (low floor, left) get the most power; weak ones get little; a channel whose floor pokes above the water (right) gets zero — it isn't worth using. This is the capacity-optimal allocation, and it is why the effective rank is often less than the antenna count.
Advanced Deep-Dive  ·  SVD, eigen-channels and the water-filling solution

Any channel matrix factors as H = UΣVᴴ. The diagonal of Σ holds the singular values σi; squaring them gives the gains of parallel, non-interfering eigen-channels. The transmitter pre-multiplies data by V (precoding) and the receiver by Uᴴ — turning a tangled Nt×Nr channel into r independent scalar pipes. Capacity is then maximised by water-filling: allocate power Pi = max(0, μ − 1/σi²) with μ chosen so ΣPi = Ptotal. The condition number σmaxmin tells you at a glance whether the channel supports high rank (near 1) or is effectively rank-deficient (large).

SVD H = U Σ Vᴴ eigen-gains λ_i = σ_i² water-filling P_i = max(0, μ − 1/σ_i²), Σ P_i = P_total condition # κ = σ_max / σ_min # ~1 good, ≫1 rank-poor
Worked example Singular values σ = [3.0, 1.6, 0.4]. Floors 1/σ² = [0.11, 0.39, 6.25]. With water level μ = 1.0, P = [0.89, 0.61, 0] — the third eigen-channel (floor 6.25 above μ) gets no power, so a nominally rank-3 channel transmits only 2 useful layers. κ = 3.0/0.4 = 7.5 already warns of this.
"Explain the SVD to me like I'm an RF engineer, not a mathematician."
Any channel H can be split into rotate‑stretch‑rotate: Vᴴ rotates your layers into the directions the channel likes, Σ scales each by its own gain σᵢ, U rotates the output so the receiver reads clean pipes. The result is that a tangled MIMO channel becomes a set of independent parallel SISO pipes — pipe i with gain σᵢ. Capacity is then just the sum of those pipes' Shannon capacities.
"Difference between rank and condition number?"
Rank = how many pipes are non‑zero (how many bars are tall). Condition number = ratio of the strongest to weakest pipe (how balanced the bars are). Two channels can both be rank 4, but a well‑conditioned one (κ≈1) separates layers cleanly while an ill‑conditioned one (κ≫1) can't, so it underperforms despite the same rank.
"What is water-filling and when does it matter most?"
The optimal way to split transmit power across eigen‑channels: pour more into strong pipes, little or none into weak ones. It matters most at low SNR, where wasting power on weak pipes really hurts; at high SNR it converges toward equal power because every pipe is worth using.
"Why not always use Zero-Forcing — it perfectly cancels interference?"
Because inverting a near‑zero singular value means multiplying by a huge number, which amplifies noise as much as signal — noise enhancement. On ill‑conditioned channels ZF is terrible. MMSE balances interference cancellation against noise and is the practical choice.
"Connect the SVD to what the UE reports."
RI ≈ how many usable singular values, PMI ≈ a codebook approximation of V (the best input rotation), CQI ≈ the achievable quality per pipe (which depends on σ’s and SNR, i.e. the condition number). RI/PMI/CQI are a real‑time, quantised SVD of the channel.

Section 3.13What to carry out of this chapter

  • y = Hx + n is the whole link: every receive antenna hears a mixture of everything sent, and recovering layers means "dividing by H."
  • Rank = number of non‑zero pipes (tall bars), capped at min(Nt,Nr) but set by the channel.
  • The SVD (H = UΣVᴴ) = rotate → stretch → rotate; it turns the tangled channel into independent parallel SISO eigen‑channels, pipe i with gain σᵢ.
  • Capacity = sum of each pipe's Shannon capacity; water‑filling feeds the strong pipes first and starves dead ones.
  • Condition number κ = σ_max/σ_min decides whether equal‑rank channels actually perform equally — ill‑conditioned channels disappoint despite high rank.
  • ZF vs MMSE: ZF cancels cross‑talk but enhances noise on weak pipes; MMSE balances and wins in the real world.
  • RI / PMI / CQI are a quantised SVD: pipes worth using / best input rotation / per‑pipe quality. The math is the feedback.

In closing3.14 · The mess was never a mess

We opened with four little singular values and a promise. Now you know what they were: the strengths of the parallel pipes hiding inside the channel, revealed by the one rotation — the SVD — that un‑tangles MIMO into a bundle of ordinary SISO links. Everything followed from that. Rank is how many pipes stand tall. Capacity is the sum of their Shannon limits. Water‑filling is how you feed them. The condition number is whether they're worth feeding. And ZF‑versus‑MMSE is the receiver's craft of reading them back without drowning in amplified noise.

Most importantly, you now hold the bridge between the chalkboard and the OSS dashboard: RI, PMI and CQI are nothing more than a real‑time, quantised SVD of the air. When you change a downtilt, swap a panel, or move a user from a glass canyon to an open field, you are reshaping Σ — adding or killing pipes, balancing or unbalancing them — and those three feedback numbers report the result a few milliseconds later. The math we just did is the most practical thing in the book, because it tells you what you're actually changing every time you touch the network.

We've now built the three pillars of Part 1: why MIMO matters, what the channel does, and the mathematics that ties them together. From here the book gets physical again. In Chapter 4 we climb the tower and open the radio: antenna elements versus logical ports, cross‑polarisation, panels, and how 8T8R grows into 32T, 64T and 128T arrays — the hardware that actually creates the H we've spent three chapters learning to read.

— end of Chapter 3 —
Part Two — Antenna Systems and Array Theory
CHAPTER FOUR

Antenna Elements, Ports,
Panels and Arrays

"The UE counts ports. The metal counts elements. Confusing the two is the most common rookie mistake in MIMO."

For three chapters we've been reading the channel matrix H — where it comes from, what it does, how to crack it open with the SVD. But we've been quietly cheating. We kept drawing little antenna icons and saying "this is a transmit antenna" as if it were one obvious thing. It isn't. The moment you climb a real tower and open a real 5G radio, you discover that the word "antenna" splits into three different things that engineers carelessly call by the same name — and the gap between them is where most MIMO confusion lives.

Let me tell you about a meeting that went sideways once. A planning engineer insisted a "64T64R" radio meant the UE would see 64 layers. A vendor engineer said it supported "32 ports." A field engineer said the panel had "192 elements." All three were right — they were just talking about three different layers of the same antenna, and nobody realised it. Sixty‑four transceivers, thirty‑two logical ports, a hundred and ninety‑two physical radiators, and at most eight layers to any one user. Same radio. Four numbers. Everyone correct, everyone confused.

This chapter untangles that, permanently. By the end you'll know exactly what a physical element is, what a logical port is, how dozens of elements collapse into a handful of ports through something called virtualization, why almost every real panel is built from cross‑polarized elements, and what the marketing label "64T64R" really describes. This is the hardware that physically builds the H you've learned to read — so let's climb the tower.

Before we dive inWhat you'll walk away knowing

  • Define an antenna element (physical radiator), an antenna port (logical, defined by a reference signal), and a panel (the whole array) — and never confuse them again.
  • Explain virtualization: how many physical elements are combined into one logical port through a TXRU, and why we do it.
  • Explain cross‑polarization (±45°) and why it gives two decorrelated channels from a single physical location — the cheapest rank you can buy.
  • Read a panel's geometry — rows × columns × polarizations — and compute element and port counts.
  • Decode 8T8R, 16T16R, 32T32R, 64T64R, 128T128R: what the "T/R" number counts, and how it relates to elements, ports, and layers.
  • Connect all of it to the 3GPP limits (≤ 32 CSI‑RS ports, up to 8 DL layers) and to spatial correlation from Chapter 2.

Section 4.1The element — the actual piece of metal

Start at the bottom, with the only thing that's physically real: the antenna element. An element is a single radiating structure — usually a small flat patch a bit smaller than a postage stamp at mid‑band — that converts electrical signal into a radio wave and back. It has a fixed, broad radiation pattern (a patch sprays energy over roughly a hemisphere). One element on its own is basically an omni‑ish antenna; it can't steer, it can't beamform, it just radiates.

A modern mid‑band 5G panel is tiled with these patches — often 96, 128, or 192 of them in a neat rectangular grid behind the radome. That's the "192 elements" the field engineer was talking about. But — and this is the first crucial point — the UE never sees elements directly, and neither does the 3GPP standard. Elements are an implementation detail of the radio. What the system reasons about is something more abstract: the port.

Section 4.2The port — a logical thing defined by a signal

Here is the definition that, once it clicks, makes everything else fall into place. 3GPP (TS 38.211) defines an antenna port not as a piece of hardware but logically: "an antenna port is defined such that the channel over which a symbol on the port is carried can be inferred from the channel over which another symbol on the same port is carried." In plain words: a port is whatever a single reference signal is transmitted from. If two transmissions carry the same reference signal and the UE can use that one channel estimate for both, they're the same port — no matter how many physical elements actually radiated them.

So a port is a label on a reference signal, not a wire. The UE estimates one channel per port (from the pilot on that port) and stacks those estimates into the matrix H. This is why the dimensions of H are set by ports, not elements: an Nr‑receive UE measuring a transmitter that exposes P ports sees an Nr × P channel. The 192 physical patches are invisible; the UE only ever knows about the ports the gNB chooses to expose.

ELEMENT physical radiator one patch of metal combine PORT logical · = one reference signal several elements → 1 port (1 pilot) tile PANEL the whole array many ports of many elements
Figure 4.1 · Three words people use for "antenna": element → port → panel
How to read this picture Left to right is "zooming out." On the left, a single element — one little crossed patch of metal, the only physically real thing. In the middle, a port: several elements wired together so they all carry one reference signal — the UE sees them as a single logical antenna and estimates one channel for them. On the right, the panel: the whole grid of elements, organised into a set of ports. The golden rule lives here: elements are hardware, ports are what the standard and the UE actually count. When someone says "how many antennas," always ask: elements, ports, or transceivers?

Section 4.3Virtualization — how 192 elements become 32 ports

So how do we get from 192 physical patches to, say, 32 logical ports? Through virtualization (sometimes called TXRU mapping). A TXRU — Transceiver Unit — is one complete radio chain: a power amplifier, a converter, the actual transmit/receive electronics. The "T/R" count in "64T64R" is the number of TXRUs. Each TXRU feeds a group of physical elements (a sub‑array), and that whole group radiates the same signal with fixed relative phases — so the group behaves as one port with a narrower, pre‑shaped pattern.

Picture a panel column of, say, 6 stacked elements all driven by one TXRU with a fixed downtilt. Those 6 elements together form one port whose vertical beam is already shaped — but the gNB can only steer that port as a unit. Do this across the panel and 192 elements collapse into 32 (or 64) TXRUs/ports. This is the trade‑off at the heart of antenna design: more elements per port → narrower fixed sub‑beams and more array gain, but fewer independent ports to play with → less flexibility for digital beamforming and MU‑MIMO. Fewer elements per port → the opposite.

PHYSICAL ELEMENTS each dashed box = one sub-array TXRU LOGICAL PORTS port 1 (1 pilot)port 2port 3port 4 fewer ports, each a pre-shaped sub-beam
Figure 4.2 · Virtualization: groups of physical elements collapse into a handful of logical ports
How to read this picture On the left is the real metal — columns of crossed elements, each dashed box a sub‑array. Each sub‑array is wired to one TXRU (transceiver) and radiates a single signal, so on the right it appears as just one logical port carrying one pilot. Four sub‑arrays → four ports. The cost: the gNB can steer a port, but it can't independently control the elements inside a port — their relative phases are baked in (a fixed sub‑beam, often a fixed downtilt). This is the central design dial: pack more elements per port for gain, or expose more ports for flexibility and MU‑MIMO. "64T64R" tells you the TXRU/port count; the element count is usually much larger.

Section 4.4Cross-polarization — two free channels from one spot

Now the trick that makes modern panels so compact, and that pays off everything we learned about spatial correlation in Chapter 2. Remember: to get independent pipes you need decorrelated channels, and the obvious way is to space antennas far apart (≥ half a wavelength). But space on a panel is precious. Cross‑polarization cheats the spacing problem entirely.

At each grid position you place not one element but two, physically co‑located but oriented at +45° and −45° (an "X" — which is exactly why I've been drawing the elements as little X's). A wave arriving on the +45° polarization barely couples into the −45° element and vice‑versa, so the two see nearly independent channels despite sitting in the same spot. You get two decorrelated ports for the price of one location — instant low correlation, instant rank, no extra panel width. This is why a "64T64R" panel is almost always built as dual‑polarized: half its ports are +45°, half are −45°.

ONE LOCATION · TWO POLARIZATIONS +45° and −45° elements, co-located −45°+45° channel A (almost independent of B) channel B UE 2 pipes,no extra width Cross-pol = low spatial correlation from a single physical spot (cheapest rank you can buy).
Figure 4.3 · Cross-polarization: two near-independent channels from one location
How to read this picture At one spot on the panel sit two elements crossed in an X — one tilted +45°, one −45° (the two colours). Because their orientations are perpendicular, a signal on one barely leaks into the other, so they carry two nearly independent channels to the UE even though they share the exact same location. Recall Chapter 2: independent channels = low correlation = real rank. Cross‑pol hands you a second pipe without needing the half‑wavelength of extra panel width that spatial separation would demand. That's why it's the default building block of every massive‑MIMO panel — it's the cheapest rank you can buy.

Section 4.5Reading a panel's geometry

Now we can read a real panel like a label. A massive‑MIMO array is described by how its elements are laid out: M rows × N columns × P polarizations (P is almost always 2 for cross‑pol). 3GPP's antenna model (TR 38.901) adds outer dimensions for multiple panels, but the core you need is M·N·P. The horizontal spacing between columns is typically about 0.5λ (half a wavelength — close‑packed to keep grating lobes away while steering), and vertical spacing is often a bit larger, ~0.7–0.9λ.

Let's count a concrete one. Take a panel that's 8 columns wide, 8 rows tall, dual‑polarized: M=8, N=8, P=2128 physical elements. If every individual element had its own transceiver, that'd be 128T. But more commonly, vertical groups of elements are virtualized: pair the 8 rows into sub‑arrays so each column‑polarization exposes 4 TXRUs → 4 (vertical TXRU) × 8 (columns) × 2 (pol) = 64 TXRUs → a 64T64R radio built from 128 elements. Same panel, two different "T" numbers depending on virtualization. This is why element count and TXRU count diverge.

N = 8 columns (spacing ≈ 0.5λ) M = 8 rows (spacing ≈ 0.8λ) this panel M × N × P =8×8×2 elements =128 virtualize rows 2:1 → TXRUs (4×8×2) =64T64R max DL layers =8
Figure 4.4 · One panel, three numbers: 128 elements → 64 TXRUs → 8 layers
How to read this picture The grid is the panel: 8 columns across (N) by 8 rows tall (M), each position a cross‑polarized X (so P=2). Multiply them — 8×8×2 = 128 physical elements. The brackets show the spacings that matter for steering (~0.5λ horizontal). The legend on the right does the bookkeeping that confused everyone in the opening story: those 128 elements are virtualized (here, vertical pairs share a transceiver) down to 64 TXRUs — that's the "64T64R" on the spec sheet — and the standard still caps any single user at 8 layers. One panel; 128 / 64 / 8 are three honest, different answers to "how many antennas?"

Section 4.68T8R to 128T128R — what the numbers buy

Now the evolution that gives 5G its capacity. "nTnR" counts transceivers: n transmit chains, n receive chains. As n grows, two things improve at once — more array gain (narrower, stronger beams → better coverage and SINR) and more spatial degrees of freedom (more ports → more simultaneous MU‑MIMO users). Here's the ladder you'll meet in the field:

ConfigTypical useBeam behaviourMU-MIMO capability
2T2R / 4T4Rlegacy LTE, coverage layerswide sector beamsminimal
8T8Rearly massive MIMO / TDDbasic horizontal beamforminglimited
16T16Rmid-band capacity2D beamforming beginsa few users
32T32Rcommon mid-bandgood 2D / 3D beamssolid MU-MIMO
64T64Rthe mid-band workhorsesharp 3D beamsthe sweet spot — many paired users
128T128Rhigh-capacity / dense urbanvery sharp beamsmaximum spatial reuse
more transceivers → narrower beams + more users 8T8Rwide beam 32T32Rsharper 64T64Rsharp 3D 128T128Rpencil beam More transceivers = more array gain (narrower beam) AND more ports for MU-MIMO.
Figure 4.5 · The array ladder: as transceivers grow, beams narrow and more users can be paired
How to read this picture Four radios, left to right, each with more transceivers than the last — see the element grid get denser. Watch the blue beam beside each one get narrower and more focused as the array grows: 8T8R throws a wide beam, 64T64R a sharp 3D beam, 128T128R a pencil. Two benefits grow together with the transceiver count: more array gain (that narrowing beam means stronger, longer‑reaching signal and less interference) and more ports (more independent handles to serve more MU‑MIMO users at once). 64T64R is highlighted because it's the mid‑band sweet spot the whole industry converged on — enough sharpness and enough ports without the cost and power of 128T.

Section 4.7Where the rules live (3GPP map)

Concept3GPP home
Antenna port definition (logical, via reference signal)TS 38.211 §4.x
Max CSI-RS ports = 32; DL DM-RS ports; up to 8 DL layersTS 38.211, TS 38.214
Codebooks tied to port layout (N1,N2 / O1,O2 oversampling)TS 38.214 §5.2.2
Antenna array model (M, N, P, panels, element pattern, spacing)TR 38.901 §7.3
Active Antenna System (AAS) RF requirements, OTATS 38.104 (BS), TR 37.842/37.843
The number that traps people
The standard caps codebook‑based CSI‑RS at 32 ports and a single user at 8 layers — no matter how many physical elements or TXRUs the radio has. So a 64T64R or 128T radio still exposes ≤32 ports to the UE for CSI, and still tops out at 8 layers to one UE. The extra transceivers buy array gain and MU‑MIMO (more users in parallel), not more layers per user. Misreading "64T64R" as "64 layers" is the classic mistake from this chapter's opening meeting.

Section 4.8How the hardware shows up in your KPIs

Hardware factKPI fingerprintMeaning
Cross-pol present & healthyRI reaches ≥2 readily even on a single usertwo pol ports giving easy rank
Too many elements per port (over-virtualized)strong coverage but limited MU-MIMO pairingfew independent ports
More TXRUs (64T vs 8T)higher MU-MIMO pairing rate, better cell capacitymore spatial handles
One polarization branch faultyRI capped at 1, ~3 dB UL loss on that branchhardware fault — check VSWR/branch power

Section 4.9A field case the hardware explains

"A brand-new 64T64R cell can't pair more than two MU-MIMO users, while a sister site pairs six." Same radio model, so suspect configuration, not metal: the underperforming cell is likely exposing too few CSI‑RS ports (e.g., configured for 8 ports instead of 32), or its element‑to‑TXRU virtualization is set for maximum coverage (many elements per port → few independent ports). The UE simply can't be told apart from others without enough port granularity. Fix: check the CSI‑RS port configuration (TS 38.331) and the vendor's beamforming/virtualization profile. The transceivers were there all along; the ports exposed to the scheduler were the bottleneck. (We chase MU‑MIMO activation fully in Chapter 35.)

Section 4.10Mini-lab: build a panel on paper

  1. Take an array geometry M=4, N=8, P=2. Compute elements (= M·N·P). Now virtualize the 4 rows 2:1 and compute TXRUs. Then 4:1. Watch the port count fall and predict the effect on MU‑MIMO.
  2. In a sim (or by hand), build the steering vector for an N=8 column array at 0.5λ spacing; sweep the steering angle and plot the array factor (we draw this in Chapter 5). Note the beam narrows as N grows.
  3. Model cross‑pol: make two co‑located ports with a small cross‑coupling (e.g., −15 dB between pols) and confirm the 2×2 channel they form is well‑conditioned (low κ from Chapter 3) — i.e., cross‑pol really does give rank 2 cheaply.

Section 4.11If they put you on the spot

Element → TXRU → antenna port: three layers, not the same thing physical elements TXRU (RF chains) antenna ports (CSI-RS) virtualisation: many elements behind one TXRU; ports are what the UE actually sees
Figure 4.6 · The element → TXRU → antenna-port hierarchy
How to read this picture Three things get casually called 'antennas' but are different. Physical elements are the metal radiators. A TXRU (transceiver unit) is one RF chain that may drive a whole sub-array of elements through fixed analog weights. An antenna port is a logical entity defined by a reference signal — what the UE actually measures. A 64-element panel might expose only 32 TXRUs and just 2, 4, 8… CSI-RS ports. Keeping these layers straight is essential to reading any massive-MIMO datasheet correctly.
Advanced Deep-Dive  ·  Antenna ports vs TXRUs vs elements (TS 38.211 §4.4 / TR 38.802)

3GPP defines an antenna port functionally: two signals are on the same port if the channel carrying one can be inferred from the channel carrying the other. The UE never sees elements or TXRUs — only ports, via their reference signals (CSI-RS ports for measurement, DM-RS ports for demodulation). The mapping element → TXRU is antenna virtualisation (fixed analog weights, set by the vendor); TXRU → port is what the standardised CSI-RS configuration exposes. NR allows 1, 2, 4, 8, 12, 16, 24, 32 CSI-RS ports — almost always far fewer than the physical elements, because the analog sub-array beam is baked in below the port.

elements e.g. 192 radiators (8×8 dual-pol ×… ) TXRU e.g. 32 or 64 RF chains # element→TXRU = analog virtualisation CSI-RS ports {1,2,4,8,12,16,24,32} # TS 38.211 — what the UE measures DM-RS ports up to 8 (DL layers) # demodulation, per-UE
Worked example A '64T64R' radio with a 192-element panel virtualises 3 elements per TXRU (analog), then maps its 64 TXRUs down to perhaps 32 CSI-RS ports for feedback. The UE computes its PMI over those 32 ports — it has no visibility of the 192 elements beneath.
"Difference between an antenna element and an antenna port?"
An element is a physical radiator (a patch). A port is logical — defined by 3GPP as "the channel for one symbol can be inferred from another on the same port," i.e. a port is whatever one reference signal is sent from. Many elements can be virtualized into one port; the UE and the standard count ports, not elements, and H's dimensions are set by ports.
"What does 64T64R actually mean — does the UE get 64 layers?"
No. 64T64R = 64 transceivers (TXRUs). Those map from a larger number of physical elements and expose ≤32 CSI‑RS ports. A single UE still gets at most 8 layers. The extra transceivers buy array gain and MU‑MIMO (more users in parallel), not more layers per user.
"Why is cross-polarization so common?"
It gives two nearly independent channels from one physical location (+45°/−45°), so you get low spatial correlation and easy rank‑2 without spending panel width on half‑wavelength spacing. It's the cheapest rank available, which is why nearly every panel is dual‑polarized.
"Trade-off in choosing elements-per-port (virtualization)?"
More elements per port → narrower fixed sub‑beam and more array gain, but fewer independent ports → less digital‑beamforming flexibility and MU‑MIMO. Fewer elements per port → more ports/flexibility but less per‑port gain. It's a coverage‑vs‑capacity dial set by the virtualization profile.

Section 4.12What to carry out of this chapter

  • Three different things wear the name "antenna": the physical element, the logical port (defined by a reference signal), and the panel (the array). Ports — not elements — set the size of H.
  • Virtualization (via TXRUs) collapses many elements into few ports: a coverage‑vs‑flexibility dial. "nTnR" counts transceivers, not elements or layers.
  • Cross‑polarization (±45°) gives two decorrelated channels from one spot — the cheapest rank, and why panels are dual‑polarized.
  • Read geometry as M × N × P; elements = M·N·P; spacing ≈ 0.5λ horizontal. A 128‑element panel commonly virtualizes to 64T64R.
  • 3GPP caps codebook CSI‑RS at 32 ports and a single user at 8 layers; more transceivers buy array gain + MU‑MIMO, not more layers per UE.

In closing4.13 · Four numbers, one panel, no more confusion

We opened with a meeting where four engineers gave four different answers — 192, 64, 32, 8 — and all of them were right. Now you can chair that meeting. The 192 is elements, the raw patches of metal. The 64 is transceivers (TXRUs), the "64T64R" on the datasheet. The 32 is the CSI‑RS ports the radio exposes to the UE for channel feedback, capped by the standard. And the 8 is the maximum layers to any single user. Elements are virtualized into transceivers, transceivers present as ports, and ports define the channel matrix H whose layers we count. Four layers of abstraction, one piece of equipment.

And notice how this chapter quietly closed a loop from Chapter 2: cross‑polarization, the default building block, exists precisely to defeat spatial correlation — to manufacture the independent channels that fill H with usable rank. The hardware was designed around the mathematics. When you choose a virtualization profile or count CSI‑RS ports, you are literally setting the shape and size of the matrix the previous three chapters taught you to read.

We have the elements, the ports, the panel. In Chapter 5 we make them act: we'll derive the array factor — the math that turns a row of elements into a steerable beam — and meet main lobes, side lobes, beamwidth, and nulls. That's the moment the panel stops being a grid of metal and becomes the flashlight we've been promising since Chapter 1.

— end of Chapter 4 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Two — Antenna Systems and Array Theory
CHAPTER FIVE

Array Gain and
Beam Pattern

"A beam is just a lot of little waves agreeing to arrive at the same place at the same time."

In Chapter 4 we built the panel — elements, ports, the cross‑polarized grid. But a grid of metal just sitting there does nothing special; left alone, each element sprays energy over half the sky. The whole promise of this book — the flashlight beam from Chapter 1, the laser pointers of 5G — depends on one more trick: getting all those little elements to cooperate. This chapter is where the grid wakes up and learns to point.

And the trick is almost embarrassingly simple. You don't make a beam by aiming anything mechanically. Nothing tilts. Nothing moves. You make a beam by playing with timing — by delaying each element's signal by just the right sliver so that, in one chosen direction, all their waves crest together and add up, while in every other direction they fall out of step and cancel. Energy doesn't get created; it gets herded into the direction you want and starved everywhere else. That herding has a name and an equation — the array factor — and once you can read it, you can read a beam pattern the way a doctor reads an X‑ray.

By the end of this chapter the words on every antenna datasheet will mean something concrete: main lobe, side lobes, beamwidth, nulls, array gain, grating lobes. You'll know why more elements give a narrower, stronger beam; why beams have annoying little side lobes that leak into your neighbours; why you must space elements about half a wavelength apart and what goes horribly wrong if you don't; and how you can aim a deliberate spot of silence — a null — straight at an interferer. Let's wake up the panel.

Before we dive inWhat you'll walk away knowing

  • Explain how progressive phase shifts across elements steer a beam — no moving parts.
  • Write and interpret the array factor, and know that the beam points where all elements add in phase.
  • Read a beam pattern: identify the main lobe, side lobes, nulls, and the half‑power beamwidth (HPBW).
  • State the two headline rules: array gain ≈ 10·log₁₀(N) dB and beamwidth ∝ 1/N — more elements, stronger and narrower.
  • Explain grating lobes and why element spacing must be ≈ 0.5λ.
  • Explain side‑lobe levels, why they cause interference, and how tapering trades beamwidth to suppress them.
  • Explain null steering — aiming a zero in the pattern at an interferer — and connect beams to the DFT codebook beams of NR.

Section 5.1Steering by timing — the whole idea in one picture

Imagine a row of N elements, evenly spaced a distance d apart, all fed the same signal. If they all transmit at exactly the same instant, the combined wave is strongest straight ahead (broadside) — because straight ahead, every element is the same distance from the observer, so all waves arrive perfectly in step. Lovely, but it only points one way: forward.

To point somewhere else, you give each element a tiny, progressively increasing delay (a phase shift β). Now the wavefront leaves the array tilted — like a line of swimmers diving one after another in a ripple. In the direction where that built‑in delay exactly cancels the extra travel distance, all the waves still arrive in step and add up: that's where the beam points. Change the per‑element phase step, and the beam swings — instantly, electronically, no motor.

progressive phase shift → tilts the beam 0 β wavefronts (tilted by the delays) beam steers here broadside (β = 0) Each element fires a sliver later than the one above; the beam points where the delays line the waves back up.
Figure 5.1 · Steering a beam with timing, not motors
How to read this picture On the left is a column of five elements. The labels 0, β, 2β, 3β, 4β are the progressive phase shift — each element fires a fixed sliver later than the one above it. The dashed line straight out is where the beam would point if there were no delays (broadside). Add the delays and the wavefronts leave tilted, so the filled blue beam swings up to a new angle. Dial the phase step β up or down and the beam sweeps across the sky — all electronically, in microseconds, nothing physically moving. That's the entire principle of a phased array: steering is timing.

If you like the math, the combined pattern is the array factor:

AF(θ) = Σ exp( j·(n−1)·(k·d·cosθ + β) ) , n = 1…N k = 2π/λ (wavenumber), d = element spacing, β = phase step → AF is MAX when k·d·cosθ + β = 0 (all terms in phase) → so the beam points at the angle θ₀ where β = −k·d·cosθ₀

Don't memorize it — just read the last line: the beam points where the built‑in phase step cancels the geometric delay. Choosing β chooses the angle. That's the knob.

Section 5.2Reading a beam pattern — the anatomy

When you plot how much energy the array sends in each direction, you don't get a clean pencil. You get a main lobe (the beam you wanted), surrounded by smaller side lobes (leakage you didn't), separated by nulls (directions of near‑zero radiation). Every antenna datasheet is really just describing this shape. Learn to read it once:

angle → radiated power → HPBW (−3 dB beamwidth) main lobe side lobe side lobe null null
Figure 5.2 · The anatomy of a beam: one main lobe, leaky side lobes, nulls between
How to read this picture This is "how much energy goes in each direction," plotted left‑to‑right across angle. The tall central hump is the main lobe — your actual beam, aimed at the user. The little humps either side are side lobes: energy leaking in directions you didn't want, which is exactly what splashes interference into neighbouring cells. The deep dips where the curve touches the floor are nulls — directions of almost zero radiation (we'll weaponise those at the end of the chapter). The red dashed line marks the half‑power beamwidth (HPBW): the angular width of the main lobe measured 3 dB down from the peak — the single number that says "how wide is my beam." A good array has a tall narrow main lobe and side lobes pushed far down.

One number worth memorizing: for a plain uniform array, the first side lobes sit about −13 dB below the main lobe — that's a fixed fact of the math, not a design choice. If you want them lower (to protect neighbours), you taper the array (feed the edge elements less power than the centre). Tapering buys lower side lobes at the cost of a slightly wider main lobe — a classic engineering trade you'll see in every real deployment.

Section 5.3More elements → narrower, stronger beam

Here's the payoff that links straight back to Chapter 4's "8T → 128T" ladder. Two simple rules govern what adding elements buys you:

  • Array gain ≈ 10·log₁₀(N) dB. Double the elements, gain up 3 dB. This is the coherent‑combining gain — N elements all pointing energy the same way.
  • Beamwidth ∝ 1/N. More elements → a narrower main lobe. A useful rule of thumb for a half‑wavelength‑spaced array: HPBW ≈ 102° / N.
Elements NArray gain (≈10·log N)Beamwidth (≈102°/N)Feel
4~6 dB~25°wide, sector-ish
16~12 dB~6.4°focused
64~18 dB~1.6°sharp pencil
256~24 dB~0.4°laser (FR2)
same power, more elements → narrower & taller main lobe N = 4 · wide N = 16 · focused N = 64 · pencil gain rises ~3 dB per doubling of N; width shrinks ~1/N
Figure 5.3 · The more elements you combine, the tighter and taller the beam
How to read this picture Three main lobes, same transmit power, different element counts. With N = 4 (light) the lobe is short and wide — barely a beam. At N = 16 it's taller and tighter. At N = 64 (dark) it's a tall, narrow pencil. Two things improved at once: the lobe got taller (that's array gain, ~3 dB per doubling) and narrower (that's beamwidth shrinking like 1/N). This is precisely why the 64T64R radio from Chapter 4 reaches further and interferes less than an 8T8R — and why FR2 mmWave arrays, with hundreds of elements, throw needle‑thin beams.

Section 5.4Why spacing must be ≈ 0.5λ — grating lobes

You might think: if I want a bigger array, just spread the elements further apart. Don't. There's a trap. If you space elements more than about half a wavelength apart, the array develops grating lobes — full‑strength copies of the main beam pointing in completely wrong directions. The array literally can't tell the intended angle from the grating angle, because at that spacing the waves line up in phase in more than one direction at once.

d ≈ 0.5λ → one clean beam all energy in the wanted direction d > λ → grating lobe (copy!) a second full-strength beam goes the wrong way
Figure 5.4 · Space the elements too far apart and the beam clones itself in the wrong direction
How to read this picture Both arrays are steering to the same upper‑right direction. On the left, elements spaced at ~0.5λ produce one clean beam — all the energy goes where you asked. On the right, the elements are spaced too far apart (more than a wavelength), and a grating lobe appears: a second, full‑strength copy of the beam shooting off in a completely wrong direction (the red lobe). That stray beam wastes power and blasts interference somewhere you never intended. This is the hard physical reason panels pack their elements at roughly half a wavelength — close enough to keep the clone away, far enough to still form a sharp beam.

Section 5.5Null steering — aiming silence at an interferer

Here's the elegant flip side of beamforming. The same phase control that builds a peak in one direction can build a null — a direction of near‑zero radiation — in another. So you don't only point your main lobe at the user you want; you can simultaneously steer a null at the interferer (or, on receive, at an interfering source) you want to ignore. This is how MU‑MIMO keeps paired users from drowning each other: each user's beam puts a null toward the others.

point the lobe at your UE — and a null at the interferer array wanted UE ✕ null steered here interferer Same array, same instant: a peak toward the UE, a deliberate zero toward the interferer.
Figure 5.5 · One array, two jobs at once: a peak for the friend, a null for the foe
How to read this picture The array on the left does two things in the same instant. The filled blue lobe is the main beam aimed at the user you're serving — strong signal where you want it. The red dashed line with the ✕ is a steered null — a direction the array deliberately sends almost nothing — pointed straight at the interferer. By choosing the element phases cleverly, you sculpt the pattern to peak one way and vanish another. This is the secret sauce of MU‑MIMO: when the cell serves several users on the same time/frequency, each user's beam carries nulls toward the other users, so they don't jam each other. Beamforming isn't just "aim the energy" — it's "aim the energy and aim the quiet."

One last bridge to NR: in practice the gNB doesn't compute arbitrary phases on the fly for every beam. It picks from a codebook of pre‑defined beams — and those standardized beams are essentially DFT beams, a neat set of array‑factor patterns pointing at evenly spaced angles (the "grid of beams"). When you see PMI and the NR Type I codebook in Chapter 20, remember: each codebook entry is just one array factor from this chapter, pre‑baked. The math you just learned is the codebook.

Section 5.6Where the rules live (3GPP map)

Concept3GPP home
Per-element radiation pattern (≈65° HPBW, ~8 dBi), array modelTR 38.901 §7.3
DFT / codebook beams (the "grid of beams" = array factors)TS 38.214 §5.2.2 (Type I/II codebooks)
SSB beam set, beam sweeping directionsTS 38.213 (initial access), TS 38.300
AAS RF / OTA, EIRP, side-lobe & unwanted-emission limitsTS 38.104, TR 37.842/37.843
The bridge to remember
A codebook beam (what a PMI selects) is just a chosen array factor: a main lobe pointed at one grid angle, with its side lobes and nulls coming along for the ride. Beam gain ≈ 10·log₁₀(N), beam width ≈ 102°/N, side lobes ≈ −13 dB (uniform) unless tapered. Everything the standard does with beams is built on this one equation.

Section 5.7How the beam pattern shows up in your KPIs

Pattern propertyKPI fingerprintMeaning
Narrow main lobe (large N)high peak RSRP/SINR on-beam; sharp RSRP drop off-beamstrong but pointing-sensitive — needs good beam management
High side lobeselevated neighbour-cell interference; lower SINR cell-wideconsider tapering / better codebook
Grating lobe (bad spacing/calibration)strong signal/interference at an unexpected azimuthhardware/array geometry problem
Good null steeringhigh MU-MIMO pairing with low inter-user interferencebeams isolating paired users
Beam too narrow for mobilityfrequent beam switches, beam-failure events on fast UEsbeamwidth vs Doppler mismatch (Ch.31)

Section 5.8A field case the pattern explains

"A cell is interfering with a neighbour two sectors away, in a direction it shouldn't even illuminate." Strong interference at an azimuth far outside the intended main‑lobe direction is the classic signature of either a grating lobe (element spacing/calibration error letting a beam clone appear) or high side lobes (an un‑tapered or mis‑weighted array spraying energy off‑axis). Diagnosis: check the offending azimuth against the served beam direction — if the interference sits at the predicted grating angle for the band and spacing, it's a grating lobe (hardware/geometry); if it's a broad low‑level splash, it's side‑lobe leakage (fix with tapering or a cleaner codebook). Either way, the beam pattern, not the power level, is the culprit. (We tie beam‑level interference into optimization in Chapter 37.)

Section 5.9Mini-lab: plot your first beam

  1. In Python, build the array factor for an N‑element uniform linear array at 0.5λ spacing: AF(θ) = Σ exp(j(n)(k d cosθ + β)). Plot |AF| vs θ for N = 4, 16, 64. Watch the main lobe narrow and the gain rise — Figure 5.3 from your own code.
  2. Read off the −3 dB beamwidth for each N and compare to the 102°/N rule of thumb.
  3. Set the spacing to 1.0λ and re‑plot N = 16. Watch a grating lobe appear — Figure 5.4, live.
  4. Apply a Taylor or Hamming taper to the element weights and re‑plot. Watch the side lobes drop below −13 dB and the main lobe widen — the taper trade‑off.
  5. Add a null constraint at a chosen angle (set AF = 0 there) and solve for weights — you've just done null steering (Figure 5.5).

Section 5.10If they put you on the spot

More elements → more gain, narrower beam number of elements N → gain = 10·log₁₀N (dB) beamwidth ≈ 102/N (°) N=4: 6 dB, ~25°N=64: 18 dB, ~1.6°
Figure 5.6 · Array gain rises and beamwidth narrows with element count
How to read this picture Two quantities move together as you add elements. Array gain (blue) climbs as 10·log10N — every doubling of elements adds 3 dB of coherent gain. Beamwidth (red) shrinks roughly as 102/N degrees — the beam gets sharper. That pairing is the double edge of massive MIMO: a 64-element array gives a glorious 18 dB of gain but a 1.6° pencil beam that must be pointed precisely, which is exactly why beam management (Part Eight) exists.
Advanced Deep-Dive  ·  Array factor, coherent gain and beamwidth of a ULA

For a uniform linear array of N elements spaced d apart, the array factor sums the per-element phases; steered correctly, all N contributions add in phase, giving a coherent power gain of N (i.e. 10·log10N dB) over a single element. The flip side is angular resolution: the half-power beamwidth narrows as ≈0.886·λ/(N·d) radians. Element spacing matters — d > λ/2 makes the phase ambiguity wrap and produces grating lobes (false beams), so half-wavelength spacing is the standard compromise between aperture and lobe-free scanning.

array factor AF(θ) = Σ exp( j·2π/λ · n·d·sinθ ) coherent gain G = 10·log10(N) dB HPBW ≈ 0.886 · λ / (N·d) rad (d = λ/2) grating lobe appears if d > λ/2 # keep d = λ/2
Worked example A 64-element ULA at half-wavelength spacing: gain = 10·log10(64) = 18.1 dB; HPBW ≈ 0.886·λ/(64·λ/2) = 0.886/32 ≈ 0.0277 rad ≈ 1.6°. That razor beam delivers the link budget for FR2 but tolerates almost no pointing error — the trade the next chapters manage.
"How does a phased array steer without moving?"
By applying a progressive phase shift across the elements. The beam points in the direction where the built‑in phase step exactly cancels the geometric path delay, so all elements add in phase there. Change the phase step and the beam angle changes — electronically, instantly.
"What sets beamwidth and array gain?"
Both scale with element count N. Array gain ≈ 10·log₁₀(N) dB (3 dB per doubling); beamwidth ∝ 1/N (rule of thumb ≈102°/N for 0.5λ spacing). More elements = stronger and narrower beam.
"Why is element spacing ~0.5λ?"
Below ~0.5λ the elements are too correlated and you lose effective aperture; above ~0.5λ (especially >λ) grating lobes appear — full‑strength beam copies in wrong directions. Half a wavelength is the sweet spot.
"What are side lobes and how do you reduce them?"
Side lobes are secondary peaks that leak energy off the main beam (≈−13 dB for a uniform array) and cause interference. You reduce them by tapering the element amplitudes (feeding edges less), at the cost of a slightly wider main lobe.
"What is null steering and where is it used?"
Shaping the pattern to put a near‑zero (null) in a chosen direction — typically toward an interferer. It's central to MU‑MIMO: each paired user's beam nulls the others so they don't interfere on the same time/frequency.

Section 5.11What to carry out of this chapter

  • A beam is made by timing: progressive phase shifts across elements steer it electronically — no moving parts.
  • The array factor peaks where the phase step cancels the geometric delay; that's where the beam points.
  • A pattern has a main lobe, leaky side lobes (≈−13 dB uniform), and nulls; the HPBW is its width 3 dB down.
  • Array gain ≈ 10·log₁₀(N) dB and beamwidth ∝ 1/N — more elements, stronger and narrower.
  • Keep spacing ≈ 0.5λ or you get grating lobes (beam clones in wrong directions); taper to suppress side lobes at the cost of width.
  • Null steering aims silence at interferers — the engine of MU‑MIMO. NR codebook/DFT beams are just pre‑baked array factors.

In closing5.12 · The grid woke up

We started this chapter with an inert grid of metal and ended with a fully articulate beam — one that points where we choose, with a width and a gain we can predict from a single number N, surrounded by side lobes we can tame and nulls we can aim. The whole thing runs on timing: nudge the phase of each element and the energy obediently herds into the direction you want and falls silent in the directions you don't. That's the array factor, and it's the bridge between the hardware of Chapter 4 and the beam management that will dominate Part 8.

Notice how much of the book just clicked together. The "flashlight" from Chapter 1 is the main lobe. The "interference into neighbours" we kept warning about is side‑lobe and grating‑lobe leakage. The MU‑MIMO that needs users to "not jam each other" works because each beam carries nulls toward the others. And the codebook beams you'll feed back as PMI in Part 7 are nothing more exotic than the array factors we plotted here. The math earns its keep again.

So far every beam we've drawn has lived in a flat, side‑on world — left, right, up a little. Real cells are three‑dimensional: users are spread across azimuth and elevation, on the street and on the 40th floor. In Chapter 6 we add the missing dimension: 2D and 3D beamforming — steering in both azimuth and elevation, full‑dimension MIMO, and the vertical beams that let one panel serve a skyscraper floor by floor.

— end of Chapter 5 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Two — Antenna Systems and Array Theory
CHAPTER SIX

2D and 3D
Beamforming

"The old arrays could point left and right. The city needed them to point up."

Here's a problem that embarrassed the industry for years, and you can see it from any city street: look up at a glass tower at night and count the lit windows. Forty floors of people, all wanting data — and the cell on the rooftop across the road, with its beautiful steerable beam from Chapter 5, can serve almost none of them well. Why? Because that beam could only sweep left and right. It lived in a flat, ground‑level world. The people on floor 35 were directly above its reach, and no amount of left‑right steering could lift the beam to them.

For a decade we papered over this with a crude hack: mechanical downtilt. You'd physically tilt the whole antenna down a few degrees to cover the street, accept that it sprayed wastefully into the sky, and shrug about the high floors. One fixed tilt for everyone — the ground‑floor café and the penthouse got the same compromise beam. It worked, sort of, in a world of two‑storey suburbs. It failed completely in a world of skyscrapers.

This chapter is about the fix: giving the beam a second dimension. Once a panel can steer in elevation (up and down) as well as azimuth (left and right), everything changes. One panel can drop a beam on the café and lift another to floor 35 at the same time. It can split a tall building into vertical zones and serve each independently. This is 2D beamforming, and when you push it to its full power across a planar array it becomes Full‑Dimension MIMO (FD‑MIMO) — the technology that finally made dense, vertical cities work. Let's teach the beam to look up.

Before we dive inWhat you'll walk away knowing

  • Define azimuth (horizontal angle) and elevation / zenith (vertical angle), and steer a beam in both.
  • Explain why a 1D array steers in only one plane and a 2D planar array steers in both.
  • Describe the grid of beams covering a sector in azimuth × elevation (and how SSB beams tile it).
  • Explain vertical beamforming and vertical sectorization — serving a high‑rise floor‑by‑floor and reusing resources by elevation.
  • Explain FD‑MIMO: a 2D array forming independently steerable beams in both planes, and the 2D DFT codebook (N1·N2 / O1·O2).
  • Connect it to 3GPP: FD‑MIMO's origin (LTE Rel‑13, TR 36.897) and NR's native 2D codebooks (TS 38.214).

Section 6.1Two angles, not one — azimuth and elevation

Everything in Chapter 5 lived on a single line: the beam swung along one angle. Real space needs two. We describe a direction from the panel with a pair of angles:

  • Azimuth (φ) — the horizontal angle, left‑to‑right across the sector. This is the one old arrays could already steer.
  • Elevation — the vertical angle, up‑and‑down. (3GPP measures it as the zenith angle θ, taken down from straight up, but "elevation" is how everyone talks about it on site.)

A direction in the real world is the combination (φ, θ) — both at once. A beam that can only set φ is stuck at one height; a beam that can set both can be aimed anywhere in the sector's volume.

panel azimuth φ (left ↔ right) elevation θ (up ↕ down) beam at (φ, θ) A real direction needs both angles — azimuth AND elevation.
Figure 6.1 · A direction in the real world is two angles: azimuth (φ) and elevation (θ)
How to read this picture The panel sits at the left. The light horizontal fan is azimuth (φ) — sweeping the beam left and right across the sector, the only motion Chapter 5's single‑line array could do. The darker vertical fan is elevation (θ) — tilting the beam up and down. The bold line is a beam aimed at a specific (φ, θ): a particular left‑right and up‑down direction at once. The whole leap of this chapter is going from controlling one of these angles to controlling both — because a person on the 35th floor and a person on the pavement are at the same azimuth but completely different elevations.

Section 6.2From a 1D row to a 2D planar array

Why couldn't old arrays steer in elevation? Because of their shape. Recall from Chapter 5 that you steer a beam by phasing elements along a line. A row of elements laid out horizontally can only phase left‑to‑right, so it only steers in azimuth. To steer up and down, you need elements stacked vertically too — and phasing along that vertical line steers in elevation. Put both together and you have a 2D planar array: M rows × N columns (exactly the geometry from Chapter 4). The columns give you azimuth control; the rows give you elevation control. Steer along both axes independently and you can point the beam anywhere.

1D ARRAY (a row) steers azimuth only stuck at one height (one elevation) 2D PLANAR ARRAY (a grid) upmiddown steers azimuth AND elevation rows → elevation · columns → azimuth
Figure 6.2 · A row steers in one plane; a grid steers in two
How to read this picture On the left, a single horizontal row of elements. Phasing along that row only swings the beam left‑and‑right — it's locked to one height (the red caption). That's the old antenna that couldn't reach the upper floors. On the right, a grid — rows stacked on top of columns. Now you can phase along the columns to steer azimuth and along the rows to steer elevation, independently, so the same panel throws beams up, level, and down at will. The shape of the array literally determines which directions it can point: add a vertical dimension to the metal, gain a vertical dimension in the beam.

Section 6.3The grid of beams — tiling a sector in 2D

Once the panel can aim anywhere in (φ, θ), the natural way to cover a sector is to define a grid of beams (GoB): a fixed set of beams pointing at evenly spaced azimuth × elevation directions, tiling the whole sector like a checkerboard of spotlights. The cell sweeps through them (we'll see exactly how with SSB beam sweeping in Chapter 22), each UE finds the beam it sits in, and reports it back. A 1D array could only make a horizontal row of beams; a 2D array makes a full 2D grid — rows and columns of beam footprints covering both the near pavement and the high floors.

panel azimuth (columns of beams) → elevation (rows) → UE here A 2D array tiles the sector with a full grid of beams — high, mid, and low; left to right.
Figure 6.3 · The grid of beams: a 2D checkerboard of spotlights covering the whole sector
How to read this picture The panel projects a whole grid of beams into the sector — here 4 across (azimuth) by 3 high (elevation), twelve beam "spotlights" in total. Columns of spots cover left‑to‑right; rows cover low‑to‑high. The cell lights these in turn, each UE notices which spot it's sitting in (the highlighted one says "UE here") and reports that beam. A 1‑D array could only give you the middle row of this grid — one height. The 2‑D array fills the whole board, so a user on the ground and a user on the 30th floor each get their own well‑aimed beam. This grid is exactly what SSB beam sweeping (Chapter 22) walks through.

Section 6.4Vertical beamforming — serving the skyscraper

Now the use case that justifies the whole chapter. With elevation control, a single panel can aim distinct beams at distinct heights of a tall building — a beam for the lower floors, one for the middle, one for the top — each at its own tilt. Compare that to the old single‑downtilt antenna, which picks one tilt and lives with it: aim it at the street and the top floors get a weak, grazing side‑lobe; aim it up and you lose the pavement.

gNB 40-storey tower beam → upper floors beam → mid floors beam → lower floors old single downtilt covers the street, misses the top
Figure 6.4 · One panel, three elevation beams — the whole tower served, floor band by floor band
How to read this picture The gNB is on the left, the 40‑storey tower on the right. With elevation steering, the single panel sends three separate beams at three tilts — one lifted to the upper floors, one to the middle, one down to the lower floors and street. Every height gets a beam aimed right at it. The red dashed line is the old way: one fixed downtilt that covers the pavement and leaves the top of the building in a weak grazing fringe (the red caption). This single capability — pointing up — is why FD‑MIMO was invented, and why dense vertical cities became serviceable. The same trick also lets you reuse spectrum by height: different floors, different beams, same time and frequency.

That last point deserves its own name: vertical sectorization. Just as we long ago split a site into three horizontal sectors, a 2D array can split a single sector into vertical zones — say an "inner/low" beam and an "outer/high" beam — and schedule them as semi‑independent sub‑cells, reusing the same resources in each. It's cell‑splitting in the vertical dimension, and it multiplies capacity in exactly the high‑rise environments where you need it most.

Section 6.5Full-Dimension MIMO — the 2D codebook

Put it all together and you get Full‑Dimension MIMO (FD‑MIMO): a 2D planar array that forms beams steerable in both azimuth and elevation, with enough ports to do it per‑user and to run MU‑MIMO across the whole volume of the sector. The name is 3GPP's, and it arrived with LTE Release 13 (study item TR 36.897) — the bridge from "MIMO" to the massive, 3D‑beamforming systems that NR made standard.

The math is a beautiful re‑use of Chapter 5. A 2D beam is just the product of a horizontal array factor (a DFT beam across the N1 columns) and a vertical array factor (a DFT beam across the N2 rows). NR's Type I/II codebooks are built exactly this way: the precoder is a Kronecker product of a horizontal DFT vector and a vertical DFT vector, with oversampling factors O1 (azimuth) and O2 (elevation) deciding how finely the grid of beams is spaced. So a 2D codebook beam = (one azimuth array factor) × (one elevation array factor). Everything you learned about a single beam pattern in Chapter 5 now applies twice, once per plane.

azimuth beam DFT across N1 columns points left/right × elevation beam DFT across N2 rows points up/down = 3D beam (φ, θ) aimed in both planes
Figure 6.5 · An FD-MIMO beam = (azimuth array factor) × (elevation array factor)
How to read this picture Read it as a multiplication. On the left, a horizontal DFT beam across the array's columns (N1) decides the azimuth — left/right. In the middle, a vertical DFT beam across the rows (N2) decides the elevation — up/down. Multiply them (the Kronecker product) and you get the 3D beam on the right, aimed at a specific (φ, θ). That's literally how NR's 2D codebooks are constructed, with oversampling factors O1 and O2 setting how finely the grid of beams is spaced. The practical takeaway: 3D beamforming isn't new math — it's Chapter 5's array factor applied once per plane and combined. Two simple beams make one precise 3D beam.

Section 6.6Where the rules live (3GPP map)

Concept3GPP home
FD-MIMO origin / 3D channel & elevation studyTR 36.897 (LTE Rel-13), TR 36.873 (3D channel)
2D antenna array model (M, N, elevation/azimuth)TR 38.901 §7.3
2D codebooks — N1·N2 ports, O1·O2 oversampling, Kronecker DFTTS 38.214 §5.2.2
Beam sweeping / SSB beams across the gridTS 38.213, TS 38.300
AAS elevation/azimuth RF, vertical sectorization supportTS 38.104
The bridge to remember
NR's codebook describes a beam by a horizontal index (azimuth, over N1·O1 directions) and a vertical index (elevation, over N2·O2 directions). PMI in a 2D codebook is choosing one cell of the grid of beams. So "3D beamforming" in the standard is just two 1D selections — azimuth × elevation — combined.

Section 6.7How 2D/3D beamforming shows up in your KPIs

CapabilityKPI fingerprintMeaning
Elevation steering activegood RSRP/SINR on high floors, not just street levelvertical coverage working
Vertical sectorization onhigher cell capacity / more MU-MIMO pairs in high-risereusing resources by height
Elevation grid too coarse (small O2)RSRP dips between floor bands; users at beam edgesfiner elevation oversampling needed
No elevation control (1D legacy)upper-floor users stuck on weak side-lobes; complaints high in towersneeds FD-MIMO panel

Section 6.8A field case 3D beamforming explains

"Street-level is great, but the top ten floors of an office tower have terrible throughput from a strong-RSRP cell." Strong RSRP but poor performance high up, with a panel that's nominally massive MIMO, points to elevation not being exploited: either the radio is configured 1D (azimuth‑only beams, all at the street tilt) or the vertical oversampling O2 is too coarse so upper floors sit on beam edges/side‑lobes. The fix is to enable 2D/FD‑MIMO beamforming and a finer elevation grid (and consider vertical sectorization to give the upper floors their own beam/zone). The signal was always reaching the building; it just wasn't being aimed up. (We'll fold high‑rise into cell‑edge and coverage optimization in Chapter 37.)

Section 6.9Mini-lab: build a 2D beam

  1. Build a horizontal DFT beam over N1 = 8 columns and a vertical DFT beam over N2 = 4 rows (reuse the array factor from Chapter 5's lab).
  2. Take their Kronecker product to form the 2D precoder; plot the resulting beam footprint in (azimuth, elevation). There's Figure 6.5.
  3. Sweep the elevation index across N2·O2 directions (try O2 = 1, then 4) and watch the elevation grid get finer — the difference between hitting every floor band and skipping some.
  4. Model a 40‑floor building as a column of UEs at increasing elevation; assign each to its best 2D beam and confirm every floor gets a strong beam — vertical sectorization in miniature.

Section 6.10If they put you on the spot

2D codebook geometry: (N1,N2) ports, (O1,O2) beam oversampling port grid (N1 horiz × N2 vert) e.g. N1=4, N2=2 → 8 ports (×2 pol = 16) beam grid (oversampled ×O1,O2) O1,O2 = 4 → many candidate beam directions per port grid
Figure 6.6 · The (N1,N2,O1,O2) geometry behind the 2D codebook
How to read this picture NR's 2D codebook is parameterised by four numbers. (N1, N2) is the port grid — how many ports across (azimuth) and up (elevation); here 4×2 = 8 ports, doubled to 16 with cross-polarisation. (O1, O2) is the oversampling — how finely the codebook subdivides angle between ports, giving many candidate beam directions (red dots) per coarse port grid. Together they decide how precisely the UE can point a reported beam in both azimuth and elevation — the essence of 3D/FD-MIMO.
Advanced Deep-Dive  ·  2D DFT codebook configuration (TS 38.214 §5.2.2.2)

NR Type I/II codebooks are built from a Kronecker product of two oversampled DFT beam sets — one for azimuth, one for elevation. The RRC parameter n1-n2 fixes the antenna-port layout (N1 in the first dimension, N2 in the second) and implicitly the oversampling factors O1, O2 (typically 4). The total number of CSI-RS ports is P = 2·N1·N2 (the ×2 is the two polarisations). The PMI then selects an azimuth beam index i1,1 ∈ [0, O1N1) and an elevation index i1,2 ∈ [0, O2N2), plus a co-phasing term across polarisations — that 3-part PMI is what makes the beam steerable in two planes.

ports P = 2 · N1 · N2 # ×2 = dual polarisation azimuth idx i_1,1 ∈ [0, O1·N1) O1 = 4 elev idx i_1,2 ∈ [0, O2·N2) O2 = 4 beam v = v_azimuth ⊗ v_elevation # Kronecker (2D DFT)
Worked example Config N1=4, N2=2 → P = 2·4·2 = 16 CSI-RS ports. With O1=O2=4 the codebook offers 4·4 = 16 azimuth × 4·2 = 8 elevation = 128 candidate beam directions the PMI can point at, far finer than the 8 physical port positions.
"Difference between azimuth and elevation beamforming?"
Azimuth steers the beam left/right (horizontal angle φ); elevation steers it up/down (vertical/zenith angle θ). Azimuth needs phasing across columns; elevation needs phasing across rows. A 2D planar array does both, so it can aim at any (φ, θ).
"What is FD-MIMO and why did it appear?"
Full‑Dimension MIMO: a 2D planar array forming beams steerable in both azimuth and elevation, per‑user and for MU‑MIMO. It appeared (LTE Rel‑13, TR 36.897) to serve dense vertical environments — high‑rise buildings — where azimuth‑only arrays and a single mechanical downtilt couldn't reach upper floors.
"How is a 2D codebook beam constructed?"
As the Kronecker product of a horizontal DFT beam (azimuth, over N1 columns) and a vertical DFT beam (elevation, over N2 rows), with oversampling O1/O2 setting grid fineness. PMI selects one cell of that 2D grid of beams.
"What is vertical sectorization?"
Splitting a single sector into vertical zones (e.g., low/high elevation beams) treated as semi‑independent sub‑cells that reuse the same time/frequency — cell‑splitting in the vertical dimension, boosting capacity in high‑rise areas.

Section 6.11What to carry out of this chapter

  • A real direction is two angles: azimuth (φ) left/right and elevation (θ) up/down. Old arrays steered only φ.
  • Steering a plane needs elements along that plane: a 2D planar array (rows × columns) steers both — rows do elevation, columns do azimuth.
  • A 2D array tiles the sector with a grid of beams (azimuth × elevation), the basis of SSB beam sweeping.
  • Vertical beamforming serves a high‑rise floor‑by‑floor; vertical sectorization reuses resources by height — the FD‑MIMO killer app.
  • FD‑MIMO (LTE Rel‑13, TR 36.897; native in NR) builds a 3D beam as (azimuth DFT) × (elevation DFT) — Chapter 5's array factor, once per plane.

In closing6.12 · The beam learned to look up

We began under a glass tower full of customers the old cell couldn't reach, trapped by an antenna that could only sweep left and right and a single mechanical downtilt that served everyone badly. We end with a panel that aims in two angles at once — dropping a beam on the café and lifting another to the 35th floor in the same instant, tiling the whole sector with a grid of beams, even splitting the tower into vertical zones to reuse spectrum by height. The fix was conceptually small — add a vertical dimension to the array — and operationally enormous.

And once again the new capability was just old math, reused. A 3D beam is a horizontal array factor multiplied by a vertical one; a 2D codebook is two DFT selections combined; the grid of beams is the array factor's main lobe stamped across azimuth and elevation. Chapters 4 and 5 built the panel and taught it to point along a line; this chapter simply let it point along two lines at once, and called the result Full‑Dimension MIMO.

That completes Part 2 — the antenna systems and array theory that turn electricity into a precisely aimed beam. We now have the full physical story: the channel (Part 1) and the antenna that fights through it (Part 2). In Part 3 we step back to see how all of this actually arrived in commercial networks, starting with Chapter 7 — LTE MIMO Basics: transmission modes, CRS‑based MIMO, and the rank/PMI machinery that was the proving ground for everything 5G later made native.

— end of Chapter 6 · end of Part 2 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Three — LTE MIMO and Evolution Toward Massive MIMO
CHAPTER SEVEN

LTE MIMO Basics

"Everything 5G made native, LTE first made awkward. That awkwardness is the most instructive thing in MIMO."

It's tempting, after six chapters of massive MIMO and 3D beams, to treat LTE as the boring old grandparent we'd rather skip. Don't skip it. LTE is where every idea in this book was tried first — and watching how LTE struggled tells you exactly why 5G is built the way it is. If you only ever learn the clean 5G version, you'll never understand the design decisions; you'll just memorise them. Learn LTE's awkward version and the 5G choices stop being arbitrary and start being inevitable.

Here's the single thread that runs through this whole chapter, and it's worth holding from the first page: LTE built its entire MIMO system on top of one always‑on pilot signal — the Cell‑specific Reference Signal (CRS) — and that one decision shaped, enabled, and ultimately limited everything. CRS made the early modes simple and robust. It also made the system rigid, overhead‑heavy, and impossible to scale past a handful of antennas. The story of LTE MIMO is the story of engineers cleverly working around CRS — adding new pilots, new modes, new feedback — until they'd effectively designed the CRS‑free system that became 5G NR.

So in this chapter we'll meet the CRS and see why it was both foundation and cage. We'll walk the famous transmission‑mode menu — TM1 through TM10 — and see each one as a different way to spend the three gifts from Chapter 1 (diversity, multiplexing, beamforming). We'll watch transmit diversity, closed‑loop spatial multiplexing with its PMI/RI/CQI feedback loop, and the late beamforming modes that quietly abandoned CRS for the demodulation pilots 5G would adopt wholesale. By the end, the leap to NR will feel less like a revolution and more like the obvious next step LTE was already taking.

Before we dive inWhat you'll walk away knowing

  • Explain what CRS is, what it's used for (demodulation, measurement, channel estimation), and why it's "always on, cell‑wide."
  • Walk the transmission modes TM1–TM10 and classify each by the gift it exploits.
  • Explain transmit diversity (SFBC / Alamouti) — diversity with no channel knowledge at the transmitter.
  • Explain open‑loop vs closed‑loop spatial multiplexing (TM3/TM4) and the PMI / RI / CQI feedback loop.
  • Explain the LTE beamforming modes (TM7/8/9) and how they introduced UE‑specific DM‑RS and CSI‑RS — the seeds of NR.
  • Explain the CRS overhead ceiling: why CRS couldn't scale past 4 ports, and how that drove the NR redesign.

Section 7.1The CRS — one pilot to rule them all

Start with the foundation. LTE continuously broadcasts a known pattern of pilot symbols called the Cell‑specific Reference Signal, scattered across the resource grid on antenna ports 0–3. "Cell‑specific" is the key word: it's the same for every UE in the cell, transmitted all the time, whether anyone's listening or not. Every phone in the cell uses this one signal for almost everything:

  • Channel estimation & demodulation — to decode data in the early modes (TM1–TM6).
  • Measurement — RSRP and RSRQ are measured on CRS.
  • Feedback — the UE measures CRS to compute the CQI/PMI/RI it reports back.

It's elegant: one signal, every job, every UE. But look at the resource grid and you can already see the seed of the problem — those pilots take up real estate, and the more antenna ports you add, the more of the grid you must sacrifice to CRS.

LTE resource grid — CRS pilots scattered through it → time (OFDM symbols) ↑ frequency (subcarriers) CRS port 0 CRS port 1 data REs always on,whether or notanyone listens
Figure 7.1 · CRS: a known pilot pattern sprayed across the whole grid, all the time
How to read this picture The grid is LTE's resource grid — time runs left‑to‑right (OFDM symbols), frequency bottom‑to‑top (subcarriers). The coloured squares are CRS pilots: dark blue for antenna port 0, light blue for port 1, scattered at fixed positions the UE knows in advance. Everything else is data. Notice three things. First, the pilots are everywhere — spread across the whole band so every UE, anywhere, can measure the channel. Second, they're always transmitted, even with no users (the side note) — pure overhead you pay continuously. Third — and this is the time‑bomb — each extra antenna port needs its own set of these squares, eating more data REs. Two ports is fine; four is costly; eight would be ruinous. That single fact shapes the rest of the chapter.

Section 7.2The transmission-mode menu (TM1–TM10)

LTE doesn't have "MIMO on/off." It has a menu of transmission modes, and the network configures each UE into one via RRC. Each mode is a recipe for spending the three gifts from Chapter 1. Here's the whole menu, read as exactly that:

TM1–TM10 · each mode spends a different gift MODEWHAT IT DOESGIFT TM1single antenna (port 0)none TM2transmit diversity (SFBC)diversity TM3open-loop spatial multiplexingmultiplexing TM4closed-loop spatial mux (PMI)multiplexing TM5MU-MIMO (early)multi-user TM6closed-loop rank-1 precodingbeamforming TM7single-layer beamforming (port 5)beamforming TM8dual-layer beamforming (DM-RS 7/8)beam+mux TM9up to 8 layers (DM-RS + CSI-RS)mux+beam TM10TM9 + CoMP (multi-cell)mux+coord
Figure 7.2 · The LTE transmission-mode menu, sorted by which gift it spends
How to read this picture Read each row as "mode → what it does → which of Chapter 1's gifts it spends." The early modes are simple: TM1 is plain single‑antenna; TM2 buys diversity (reliability). The middle modes (TM3/TM4) buy multiplexing (throughput) — open‑loop without feedback, closed‑loop with PMI feedback. The later modes (TM6–TM10) buy beamforming, and notice the shift in the right‑hand column: TM7 onward stops relying on CRS for demodulation and starts using UE‑specific pilots (port 5, then DM‑RS ports 7/8, then CSI‑RS in TM9). That migration — from cell‑wide CRS toward per‑user pilots — is the road to 5G, happening inside LTE one mode at a time.

Section 7.3Transmit diversity — TM2 and the Alamouti trick

The workhorse reliability mode is TM2, built on Space‑Frequency Block Coding (SFBC) — LTE's flavour of the famous Alamouti scheme. The genius of Alamouti is that it delivers full transmit diversity without the transmitter knowing the channel at all. You take two symbols, encode them across two antennas and two subcarriers in a clever conjugate pattern, and the receiver — using only its CRS channel estimates — can always recover both symbols with diversity gain, no matter how the two paths faded. It's the open‑loop safety net: no feedback required, works at the cell edge and at speed, always available.

SFBC / Alamouti — diversity with no feedback Ant 1 Ant 2 s₁−s₂* s₂s₁* subcarrier f₁ f₂ path 1 (may fade) path 2 (independent) UE recovers s₁, s₂with diversity Two symbols, two antennas, two subcarriers — the receiver always wins, even with no channel feedback.
Figure 7.3 · Transmit diversity: encode across antennas so the receiver can't lose
How to read this picture Two data symbols, s₁ and s₂, are sent from two antennas across two subcarriers in the special Alamouti pattern (note the conjugates and sign flip — that's the trick). They travel two independent fading paths to the UE. Because of the clever coding, the receiver can algebraically combine what it hears and always recover both symbols with full diversity — even if one path was deep in a fade — and it needs no feedback from itself to the transmitter to do it. This is TM2: not fast (it's sending the same two symbols, not new layers) but bulletproof, which is why it's the fallback for cell‑edge and high‑mobility users. It's Chapter 1's "diversity gift" in concrete LTE form.

Section 7.4Spatial multiplexing & the PMI/RI/CQI loop (TM3/TM4)

For throughput, LTE multiplexes layers. TM3 (open‑loop) sends multiple layers with a fixed, cycling precoder and large‑delay CDD — good for fast UEs where feedback would be stale. TM4 (closed‑loop) is the clever one: the UE measures CRS, decides how many layers the channel can support and which precoder it prefers, and tells the gNB via three feedback numbers you now know intimately from Chapter 3:

  • RI (Rank Indicator) — how many layers I can take.
  • PMI (Precoding Matrix Indicator) — which precoder from the codebook to use (LTE's small 2‑Tx/4‑Tx codebooks).
  • CQI (Channel Quality Indicator) — what modulation/coding I can decode.

The gNB takes the recommendation, applies the chosen precoder W, and transmits. It's the closed loop that, in Chapter 3's language, approximates the channel's best input rotation V — except in LTE the UE still demodulates using CRS, so the precoder must come from a small standardized codebook the UE can reason about.

gNBprecoder W layers precoded data (downlink) UEmeasures CRS feedback: RI · PMI · CQI (uplink) UE recommends rank, precoder & MCS → gNB precodes accordingly. The closed loop.
Figure 7.4 · Closed-loop spatial multiplexing: the UE tells the gNB how to point, the gNB obeys
How to read this picture Two arrows make a loop. The blue arrow (downlink) is the gNB sending precoded data — it has applied a precoder W to the layers before transmitting. The red arrow (uplink) is the UE's feedback: having measured the always‑on CRS, it reports RI (how many layers), PMI (which codebook precoder), and CQI (which modulation it can handle). The gNB uses that recommendation to choose W for the next transmission — close the loop, repeat. This is TM4, and it's the direct ancestor of the NR CSI framework in Part 7. The one LTE limitation hiding here: because the UE demodulates with cell‑wide CRS, the precoder must be a coarse entry from a small standardized codebook — the UE can't follow an arbitrary precoder. NR fixes exactly this by demodulating with per‑user DM‑RS.

Section 7.5Rank, PMI, and the CRS ceiling

LTE in the field overwhelmingly ran 2×2 (two CRS ports) with 4×4 as the premium tier; the standard allowed up to 8 layers in TM9 but it was rare. Two codewords maximum. Why did it stall there, when Chapter 4 showed us 64‑element panels? Because of the CRS time‑bomb from Section 7.1: CRS overhead grows with the number of ports, and it's paid continuously, cell‑wide.

why CRS couldn't scale: overhead climbs with every port grid spent on CRS → 2 ports~5% 4 ports~10% 8 ports~20%+ 16+ portsunviable Always-on, cell-wide pilots can’t scale to massive arrays → LTE stalled at 4; NR dropped CRS entirely.
Figure 7.5 · The ceiling: CRS overhead balloons with port count, capping LTE MIMO
How to read this picture Each bar is how much of the precious resource grid gets eaten by always‑on CRS pilots as you add antenna ports. At 2 ports it's a tolerable sliver (~5%). At 4 ports it's already ~10% — noticeable. At 8 ports it's a fifth of your capacity gone to pilots before any data, and it's paid forever, cell‑wide, even with no users. By 16+ ports (red) it's simply unviable. This is the wall LTE hit: the very signal that made early MIMO simple made massive MIMO impossible. The escape is obvious in hindsight and is exactly what NR did — stop broadcasting cell‑wide pilots, and send pilots only on demand, inside the beam, per user (DM‑RS, CSI‑RS). LTE itself started down this road with TM9's CSI‑RS; NR finished the job by deleting CRS altogether.

And there's the whole arc. The late modes (TM8/TM9/TM10) had already introduced DM‑RS (demodulation pilots that travel with the beamformed data) and CSI‑RS (sparse, on‑demand measurement pilots) precisely to escape CRS's limits — letting the gNB beamform without the UE needing CRS to demodulate. NR simply took that escape to its logical end: delete CRS, make every pilot on‑demand and per‑user, and suddenly 32 and 64 ports become practical. LTE didn't fail; it evolved itself out of CRS and handed the finished idea to 5G.

Section 7.6Where the rules live (3GPP map)

Concept3GPP home (LTE)
CRS, DM-RS, CSI-RS definitions; physical channels & modulationTS 36.211
Transmission modes TM1–TM10; PMI/RI/CQI feedback; codebooksTS 36.213
Physical-layer measurements (RSRP/RSRQ on CRS)TS 36.214
RRC configuration of transmission mode & CSITS 36.331
FD-MIMO / elevation (the next step, Chapter 8)TR 36.897 (Rel-13)
The bridge to remember
LTE = CRS‑centric, transmission‑mode‑switched, small codebooks, ≤4 layers in practice. The migration within LTE — TM2→TM4→TM9 — is exactly the migration from cell‑wide CRS to per‑user DM‑RS/CSI‑RS that NR completed. Every NR concept in Part 4 has an LTE rehearsal here.

Section 7.7How LTE MIMO shows up in your KPIs

SituationKPI fingerprintMeaning
Cell edge / high mobilityUE falls back to TM2 (rank 1, diversity); throughput modest but stablediversity over multiplexing — correct trade
Good SNR, rich channelTM4 rank 2 (or 4), high CQI, high throughputmultiplexing working
RI stuck at 1 with good RSRPlow-rank channel or 2-Tx onlysame low-rank story as Ch.2/3
High CRS overhead config (4 ports)lower peak data rate ceiling vs theoreticalpilots eating the grid
TM9/CSI-RS enabledbeamforming gain without CRS-port growththe escape path in action

Section 7.8A field case from the LTE era

"A 4×4 LTE cell shows lower-than-expected average throughput even where SINR is good." Two LTE‑specific culprits beyond the universal low‑rank story. First, CRS overhead: a 4‑CRS‑port configuration permanently spends ~10% of REs on pilots, capping the achievable rate — visible as peak rates below the naïve 4×4 expectation. Second, transmission‑mode/feedback mismatch: if UEs are pinned in an open‑loop mode (TM3) in a slow‑moving environment, they miss the closed‑loop precoding gain of TM4; or coarse PMI codebooks under‑match the channel. Fixes: confirm the TM and CSI feedback config suit the mobility profile, and weigh the CRS‑port count against the real rank distribution (often 2 ports + good closed‑loop beats 4 ports of CRS overhead). The hardware was fine; the CRS‑era trade‑offs were the limit.

Section 7.9Mini-lab: feel the CRS tax

  1. Count the CRS REs per resource block for 1, 2, and 4 CRS ports (per the TS 36.211 pattern) and express each as a % of the 168 REs in an RB‑subframe. Watch the overhead climb — that's Figure 7.5 from first principles.
  2. Implement the 2×2 Alamouti SFBC encoder/decoder; add independent fading per path; confirm you recover both symbols with diversity even when one path is in a deep fade (Figure 7.3).
  3. Take the LTE 2‑Tx codebook (4 precoders); for a random 2×2 channel, pick the PMI that maximises capacity and compare to the ideal SVD precoder from Chapter 3 — see how much the coarse codebook loses versus perfect V. That gap is why NR added higher‑resolution (Type II) feedback.

Section 7.10If they put you on the spot

LTE transmission modes — diversity → multiplexing → beamforming TM2transmit diversity (SFBC) — reliability, CRS-based TM3open-loop spatial multiplexing — large-delay CDD TM4closed-loop spatial multiplexing — PMI feedback TM7/8single/dual-layer beamforming — UE-specific RS (ports 5,7,8) TM9/10up to 8 layers + CoMP — DM-RS & CSI-RS (the bridge to NR)
Figure 7.6 · The LTE transmission modes at a glance
How to read this picture LTE bundled MIMO behaviour into numbered transmission modes, and reading them top-to-bottom tells the story of MIMO's evolution. TM2 is pure diversity (reliability). TM3/TM4 add spatial multiplexing — open-loop, then closed-loop with PMI feedback. TM7/TM8 introduce UE-specific beamforming with dedicated reference signals. TM9/TM10 reach 8 layers and multi-point coordination on DM-RS/CSI-RS — the design that NR inherited and generalised. Each step trades simplicity for a new MIMO gift.
Advanced Deep-Dive  ·  LTE transmission modes and their reference signals (TS 36.213 §7.1)

The transmission mode, signalled per-UE by RRC, fixes which DCI format, feedback, and reference signals apply. The crucial evolution is the move from cell-specific reference signals (CRS) — always-on, shared, the basis of TM1–TM6 — to UE-specific DM-RS in TM7 onward, which let the network beamform the reference signal together with the data so the UE measures the effective beamformed channel. TM9/TM10 added CSI-RS for channel-state measurement decoupled from demodulation, exactly the SSB/CSI-RS/DM-RS split that NR formalised (Chapter 10).

TM1 single antenna (port 0) TM2 transmit diversity (SFBC) # CRS TM3 open-loop SM (large-delay CDD) TM4 closed-loop SM (PMI/RI feedback) # CRS TM7/8 beamforming, UE-RS ports 5 / 7,8 TM9/10 ≤8 layers + CoMP # DM-RS + CSI-RS → NR
Worked example A TM4 2×2 UE feeds back RI and a PMI from a 4- or 16-entry codebook; the eNB precodes on CRS-referenced ports. Switch the same UE to TM9 and it now demodulates on beamformed DM-RS while measuring channel state on separate CSI-RS — the architectural leap that made 8-layer and FD-MIMO possible.
"What is CRS used for, and why is it a scaling problem?"
CRS is LTE's always‑on, cell‑wide pilot (ports 0–3) used for demodulation (TM1–6), measurement (RSRP/RSRQ), and feedback computation. It's a scaling problem because its overhead grows with antenna ports and is paid continuously cell‑wide — ~5% at 2 ports, ~10% at 4, untenable at 8+. That capped LTE MIMO and motivated NR dropping CRS.
"Difference between TM3 and TM4?"
Both are spatial multiplexing. TM3 is open‑loop (fixed/cycling precoder, large‑delay CDD) — good for high mobility where feedback is stale. TM4 is closed‑loop: the UE feeds back RI/PMI/CQI and the gNB applies the recommended codebook precoder — better in stable channels.
"How does transmit diversity (SFBC) work without feedback?"
It uses Alamouti space‑frequency coding: two symbols are encoded across two antennas and two subcarriers in a conjugate pattern so the receiver, using only its channel estimates, can always recover both with full diversity — no transmitter channel knowledge needed. That's why it's the robust cell‑edge/mobility fallback (TM2).
"How did LTE start moving toward 5G internally?"
Through the late modes: TM7 added a UE‑specific RS (port 5), TM8 added DM‑RS (ports 7/8), and TM9 added DM‑RS + CSI‑RS for up to 8 layers — pilots that ride with the beam or are sent on‑demand, escaping CRS. NR completed this by removing CRS entirely.

Section 7.11What to carry out of this chapter

  • CRS is LTE's always‑on, cell‑wide pilot — foundation of early MIMO (demod, measurement, feedback) and, ultimately, its ceiling.
  • LTE MIMO is a menu of transmission modes (TM1–TM10), each spending diversity, multiplexing, or beamforming.
  • TM2 / SFBC (Alamouti) = diversity with no feedback; TM3/TM4 = open/closed‑loop multiplexing with the RI/PMI/CQI loop.
  • The late modes (TM7/8/9) introduced DM‑RS and CSI‑RS to escape CRS — the seeds of NR.
  • The CRS overhead ceiling capped LTE at ~4 ports and drove NR to delete CRS and go all‑on‑demand.

In closing7.12 · The cage that built the key

LTE MIMO is the story of one good decision that slowly became a constraint, and of engineers who turned the constraint into the blueprint for its successor. CRS made the first generation of MIMO simple and robust — one pilot, every job, every UE — and on that foundation LTE built a whole menu of behaviours: diversity when you needed reliability, multiplexing when you needed speed, beamforming when you needed reach, all switched per‑user by transmission mode. It worked, and it carried the mobile internet for a decade.

But the same cell‑wide pilot that made it simple is what stopped it growing. You cannot tile a 64‑port panel with always‑on CRS without drowning the grid. So LTE, mode by mode, taught itself to beamform without CRS — UE‑specific pilots in TM7, DM‑RS in TM8, CSI‑RS in TM9 — until the cell‑wide pilot was almost vestigial. NR simply had the courage to delete it. Everything you'll see in Part 4 — DM‑RS riding the beam, CSI‑RS measured on demand, flexible high‑resolution feedback — was rehearsed right here, inside LTE, working around CRS.

That's why this "old grandparent" chapter matters: the LTE awkwardness explains the NR elegance. With that context locked in, we can take the last step of Part 3. In Chapter 8 — LTE‑A, FD‑MIMO and 3D MIMO, we'll see LTE‑Advanced push right up to the doorway of massive MIMO: carrier aggregation's MIMO implications, CoMP, and the FD‑MIMO study (TR 36.897) that put CSI‑RS and 2D arrays into LTE and set the stage for everything 5G NR would make native.

— end of Chapter 7 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Three — LTE MIMO and Evolution Toward Massive MIMO
CHAPTER EIGHT

LTE-A, FD-MIMO
and 3D MIMO

"By the end of LTE-Advanced, 5G massive MIMO already existed — it just didn't have the name yet."

In Chapter 7 we left LTE in a clever bind: its cell‑wide CRS made MIMO simple but couldn't scale past a handful of ports, and the late transmission modes were already smuggling in new pilots to escape it. This chapter is the escape completing — the LTE‑Advanced years, when engineers took every workaround and turned it into a coherent system that, if you squint, is 5G massive MIMO. Two‑dimensional antenna panels. Elevation beams to high floors. Sparse on‑demand measurement pilots. Beamformed reference signals. Coordinated multi‑cell transmission. All of it shipped in LTE‑Advanced — and then 3GPP gave it a clean rewrite and called it NR.

I want you to read this chapter as the last rung of a ladder you've been climbing since Chapter 4. We built the panel (Ch 4), taught it to point along a line (Ch 5), then in two angles (Ch 6), then saw how plain LTE did MIMO on CRS (Ch 7). Now we watch LTE‑Advanced bolt the 2D‑array, elevation‑beam, CSI‑RS machinery onto that CRS foundation — the program 3GPP literally named FD‑MIMO (Full‑Dimension MIMO) and studied in TR 36.897. When you see how close LTE‑A got, the 5G physical layer in Part 4 will feel like a tidy‑up, not a reinvention.

So we'll cover what "LTE‑Advanced" actually added beyond LTE, then the three ideas that matter most for our story: CoMP (cells cooperating instead of competing), CSI‑RS (the sparse measurement pilot that finally broke the CRS scaling wall), and FD‑MIMO with its 2D arrays and elevation beamforming. We'll end by drawing the straight line from here to NR. Let's finish the climb.

Before we dive inWhat you'll walk away knowing

  • Name what LTE‑Advanced added over LTE (carrier aggregation, higher‑order MIMO, CoMP) and why it mattered for MIMO.
  • Explain CoMP and its flavours — Joint Transmission (JT), Coordinated Scheduling/Beamforming (CS/CB), Dynamic Point Selection (DPS).
  • Explain CSI‑RS: a sparse, on‑demand measurement pilot that decoupled measurement from CRS and broke the port‑scaling wall.
  • Explain FD‑MIMO (TR 36.897): 2D arrays, elevation beamforming, up to 16 CSI‑RS ports, and the Class A vs Class B CSI types.
  • Draw the evolution line from LTE → LTE‑A FD‑MIMO → 5G NR massive MIMO, and say what NR cleaned up.

Section 8.1What LTE-Advanced added

LTE‑Advanced (3GPP Release 10 and onward) was the "make it faster and smarter" upgrade. Three additions matter for our MIMO story:

  • Carrier Aggregation (CA) — bonding multiple carriers for more bandwidth. Not MIMO itself, but it multiplies the spectrum that MIMO's spatial layers ride on, and each component carrier carries its own MIMO.
  • Higher‑order MIMO — TM9's up to 8 downlink layers, plus proper uplink MIMO, pushing past the old 4‑layer comfort zone.
  • CoMP (Coordinated Multipoint) — neighbouring cells coordinating their transmissions so the cell edge stops being a war zone.

The first is a capacity story we'll leave to bandwidth; the second we covered as TM9 in Chapter 7. The two that reshape MIMO — and set up 5G — are CoMP and the pilot that made advanced MIMO measurable: CSI‑RS. Let's take them in turn.

Section 8.2CoMP — cells that cooperate

At a cell edge, a UE hears two or three cells almost equally — and in plain LTE the others are pure interference. CoMP asks: what if those cells coordinated instead of fought? Several flavours exist, and they're worth knowing by name because the same ideas resurface in NR and Open RAN:

  • Joint Transmission (JT) — multiple cells transmit the same data to the UE simultaneously; their signals add up instead of interfering. The edge UE effectively gets a bigger, distributed antenna.
  • Coordinated Scheduling / Beamforming (CS/CB) — only one cell transmits the data, but the neighbours steer nulls (Chapter 5!) away from this UE so they don't jam it.
  • Dynamic Point Selection (DPS) — the network picks, moment to moment, the single best cell to serve the UE as it moves.
CoMP — neighbouring cells coordinate instead of interfere Cell A Cell B X2 coordination link cell-edge UE Joint Transmission: both send the same data — signals ADD
Figure 8.1 · CoMP: at the cell edge, neighbours cooperate instead of jamming each other
How to read this picture Two cells, A and B, with a UE stranded at the boundary between them — the classic interference war zone. The red dashed line is the coordination link (X2 in LTE) over which the cells talk. In the Joint Transmission case drawn here, both cells beam the same data to the UE at once, so their signals add up instead of interfering — the edge user suddenly has what feels like one big distributed antenna. The other flavours reuse ideas you already know: CS/CB has the non‑serving cell steer a null (Chapter 5) toward this UE so it doesn't jam it; DPS just hands the UE to whichever single cell is momentarily best. CoMP is the cell edge's peace treaty — and the same coordination logic returns in NR and the RIC (Chapter 39).
CoMP flavourWho transmits dataTrickBest for
Joint Transmission (JT)several cells, same datasignals add coherentlycell-edge throughput
CS / CBone cellothers null toward this UEinterference control
Dynamic Point Selectionbest single cell, moment-to-momentfast serving-cell switchmobility at the edge

Section 8.3CSI-RS — the pilot that broke the CRS wall

This is the quiet hero of LTE‑Advanced and the single most important idea for our 5G story. Recall Chapter 7's ceiling: CRS is dense and always‑on, so adding ports is ruinously expensive. LTE‑A's fix was to split the jobs. Keep CRS for the legacy stuff, but introduce a brand‑new pilot, the Channel State Information Reference Signal (CSI‑RS), purely for measurement — and make it sparse and periodic (sent occasionally, on just a few resource elements) rather than dense and continuous.

Because CSI‑RS is sparse, you can afford many more ports of it — 8 ports in Rel‑10, up to 16 in Rel‑13 FD‑MIMO — without flooding the grid. Meanwhile the actual data is demodulated using DM‑RS that rides with the beam (from TM8/9). So measurement (CSI‑RS) and demodulation (DM‑RS) are finally decoupled, and neither needs the cell‑wide CRS to scale. That decoupling is exactly the architecture NR adopts wholesale — NR just deletes CRS entirely and keeps only the on‑demand pilots.

CRS — dense, always-on CSI-RS — sparse, periodic lots of REs, every subframe → can't add ports few REs, occasional → 8–16 ports affordable
Figure 8.2 · Split the jobs: keep demod elsewhere, make measurement pilots sparse — and ports become cheap
How to read this picture Two resource grids. On the left, CRS: dense pilots packed in every subframe (the dark squares everywhere) — the overhead that capped LTE at ~4 ports. On the right, CSI‑RS: just a small cluster of pilots, sent only occasionally. Because it's so sparse, you can afford many ports of it — 8, then 16 — without eating your data. The catch that makes it work: CSI‑RS is for measurement only; the actual data is demodulated with DM‑RS that travels inside the beam. Measurement and demodulation, finally separated. This one move — sparse, on‑demand, measurement‑only pilots — is the exact architecture NR is built on (NR just throws CRS away and keeps this).

Section 8.4FD-MIMO — 2D arrays and elevation, in LTE

With CSI‑RS providing affordable many‑port measurement, LTE‑Advanced could finally do what Chapter 6 described — but inside LTE. This was the FD‑MIMO work item (Rel‑13), with its study captured in TR 36.897 and a matching 3D channel model in TR 36.873. It brought 2D antenna arrays and elevation beamforming to LTE: up to 16 CSI‑RS ports arranged in an (N1 horizontal × N2 vertical) grid, new 2D codebooks, and — crucially — two different ways for the UE to report CSI, named Class A and Class B:

  • Class A (non‑precoded CSI‑RS) — the cell sends a CSI‑RS per port; the UE sees the whole 2D array and picks a precoder (azimuth × elevation beam) from a full 2D codebook. Flexible, more feedback.
  • Class B (beamformed CSI‑RS) — the cell pre‑forms a small set of candidate beams (a grid of beams) and sends a CSI‑RS down each; the UE simply picks the best beam and reports its index. Less feedback, leans on the gNB's beam grid.
Class A · non-precoded CSI-RS UE sees the whole array,picks an azimuth×elevation beam Class B · beamformed CSI-RS best beam gNB pre-forms candidate beams;UE just reports the best beam index
Figure 8.3 · Two ways to do FD-MIMO CSI: see the whole array (Class A) or pick from a beam grid (Class B)
How to read this picture Both sides use a 2D array, but the UE's job differs. In Class A (left), the cell sends a plain CSI‑RS on every port, so the UE effectively "sees" the whole array and computes its own favourite beam from a full 2D codebook (azimuth × elevation) — flexible, but more feedback. In Class B (right), the gNB has already pre‑formed a handful of candidate beams (the fan of shaded lobes) and sends a CSI‑RS down each; the UE just measures them and reports "beam #2 is best." Much lighter feedback, but it trusts the gNB's beam grid. This Class‑A/Class‑B split — "compute the beam" vs "pick from a grid of beams" — is the direct ancestor of NR's Type I/II codebooks and the whole beam‑management framework in Part 8.

Section 8.5The straight line to 5G NR

Now stand back and look at what LTE‑Advanced had assembled by Release 13: 2D antenna panels, elevation beamforming, sparse CSI‑RS measurement decoupled from demodulation, beamformed reference signals with a grid of beams, multi‑cell coordination. That is — feature for feature — the skeleton of 5G massive MIMO. NR didn't invent these; it inherited them and removed the legacy baggage:

LTE CRS-based2×2 / 4×4TM1–TM10 LTE-A FD-MIMO CSI-RS (8→16 ports)2D arrays · elevationClass A/B · CoMP · TR 36.897 5G NR NO CRS32–64T · native 3DType I/II · beam mgmt add CSI-RS, 2D → drop CRS, scale up → the same idea, refined twice
Figure 8.4 · LTE → LTE-A FD-MIMO → 5G NR: one idea, refined in two steps
How to read this picture A timeline of one continuous idea. LTE (left): CRS‑based, 2×2/4×4, the transmission‑mode menu — simple but capped. LTE‑A FD‑MIMO (middle): add CSI‑RS to escape the CRS wall, go to 2D arrays with elevation beams, introduce Class A/B feedback and CoMP — this is the TR 36.897 era, and it's already most of massive MIMO. 5G NR (right): take all of that, delete CRS entirely, scale to 32–64 transceivers, make 3D beamforming and a grid of beams native, and replace the codebooks with Type I/II. Read across and you see the truth of this chapter's epigraph: massive MIMO was effectively finished in LTE‑Advanced — NR mostly gave it a clean, CRS‑free rewrite and room to grow.

Section 8.6Where the rules live (3GPP map)

Concept3GPP home
FD-MIMO study (2D arrays, elevation, Class A/B)TR 36.897 (Rel-13)
3D channel model (elevation-aware)TR 36.873
CSI-RS, DM-RS definitions; CoMP signallingTS 36.211, TS 36.213
Carrier aggregation; CA + MIMOTS 36.300, TS 36.331
What NR made native (the next Part)TS 38.211 / 38.214 (no CRS, up to 32 ports, Type I/II)
The bridge to remember
FD‑MIMO Class A ≈ NR Type I (codebook of array‑factor beams) and the path to Type II (high‑resolution); Class B ≈ NR beam management's grid of beams. CSI‑RS + DM‑RS decoupling in LTE‑A becomes the default in NR. If you understand TR 36.897, Part 4 is revision.

Section 8.7How LTE-A MIMO shows up in your KPIs

FeatureKPI fingerprintMeaning
CoMP JT activecell-edge throughput & SINR rise; fewer edge dropsneighbours cooperating, not interfering
CSI-RS / FD-MIMO enabledmore ports usable without CRS-overhead penalty; higher rank in 2D environmentsthe CRS wall broken
Class B beamformed CSI-RSlower CSI feedback load; gain depends on beam-grid matchgNB-driven beams
Elevation beamforming onimproved high-floor RSRP/SINR (as in Ch.6)3D coverage in LTE-A

Section 8.8A field case from the LTE-A era

"FD-MIMO was enabled but high-rise gains are disappointing, and CSI feedback load spiked." Two FD‑MIMO‑specific levers. If gains are weak, check whether the deployment is using Class A (full 2D codebook — flexible but feedback‑heavy and reliant on accurate per‑port CSI) where Class B (beamformed CSI‑RS, a tuned grid of beams) would match the high‑rise geometry better with far less feedback — or vice‑versa. If feedback load spiked, Class A with 16 ports and frequent reporting is the usual cause; move to Class B or relax CSI periodicity. And confirm the vertical codebook actually has enough elevation resolution to separate floor bands. The FD‑MIMO machinery was there; the Class‑A/B choice and feedback config are the knobs. (NR's flexible CSI framework in Part 7 is the mature answer to exactly this tension.)

Section 8.9Mini-lab: Class A vs Class B

  1. Model a 4×4 (N1=4 × N2=4) FD‑MIMO array. For a high‑rise of UEs at varied elevation, implement Class A: each UE computes its best 2D‑codebook precoder. Record the feedback bits and achieved SINR.
  2. Now implement Class B: pre‑form a grid of, say, 4 elevation beams; each UE reports just the best beam index. Compare feedback bits (far fewer) and SINR (close, if the grid matches).
  3. Coarsen and refine the Class B beam grid; watch SINR track how well the grid matches the true UE distribution — the core Class‑B trade‑off.
  4. Sketch a CoMP‑JT scenario: two cells transmit to one edge UE; compare received SINR with and without coordination to feel the cell‑edge gain.

Section 8.10If they put you on the spot

Rel-13 FD-MIMO: a 2D array adds the vertical dimension 8×2 cross-pol panel (16 ports) elevation beamforming → 3D / vertical sectorisation Class Anon-precoded CSI-RS, full codebook Class Bbeamformed CSI-RS, UE picks a beam
Figure 8.5 · FD-MIMO's 2D array and the two CSI reporting classes
How to read this picture Rel-13 FD-MIMO turned the antenna from a horizontal row into a 2D panel, unlocking elevation (vertical) beamforming and 3D sectorisation. To feed it, 3GPP defined two CSI flavours: Class A uses non-precoded CSI-RS and a full 2D codebook (the UE reports azimuth and elevation indices), while Class B beamforms the CSI-RS itself and lets the UE simply pick the best of a few beams. These two philosophies — measure-everything vs pre-beamformed — are the direct ancestors of NR's Type I/Type II and beam-management designs.
Advanced Deep-Dive  ·  Rel-13/14 FD-MIMO and the Class A / Class B split (TS 36.213)

FD-MIMO scaled CSI-RS from 8 to 16 ports (Rel-13) and then 32 (Rel-14), and introduced the two-stage codebook W = W1W2 that NR kept: W1 selects a beam group (wideband, slow), W2 selects the beam and co-phasing (subband, fast). Class A (non-precoded) exposes the full port array so the UE computes a 2D PMI — accurate but heavy. Class B (beamformed) sends a small set of pre-steered CSI-RS beams; the UE reports a CRI to pick one — light, and the seed of NR beam management. The choice trades feedback overhead against how much beam intelligence sits in the network versus the UE.

CSI-RS ports 8 → 16 (Rel-13) → 32 (Rel-14) codebook W = W1 · W2 # W1 beam group (WB), W2 selection (SB) Class A non-precoded CSI-RS, full 2D PMI Class B beamformed CSI-RS, report CRI (pick a beam)
Worked example An 8×2 dual-pol panel = 8·2·2 = 32 CSI-RS ports (Rel-14 Class A). The UE returns a wideband W1 beam-group index plus per-subband W2 — the exact two-stage structure that becomes NR Type I in Chapter 20.
"What problem did CSI-RS solve that CRS couldn't?"
CRS is dense and always‑on, so adding ports is ruinously expensive. CSI‑RS is sparse and periodic and used only for measurement, so you can afford 8–16 ports without flooding the grid; demodulation moves to DM‑RS that rides the beam. Measurement and demodulation are decoupled — the architecture NR adopts after deleting CRS.
"Explain the CoMP flavours."
Joint Transmission (multiple cells send the same data, signals add — edge throughput); Coordinated Scheduling/Beamforming (one cell transmits, neighbours null toward the UE — interference control); Dynamic Point Selection (pick the best single serving cell moment‑to‑moment — mobility).
"Class A vs Class B CSI in FD-MIMO?"
Class A uses non‑precoded CSI‑RS per port: the UE sees the whole array and selects a 2D‑codebook precoder — flexible, more feedback. Class B uses beamformed CSI‑RS: the gNB pre‑forms candidate beams and the UE just reports the best beam index — lighter feedback, depends on the beam grid. They map to NR Type I/II and beam management.
"How close was LTE-A to 5G massive MIMO?"
Very close: FD‑MIMO (TR 36.897) brought 2D arrays, elevation beamforming, up to 16 CSI‑RS ports, beamformed CSI‑RS and CoMP. NR mainly removed CRS, scaled to 32–64 ports, made 3D beam management native, and upgraded the codebooks (Type I/II). The concepts were rehearsed in LTE‑A.

Section 8.11What to carry out of this chapter

  • LTE‑Advanced added carrier aggregation, higher‑order MIMO, and CoMP — pushing LTE to the doorway of massive MIMO.
  • CoMP turns cell‑edge interference into cooperation: JT (add signals), CS/CB (null toward the UE), DPS (best‑cell selection).
  • CSI‑RS — sparse, periodic, measurement‑only — broke the CRS port‑scaling wall by decoupling measurement from demodulation (DM‑RS).
  • FD‑MIMO (TR 36.897) brought 2D arrays + elevation to LTE, with Class A (full codebook) and Class B (beamformed CSI‑RS / grid of beams).
  • The line to NR is straight: NR deleted CRS, scaled ports, and made 3D beamforming native — refining, not reinventing, LTE‑A's FD‑MIMO.

In closing8.12 · Massive MIMO, before it had the name

We end Part 3 with the realization that the dramatic leap to 5G massive MIMO was, technically, less of a leap than the marketing suggested. By the close of LTE‑Advanced, the industry had already built two‑dimensional antenna panels, steered beams in elevation to reach high floors, decoupled measurement from demodulation with sparse CSI‑RS, pre‑formed grids of beams and let UEs pick from them, and coordinated neighbouring cells to tame the edge. The FD‑MIMO study TR 36.897 reads, in hindsight, like a first draft of the NR physical layer.

What NR added was mostly courage and scale: delete the cell‑wide CRS that had anchored a decade of design, trust the on‑demand pilots completely, and build a clean framework that scales to 32, 64, and beyond. Everything else — the 2D codebooks, the beamformed reference signals, the grid of beams, the elevation steering — was inherited from the LTE‑Advanced work we just walked through. Understanding that inheritance is why these three "legacy" chapters were worth your time: they make the next part feel familiar.

And now we arrive at the heart of the book. Part 4 opens the 5G NR physical layer itself. In Chapter 9 we lay its foundation — numerology, the flexible resource grid, slots and symbols, bandwidth parts, and how the physical channels are laid out — the canvas on which every NR reference signal, codebook, and beam we've been building toward is actually painted.

— end of Chapter 8 · end of Part 3 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Four — 5G NR Physical Layer for MIMO
CHAPTER NINE

5G NR Physical
Layer Architecture

"Before you can place a beam, you need the grid you’re placing it on. This is that grid."

We've spent eight chapters talking about beams, layers, and channel matrices — the what of MIMO. But every one of those beams and layers has to be painted onto a specific canvas of time and frequency: which subcarriers, which symbols, which slot. In LTE that canvas was rigid — one subcarrier spacing, one frame structure, take it or leave it. 5G NR threw that rigidity out. Its physical layer is flexible by design: the same air interface can stretch to carry a slow IoT sensor sipping data on a narrow sliver, a phone streaming 4K on a hundred megahertz, and a millimetre‑wave link blasting gigabits — all by reshaping the canvas.

This is the chapter where, if you've only ever worked LTE, a few things will feel disorienting at first — "wait, the subcarrier spacing changes?" — and then click into place. Because once you see the logic, NR's physical layer is beautifully systematic: pick a numerology (how wide the subcarriers are), and everything else — slot length, symbols, how the grid is shaped — follows by a clean power‑of‑two rule. No magic, just a dial.

We're going to lay the canvas methodically: numerology (the flexible subcarrier spacing that defines everything), the frame / slot / symbol structure built on it, the resource grid of REs and RBs where data actually lives, bandwidth parts (how a UE works on a slice of a wide carrier), and the physical channels (PDSCH, PDCCH, PUSCH, PUCCH, PRACH, and the SSB) that carry the MIMO we've been studying. By the end you'll have the map you need before Chapter 10 starts placing reference signals and beams onto it.

Before we dive inWhat you'll walk away knowing

  • Explain numerology (μ): SCS = 15·2^μ kHz, and how it scales slot length and symbol duration.
  • Describe the NR frame structure: 10 ms frame, 1 ms subframe, slots = 14 symbols, slots‑per‑subframe = 2^μ.
  • Read the resource grid: resource element (RE), resource block (RB = 12 subcarriers), CP‑OFDM vs DFT‑s‑OFDM.
  • Explain bandwidth parts (BWP) and why a UE operates on a slice of a wide carrier.
  • Lay out the physical channels — PDSCH, PDCCH, PBCH/SSB, PUSCH, PUCCH, PRACH — and where MIMO rides.
  • Map all of it to TS 38.211–214 so you know which spec owns which piece.

Section 9.1Numerology — the one dial everything follows

The foundational idea of the NR physical layer is that the subcarrier spacing (SCS) is not fixed. You choose a numerology, labelled μ, and the spacing is SCS = 15 · 2^μ kHz. So μ = 0 gives the familiar LTE‑like 15 kHz; μ = 1 gives 30 kHz; and so on up to 120 kHz (and 240 kHz for the sync signal only). Wider subcarriers mean shorter symbols in time — which means lower latency and better tolerance of the nasty Doppler and phase noise at high frequencies, at the cost of more overhead. It's a single dial that trades time‑resolution against frequency‑resolution, and you set it to suit the band and the service.

numerology μ → subcarrier spacing → slot length μSCSslot lengthslots / subframetypical use 015 kHz1 ms1FR1 low band 130 kHz0.5 ms2FR1 mid (workhorse) 260 kHz0.25 ms4FR1/FR2 3120 kHz0.125 ms8FR2 mmWave 4240 kHz0.0625 ms16SSB only SCS = 15 · 2^μ kHz · slot is always 14 symbols · slot length halves each step up
Figure 9.1 · One dial (μ) sets subcarrier spacing, and everything else follows by powers of two
How to read this picture Read each row as a setting of the numerology dial μ. Step μ up by one and the subcarrier spacing doubles (15 → 30 → 60 → 120 kHz) while the slot length halves (1 → 0.5 → 0.25 → 0.125 ms) and you fit twice as many slots into the 1 ms subframe. The right column shows where each lives: 15/30 kHz on FR1 (30 kHz is the mid‑band workhorse you'll meet most), 120 kHz up at FR2 mmWave where short symbols beat phase noise and Doppler, and 240 kHz reserved just for the sync block. The elegance is that it's all one rule — SCS = 15·2^μ — so once you know μ, the whole time structure is determined.

Section 9.2Frames, slots and symbols

The outer time structure is fixed and familiar: a 10 ms radio frame split into ten 1 ms subframes. What numerology changes is what happens inside a subframe. A slot is always 14 OFDM symbols (normal cyclic prefix) — but how long a slot is, and how many fit in a subframe, depends on μ. At 15 kHz a slot fills the whole 1 ms subframe; at 30 kHz two slots fit; at 120 kHz, eight. So higher numerology means shorter, faster slots — the lever behind NR's low latency.

one 1 ms subframe — more numerology, more (shorter) slots μ=015 kHz 1 slot (14 symbols) = 1 ms μ=130 kHz slot 0slot 1 μ=3120 kHz 8 short slots slot = always 14 symbols · slots per subframe = 2^μ · higher μ = lower latency
Figure 9.2 · The subframe is fixed at 1 ms; numerology decides how many slots pack into it
How to read this picture Each row is the same 1 ms subframe, sliced differently by numerology. At μ=0 (15 kHz) one slot fills the whole millisecond. At μ=1 (30 kHz) two slots fit. At μ=3 (120 kHz) eight short slots pack in. Every slot still has exactly 14 OFDM symbols — they just get shorter in time as μ rises. Why care? Because a shorter slot means the network can schedule, transmit, and acknowledge faster — that's the origin of NR's low‑latency promise, and why URLLC and mmWave lean on high numerology. The MIMO consequence: beams and layers are (re)assigned per slot, so higher μ means faster beam/rank adaptation too.

Section 9.3The resource grid — REs and RBs

Now the fine structure where bits actually sit. The time‑frequency plane is divided into a grid. The smallest unit is the Resource Element (RE): one subcarrier × one OFDM symbol — it carries one modulation symbol (one QAM point). Twelve subcarriers grouped together form a Resource Block (RB) — and note a key NR change from LTE: in NR an RB is purely a frequency concept (12 subcarriers), not tied to a time duration. The scheduler allocates data to UEs in RBs. Downlink uses CP‑OFDM; uplink can use CP‑OFDM or DFT‑s‑OFDM (lower peak‑to‑average power → better uplink coverage and battery life).

resource grid: REs make RBs make allocations → time (14 symbols = 1 slot) ↑ frequency (12 subcarriers = 1 RB) 1 RE = 1 SC × 1 symbol 1 RB = 12 subcarriers schedulerallocates in RBs
Figure 9.3 · The resource grid: one RE is the atom, 12 of them tall make a resource block
How to read this picture The grid is time (left→right, the 14 symbols of a slot) by frequency (bottom→top, subcarriers). The tiny red cell is a single Resource Element (RE) — one subcarrier in one symbol, carrying one QAM symbol; it's the atom of everything. The light‑blue vertical strip is a Resource Block (RB) — twelve subcarriers stacked — which is the unit the scheduler hands out to users. In NR the RB is a pure frequency grouping (12 subcarriers), independent of how many symbols you use — a deliberate flexibility upgrade over LTE. Every reference signal, every PDSCH layer, every beam we discuss from here on is ultimately "which REs in which RBs," painted on exactly this grid.

Section 9.4Bandwidth parts — working on a slice

NR carriers can be huge — up to 100 MHz in FR1, 400 MHz in FR2. But a cheap or battery‑constrained UE doesn't want to process all of that all the time, and different services want different numerologies. The answer is the Bandwidth Part (BWP): a contiguous subset of the carrier, with its own numerology, that the UE is told to operate within. A UE can be configured with up to four BWPs but has one active at a time. It can run on a narrow BWP to save power when idle‑ish, then switch to a wide BWP when it needs throughput. There's also an initial BWP used during access. BWPs are how NR makes one flexible carrier serve everything from a sensor to a 4K stream.

a wide carrier, but the UE works inside one active BWP full carrier (e.g., 100 MHz · up to 275 RB) BWP 0 (narrow) BWP 1 — ACTIVE UE switches BWP totrade power vs throughput
Figure 9.4 · Bandwidth parts: the UE lives in one active slice of a much wider carrier
How to read this picture The long bar is the whole carrier — potentially 100 MHz. The UE is configured with a few bandwidth parts: a narrow one (dashed) for low‑power operation and a wider one for throughput. At any moment exactly one is active — here BWP 1 (filled), and the UE is tuned to it (the arrow). When the UE needs speed it switches to a wide BWP; when it's sipping data it drops to a narrow one to save battery. Each BWP can even use a different numerology. For us, the key point is that all the MIMO action — CSI‑RS, PDSCH layers, beams — happens within the active BWP; it's the working window onto the carrier.

Section 9.5The physical channels — where MIMO rides

Finally, the channels that carry information across the air. You must know these by heart; the rest of the book refers to them constantly. Downlink and uplink each have a data channel, a control channel, and special‑purpose channels:

  • PDSCH (Physical Downlink Shared Channel) — the downlink data. This is where DL MIMO layers ride; demodulated with DM‑RS.
  • PDCCH (Physical Downlink Control Channel) — carries DCI (scheduling grants). Beamformed too, via its own TCI/QCL.
  • PBCH (Physical Broadcast Channel) — the broadcast, carried inside the SSB with PSS/SSS for sync (the beam‑swept block from Chapter 1).
  • PUSCH (Physical Uplink Shared Channel) — uplink data, where UL MIMO layers ride; CP‑OFDM or DFT‑s‑OFDM.
  • PUCCH (Physical Uplink Control Channel) — carries UCI: the CSI feedback (RI/PMI/CQI), HARQ‑ACK, scheduling requests.
  • PRACH (Physical Random Access Channel) — the UE's first knock on the door; beam‑associated (Chapter 23).
DOWNLINK slot PDCCH PDSCH (data · MIMO layers ride here) dark columns = DM-RS (demod pilots) SSBPSS/SSS/PBCH UPLINK slot PUCCH PUSCH (UL data · layers) PRACH PUCCH (CSI)
Figure 9.5 · The physical-channel map: control at the edges, data in the body, MIMO in PDSCH/PUSCH
How to read this picture Two slots, downlink on top and uplink below. In the downlink, the first symbol or two carry PDCCH (the scheduling instructions); the big body is PDSCH — the actual data, and where the DL MIMO layers live — with thin dark columns of DM‑RS (the demodulation pilots that ride with the beam, NR's replacement for CRS). Off to the side sits the SSB (PSS/SSS/PBCH), the beam‑swept sync/broadcast block. In the uplink, PUCCH at the edges carries control — including the precious RI/PMI/CQI feedback — PUSCH carries uplink data and layers, and PRACH is the random‑access knock. Memorise this map: from here on, every reference signal and beam we discuss is "which of these channels, on which REs."

Section 9.6Where the rules live (3GPP map)

Concept3GPP home (NR)
Numerology, frame/slot/symbol, resource grid, physical channels & signalsTS 38.211
Channel coding & multiplexing (LDPC data, Polar control), rate matchingTS 38.212
Control procedures (PDCCH/DCI, search spaces, power control, beam indication)TS 38.213
Data procedures (PDSCH/PUSCH, CSI, MIMO layers, BWP operation)TS 38.214
Overall architecture & numerology rationaleTS 38.300
The map to keep
TS 38.211 defines the canvas (grid, channels, signals); 38.212 the coding; 38.213 the control procedures; 38.214 the data & CSI/MIMO procedures. Almost every later chapter cites one of these four. Numerology μ = 0 (15 kHz) and μ = 1 (30 kHz) dominate FR1; μ = 3 (120 kHz) dominates FR2.

Section 9.7How the PHY structure shows up in your KPIs

ChoiceKPI fingerprintMeaning
Higher numerology (30→120 kHz)lower latency, faster scheduling/beam adaptation; slightly more overheadtime-resolution traded for frequency-resolution
Narrow active BWPlower UE power, lower peak throughputpower-vs-throughput trade
DFT-s-OFDM uplinkbetter cell-edge UL coverage (lower PAPR)coverage mode for weak UEs
PDCCH coverage/aggregationscheduling reliability; beamformed PDCCH improves edge controlcontrol must reach before data can

Section 9.8A field case the PHY structure explains

"Cell-edge UEs lose the connection before data even starts, despite decent SSB RSRP." If the SSB (broadcast/sync) is heard fine but the UE struggles once scheduled, suspect the control layer or BWP, not coverage of data. PDCCH must be decoded before any PDSCH — if PDCCH isn't beamformed or has too little aggregation/coverage at the edge, the UE can camp but not get grants. Also check the initial/active BWP configuration: an edge UE stuck on a poorly‑covered BWP, or a numerology mismatch, can break the access‑to‑data handoff. Fixes: ensure PDCCH beamforming/aggregation suits the edge, and verify BWP and numerology configs. The data MIMO can be perfect, but if control or the working window is wrong, nothing rides. (Beam‑level control coverage returns in Chapter 25.)

Section 9.9Mini-lab: build the canvas

  1. For μ = 0,1,2,3, compute SCS, symbol duration, slot length, and slots‑per‑subframe. Confirm the powers‑of‑two pattern of Figure 9.1/9.2.
  2. Compute how many RBs fit in 20, 50, and 100 MHz at 30 kHz SCS (recall RB = 12 subcarriers). Compare to the 275‑RB max.
  3. Sketch a slot grid (14 symbols × N RBs) and place PDCCH in the first 2 symbols, PDSCH in the body, and DM‑RS columns — recreate Figure 9.5.
  4. Define two BWPs (narrow + wide) on a 100 MHz carrier; reason about UE power and peak rate in each, and what triggers a switch.

Section 9.10If they put you on the spot

NR numerology: SCS = 15·2^μ kHz — wider SCS, shorter slot μSCSslot lengthtypical use 015 kHz1 msFR1 low-band, coverage 130 kHz0.5 msFR1 mid-band (most 5G) 260 kHz0.25 msFR1/FR2, URLLC 3120 kHz0.125 msFR2 mmWave 4240 kHz0.0625 msFR2 (SSB only)
Figure 9.6 · NR's scalable numerology
How to read this picture Unlike LTE's fixed 15 kHz, NR lets subcarrier spacing scale as 15·2μ kHz. Wider spacing (higher μ) shortens the slot and shrinks latency, and is more robust to the Doppler and phase noise of high bands — which is why FR2 mmWave uses 120 kHz while coverage-focused low-band stays at 15 kHz. This flexibility is the backbone of how one NR design serves both a 700 MHz coverage layer and a 28 GHz capacity layer, and it sets the time/frequency grid that all the MIMO reference signals live on.
Advanced Deep-Dive  ·  NR numerology and the resource grid (TS 38.211 §4.2–4.3)

Numerology μ scales subcarrier spacing as Δf = 2μ·15 kHz and, inversely, OFDM symbol and slot duration. A slot is always 14 OFDM symbols, so a higher μ packs more slots per millisecond — more scheduling opportunities and lower latency, at the cost of a shorter cyclic prefix (less delay-spread tolerance). The whole MIMO machinery — SSB, CSI-RS, DM-RS, SRS — is placed on the resulting resource grid of 12 subcarriers × 14 symbols per RB-slot, and a bandwidth part (BWP) selects a contiguous chunk of it with one numerology, so a UE need not process the full carrier.

SCS Δf = 2^μ · 15 kHz μ ∈ {0,1,2,3,4} slot 14 symbols, length = 1 ms / 2^μ slots/frame 10 · 2^μ # 10 ms radio frame RB 12 subcarriers (any μ) BWP contiguous PRBs, one numerology
Worked example At μ=1 (30 kHz, the workhorse mid-band), the slot is 1 ms / 2 = 0.5 ms, giving 20 slots per 10 ms frame — twice LTE's scheduling cadence — while each RB still spans 12·30 kHz = 360 kHz. This denser time grid is what lets NR react fast enough for the beam-tracking loops of Part Eight.
"What is numerology in NR and why is it flexible?"
Numerology μ sets the subcarrier spacing, SCS = 15·2^μ kHz (15–120 kHz, 240 for SSB). Higher μ = wider subcarriers = shorter symbols/slots = lower latency and better tolerance of Doppler/phase noise at high bands, at the cost of overhead. It lets one air interface serve low‑band coverage to mmWave.
"How many symbols in a slot, and how do slots scale?"
A slot is 14 OFDM symbols (normal CP), always. Slots‑per‑subframe = 2^μ, so 1 at 15 kHz, 2 at 30 kHz, 8 at 120 kHz — the subframe stays 1 ms; slots get shorter as μ rises.
"RE vs RB in NR — and the difference from LTE?"
An RE is one subcarrier × one symbol (one QAM symbol). An RB is 12 subcarriers. Unlike LTE, an NR RB is a pure frequency grouping (12 subcarriers), not tied to a number of symbols — more flexible for scheduling.
"What is a Bandwidth Part and why use it?"
A contiguous slice of a wide carrier, with its own numerology, that the UE operates within — up to 4 configured, one active. It saves UE power (work on a narrow slice) and adapts bandwidth/numerology to the service; an initial BWP is used for access. All MIMO action happens inside the active BWP.
"Where do DL and UL MIMO layers actually ride?"
DL layers ride on PDSCH (demodulated via DM‑RS); UL layers on PUSCH. PDCCH carries DL control (DCI), PUCCH carries UL control including RI/PMI/CQI feedback, PBCH/SSB carries sync/broadcast, PRACH is random access.

Section 9.11What to carry out of this chapter

  • Numerology μ sets SCS = 15·2^μ kHz; higher μ = shorter slots = lower latency. One dial drives the whole time structure.
  • Frame 10 ms → subframe 1 ms → slot = 14 symbols; slots‑per‑subframe = 2^μ.
  • The grid: RE (1 SC × 1 symbol) → RB (12 subcarriers); CP‑OFDM downlink, CP‑OFDM/DFT‑s‑OFDM uplink.
  • Bandwidth parts let a UE work on one active slice of a wide carrier — power vs throughput; all MIMO happens in the active BWP.
  • Physical channels: DL layers on PDSCH, UL on PUSCH; control on PDCCH/PUCCH; sync/broadcast in SSB; random access on PRACH.
  • Specs: 38.211 (canvas), 38.212 (coding), 38.213 (control), 38.214 (data/CSI/MIMO).

In closing9.12 · The canvas is ready

We've laid the canvas the rest of the book paints on. Where LTE handed you one fixed frame, NR hands you a dial — numerology — and from that single choice the whole time structure unfolds by clean powers of two: subcarrier spacing, symbol length, slots per subframe. On top of that sits the resource grid of REs and RBs, sliced into bandwidth parts so one wide carrier can serve a sensor and a 4K stream at once, and carrying a tidy set of physical channels where control, data, sync, and random access each have their place.

Crucially, you now know where MIMO lives: the layers ride on PDSCH and PUSCH, the control and feedback on PDCCH and PUCCH, the beam‑swept sync on the SSB. That map is the prerequisite for everything ahead — because the reference signals, codebooks, and beams of the coming chapters are, concretely, patterns of resource elements placed on this exact grid, within this exact channel structure.

And that's precisely where we go next. In Chapter 10 — NR Reference Signals for MIMO, we place the pilots onto the canvas: the SSB for beam‑swept sync, CSI‑RS for channel measurement and beam refinement, DM‑RS riding with the beamed data, PT‑RS for phase tracking at mmWave, and SRS for uplink sounding and reciprocity. They are the senses of the MIMO system — and now they have a grid to live on.

— end of Chapter 9 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Four — 5G NR Physical Layer for MIMO
CHAPTER TEN

NR Reference Signals
for MIMO

"You can’t beamform at something you can’t measure. Reference signals are how the network sees."

Here's a question that cuts to the heart of 5G: how does the gNB know which way to point a beam? It can't see the user. It has no idea where the walls are, how the signal is fading, or whether the channel just changed because someone walked past. The entire, gorgeous machinery of massive MIMO — the steered beams, the parallel layers, the per‑user precoding — is useless without one thing: a way to measure the channel. Reference signals are that way. They are the network's senses.

And this is exactly where 5G's big architectural break from Chapter 7 pays off. LTE crammed almost every sensing job onto one always‑on signal, CRS, and choked. NR split the senses into five specialised reference signals, each doing one job superbly, each sent only when and where it's needed: the SSB to be found and to pick a coarse beam; CSI‑RS to measure the downlink channel and refine beams; DM‑RS to demodulate the data; PT‑RS to track phase noise at mmWave; and SRS to sound the uplink and unlock reciprocity. No CRS anywhere.

This chapter introduces all five and — crucially — shows where each one lives on the resource grid from Chapter 9 and which MIMO job it serves. Get this chapter solid and the rest of Part 4 onward (CSI feedback, beam management, uplink sounding) becomes a matter of "which reference signal, used how." These five pilots are the vocabulary of everything that follows.

Before we dive inWhat you'll walk away knowing

  • Name the five NR reference signals and the one job each does — and which are downlink vs uplink.
  • Describe the SSB (PSS/SSS/PBCH), how it's beam‑swept, and its role in cell search and coarse beam selection (SSB‑RSRP).
  • Explain CSI‑RS (NZP for measurement, ZP/CSI‑IM for interference), its periodicities, and its role in CSI and beam refinement.
  • Explain DM‑RS: front‑loaded + additional, per‑layer, and why riding with the beamformed data means the UE needs no precoder knowledge.
  • Explain PT‑RS (phase‑noise tracking, FR2) and SRS (uplink sounding, reciprocity, antenna switching).
  • Map each to TS 38.211 / 38.214 and to the MIMO procedure it enables.

Section 10.1The family — five senses, no CRS

Let's meet the whole family at once, because the power of NR's design is in the division of labour. Each signal is specialised and on‑demand:

the five NR reference signals — each one job, on demand DOWNLINK (gNB → UE) SSBfind cell + coarse beam CSI-RSmeasure DL + refine beam DM-RSdemodulate data PT-RStrack phase noise (FR2) DM-RS & PT-RS ride with the data, inside the beam → no precoder needed at UE all sent on-demand · none always-on · no CRS UPLINK (UE → gNB) SRSsound UL · reciprocity DM-RS (UL)demod PUSCH/PUCCH
Figure 10.1 · The five reference signals, divided by job and direction
How to read this picture Left box = downlink pilots (gNB sends), right box = uplink (UE sends). Read each chip as "name → one job." SSB lets you find the cell and pick a coarse beam. CSI‑RS measures the downlink channel and refines beams. DM‑RS demodulates the data — and the key note in the middle: DM‑RS and PT‑RS travel inside the beamformed data, so the UE demodulates whatever beam it was actually served and never needs to be told the precoder (the magic that killed CRS). PT‑RS tracks phase noise, mostly at mmWave. On the uplink, SRS sounds the channel (and unlocks TDD reciprocity), and an uplink DM‑RS demodulates PUSCH/PUCCH. Five specialists, each sent only when needed — the opposite of one always‑on CRS.
PT-RS: a phase reference scattered through the data at high bands red columns = PT-RS, recurring in time to track the oscillator's drifting phase
Figure 10.6 · PT-RS — the phase-noise tracker for FR2
How to read this picture At high carrier frequencies the local oscillators drift in phase fast enough to smear the constellation within a slot. PT-RS (phase-tracking reference signal) sprinkles a few reference subcarriers (red) repeatedly through time so the receiver can measure and undo that common phase rotation symbol-by-symbol. It is sparse in frequency (phase error is common across tones) but dense in time (the drift is fast) — the mirror image of DM-RS — and it is essentially mandatory at FR2 where phase noise, not fading, limits the high-MCS layers.
Who measures what — the reference-signal division of labour signaldirectionjob SSBDLcell + coarse beam acquisition CSI-RSDLchannel state — rank, PMI, CQI, beam DM-RSDL & ULdemodulate the data (per layer) PT-RSDL & ULtrack phase noise (FR2) SRSULsound uplink → DL by reciprocity
Figure 10.7 · The reference-signal division of labour
How to read this picture This table is worth memorising: each NR reference signal has one clear job and direction. SSB is downlink, for finding the cell and a coarse beam. CSI-RS is downlink, for channel state (rank/PMI/CQI). DM-RS rides with the data in both directions to demodulate it. PT-RS tracks phase noise at FR2. SRS is uplink, sounding the channel so the gNB can precode the downlink by reciprocity. NR deliberately replaced LTE's one always-on CRS with these specialised, on-demand signals — less overhead, more flexibility.

Section 10.2SSB — being found, and the first beam

The SSB (SS/PBCH Block) is how a UE finds a cell from cold and gets its first, coarse beam. It packs three things into 4 OFDM symbols × 240 subcarriers (20 RBs): the PSS and SSS (synchronization sequences that give timing and the physical cell ID — 1008 of them), and the PBCH (the broadcast channel carrying the essential system info, with its own DM‑RS). Crucially for MIMO, the cell doesn't send one SSB — it sends a whole SS burst set of them, each in a different beam, swept across the sector (up to 4 beams at low band, 8 at mid, 64 at mmWave). The UE measures each beam's SSB‑RSRP and latches onto the strongest. That's coarse beam selection — the entry point to all beam management (Chapter 22).

one SSB = 4 symbols × 240 subcarriers PSS PBCH (+DM-RS) SSS PBCH (+DM-RS) sync (PSS/SSS) + broadcast (PBCH) SS burst set — one SSB per beam, swept SSB beam 0 beam 1 beam 2 beam 3 … up to 64 (FR2) UE measures SSB-RSRP per beam → picks the strongest
Figure 10.2 · SSB: a sync+broadcast block, swept across many beams so any UE can find one
How to read this picture Left: the structure of one SSB — four symbols stacking PSS and SSS (timing + cell ID) with PBCH (the broadcast, plus its own DM‑RS). Right: the cell doesn't send just one — it sweeps a whole burst set, each SSB pointed in a different direction (4/8/up to 64 beams). A UE waking up cold measures the SSB‑RSRP of each beam it can hear and locks to the strongest. That single act — "which SSB beam is best?" — is the seed of all beam management: it's the coarse pointing that CSI‑RS later refines (Chapter 24) and that the whole sweep‑measure‑report cycle of Part 8 is built on.

Section 10.3CSI-RS — measuring the downlink

Once connected, the UE needs to measure the channel precisely to feed back RI/PMI/CQI and to refine beams. That's the CSI‑RS's job — the very signal LTE‑Advanced invented (Chapter 8) and NR made central. It comes in two flavours: NZP CSI‑RS (Non‑Zero‑Power) that the UE measures the channel on (up to 32 ports), and ZP CSI‑RS / CSI‑IM (Zero‑Power / interference measurement) where the UE measures the interference in deliberately emptied REs. A special NZP configuration, the TRS (Tracking Reference Signal), handles fine time/frequency tracking. CSI‑RS can be periodic, semi‑persistent, or aperiodic (triggered on demand) — sparse, scheduled when useful, never the always‑on tax CRS was.

CSI-RS: sparse pilots for channel (NZP) + interference (CSI-IM) NZP CSI-RS (measure channel) CSI-IM (measure interference) periodic /semi-persistent /aperiodic
Figure 10.3 · CSI-RS: a few measurement REs for the channel, a few emptied REs for interference
How to read this picture The grid is a slice of the resource grid from Chapter 9. The solid blue squares are NZP CSI‑RS — known pilots the UE measures to estimate the channel (and from it compute RI/PMI/CQI and refine beams); a second small cluster stands in for the tracking‑RS (TRS). The red‑outlined squares are CSI‑IM — REs deliberately left empty so the UE can measure how much interference lands there. Together they tell the UE both "how good is my signal" and "how bad is the interference," which is what CQI really reflects. And note the side label: CSI‑RS is sent periodic, semi‑persistent, or aperiodic — scheduled only when useful, never the always‑on flood that CRS was. This sparse, on‑demand measurement is what lets NR scale to 32 ports.
▸ Advanced · 3GPP deep-dive — CSI-RS configuration & overhead

CSI-RS is configured via NZP-CSI-RS-Resource (signal: TS 38.211 §7.4.1.5; RRC: TS 38.331). The fields that decide performance:

nrofPorts {1,2,4,8,12,16,24,32} # ≤32 for codebook CSI cdm-Type {noCDM, fd-CDM2, cdm4-FD2-TD2, cdm8-FD2-TD4} density (ρ) {0.5, 1, 3} # ρ=3 only for TRS resourceType {periodic, semi-persistent, aperiodic} freqDomainAllocation bitmap → row of Table 7.4.1.5.3-1 powerControlOffsetSS {-3..+3 dB} # CSI-RS EPRE vs SSB

Aperiodic CSI-RS is triggered by the CSI request field of DCI format 0_1; semi-persistent by MAC CE. The TRS (tracking RS) is simply an NZP set with trs-Info=true, density 3, for fine time/frequency tracking. Interference is measured on CSI-IM (ZP) resources, pattern0 (2×2) or pattern1 (4×1) — that is what makes CQI an SINR, not just an RSRP.

Worked — overhead A 32-port resource at ρ=1 costs 32 REs per RB per occasion. Over a 273-RB BWP with a 20-slot period, time-averaged overhead ≈ 32 / (168 × 20) ≈ 0.95% of REs — versus a 4-port CRS pattern's ~10% continuous load (Ch.7). ~10× cheaper at 8× the ports: that is precisely why NR scales to 32 ports and LTE could not.

Counters to watch: per-resource L1-RSRP, RI.Distr[1..8], wideband/subband CQI histograms, CSI report drop/late rate, cri (CRI) distribution.

Section 10.4DM-RS — the pilot that rides the beam

If one reference signal embodies why NR could delete CRS, it's DM‑RS (Demodulation Reference Signal). DM‑RS is transmitted together with the data it serves — on PDSCH, PUSCH, PDCCH, PBCH — and precoded with exactly the same beam. That's the masterstroke: because the pilot goes through the same beamforming as the data, the UE estimates the effective channel (channel × precoder) and demodulates correctly without ever knowing what precoder the gNB used. The gNB can beam however it likes; the DM‑RS makes it transparent to the UE. There's one DM‑RS port per layer (so DM‑RS ports map directly to MIMO layers — up to 8, or 12 with double‑symbol DM‑RS). It's front‑loaded (early in the allocation, so decoding can start fast), with additional DM‑RS symbols added for high‑mobility UEs where the channel changes within a slot.

DM-RS rides inside the PDSCH allocation, in the same beam PDSCH (data · layers) front-loadedDM-RS additional(high mobility) → time 1 DM-RS port per layer · UE estimates channel×precoder → no precoder knowledge needed
Figure 10.4 · DM-RS: front-loaded for fast decode, extra symbols for fast UEs — always in the data's own beam
How to read this picture The shaded block is a PDSCH allocation (data, carrying the MIMO layers). The dark column near the front is the front‑loaded DM‑RS — placed early so the UE can estimate the channel and start decoding without waiting for the whole slot. The second column is an additional DM‑RS, inserted for fast‑moving UEs whose channel drifts within the slot (more pilots = better tracking, at a little overhead). The essential idea: because DM‑RS is beamformed with the same precoder as the data, the UE measures the combined "channel × precoder" and demodulates correctly without being told the precoder. One DM‑RS port per layer ties this straight to MIMO rank — which is exactly the subject of Chapter 11.
▸ Advanced · 3GPP deep-dive — DM-RS types, CDM groups & ports → layers

DM-RS configuration (TS 38.211 §7.4.1.1; RRC DMRS-DownlinkConfig):

dmrs-Type type1 | type2 type1 → 2 CDM groups, ports 1000–1007 # max 8 (double-symbol) type2 → 3 CDM groups, ports 1000–1011 # max 12 (double-symbol) maxLength len1 (single) | len2 (double-symbol) dmrs-AdditionalPosition pos0 | pos1 | pos2 | pos3 # ↑ for high Doppler mappingType typeA (slot) | typeB (mini-slot)

Single-symbol Type 1 → 4 orthogonal ports (FD-CDM2 × 2 groups); double-symbol → 8. Type 2 → 6 / 12. One DM-RS port = one MIMO layer, so the DM-RS type caps both single-user rank and MU-MIMO co-scheduling: paired users are separated by orthogonal ports / CDM groups (OCC within a group, FDM across groups). This is the concrete mechanism behind "up to 8 DL layers."

Worked — mobility At 3 km/h, dmrs-AdditionalPosition=pos0 (front-loaded only) is fine. At 120 km/h / 3.5 GHz the coherence time ≈ 1.3 ms is shorter than a 30 kHz slot, so the channel ages within the slot — use pos1–pos2 (2–3 DM-RS symbols) or first-transmission BLER climbs. This is Chapter 2's CSI-ageing fought at the pilot level.

Section 10.5PT-RS and SRS — phase noise and uplink sounding

Two specialists round out the family. PT‑RS (Phase‑Tracking Reference Signal) exists because at high frequencies (FR2 mmWave) the local oscillators introduce phase noise that smears high‑order constellations across a symbol. PT‑RS is a sparse pilot (associated with a DM‑RS port) that lets the receiver track and undo this common phase error — essential for 256‑QAM at mmWave, negligible at low band.

SRS (Sounding Reference Signal) is the uplink's workhorse pilot, and it does several MIMO‑critical jobs: it lets the gNB estimate the uplink channel (for UL scheduling and UL MIMO precoding, codebook or non‑codebook), it supports antenna switching (a UE with more receive than transmit chains sounds each antenna in turn), and — the big one — in TDD, because uplink and downlink share the frequency, the gNB can use the SRS‑measured uplink channel to compute the downlink beamforming weights directly, exploiting reciprocity and skipping codebook feedback entirely.

SRS: UE sounds the uplink → gNB reuses it for the downlink (TDD reciprocity) gNB UE ① SRS (uplink) — UE sounds the channel ② gNB measures the UL channel ③ DL beam computed from it — no codebook feedback needed
Figure 10.5 · SRS and reciprocity: measure the uplink, beamform the downlink for free
How to read this picture Follow the three steps. ① The UE transmits an SRS up to the gNB (red, uplink). ② The gNB measures the uplink channel from it. ③ Because TDD uplink and downlink share the same frequency, the channel is essentially the same both ways, so the gNB computes the downlink beamforming weights straight from the SRS measurement (blue) — without waiting for the UE to feed back a codebook PMI. This is reciprocity‑based beamforming, and it's a big reason TDD massive MIMO performs so well: the uplink sounding does the channel‑measurement work for both directions. (The catch — RF chains must be calibrated for this to hold — is Chapter 28.)
▸ Advanced · 3GPP deep-dive — SRS usage, comb & the reciprocity caveat

SRS configuration (RRC SRS-Config; signal TS 38.211 §6.4.1.4; procedures TS 38.214 §6.2):

usage beamManagement | codebook | nonCodebook | antennaSwitching nrofSRS-Ports port1 | ports2 | ports4 resourceType periodic | semi-persistent | aperiodic transmissionComb n2 | n4 # comb-N → 1/N of subcarriers; N users multiplexed resourceMapping nrofSymbols {1,2,4}, startPosition, freqHopping

usage=codebook → gNB selects UL precoder + TPMI from the SRS; nonCodebook → UE forms candidate UL beams from DL CSI-RS and sounds them; antennaSwitching (1T2R, 1T4R, 2T4R…) → a UE with more Rx than Tx chains sounds each antenna in turn so the gNB learns the full channel for reciprocity.

The reciprocity caveat: only the over-the-air channel is reciprocal — the Tx and Rx RF chains are not. A per-branch reciprocity calibration removes the chain mismatch; without it, SRS-derived DL beams point wrong even with perfect sounding (full treatment in Ch.28).

Worked — sounding vs freshness SRS comb-4, 4 symbols, period 5 slots costs < 0.2% of UL REs, but its period sets DL beam freshness: at 250 km/h the channel decorrelates in < 1 ms, so a 5-slot (2.5 ms at 30 kHz) SRS period gives stale reciprocity beams — shorten the period or fall back to codebook PMI.

Section 10.6Where the rules live (3GPP map)

SignalDefined inProcedures inMIMO job
SSB (PSS/SSS/PBCH)TS 38.211TS 38.213 (initial access, beam)sync + coarse beam (SSB-RSRP)
CSI-RS (NZP/ZP/CSI-IM, TRS)TS 38.211TS 38.214 (CSI)DL measurement, beam refinement
DM-RSTS 38.211TS 38.214demodulation; ports = layers
PT-RSTS 38.211TS 38.214phase-noise tracking (FR2)
SRSTS 38.211TS 38.214 (UL), TS 38.213UL sounding, reciprocity, antenna switching
The bridge to remember
SSB → CSI‑RS is the coarse‑to‑fine beam path (Chapters 22, 24). DM‑RS ports → MIMO layers (Chapter 11). CSI‑RS → RI/PMI/CQI (Part 7). SRS → reciprocity and UL MIMO (Part 9). Learn the five signals and you have the skeleton of Parts 7–9.

Section 10.7How reference signals show up in your KPIs

Signal behaviourKPI fingerprintMeaning
SSB beam coverageSSB-RSRP per beam; best-beam distributioncoarse beam health / coverage holes
CSI-RS config qualityaccuracy/stability of RI/PMI/CQI; beam-refinement gaingood CSI → good link adaptation
Insufficient additional DM-RSBLER rises with UE speed (channel ages within slot)add DM-RS symbols for mobility
PT-RS missing/insufficient at FR2high-MCS BLER, constellation rotationphase noise un-tracked
SRS coverage/periodUL channel-estimate quality; reciprocity beam accuracyweak SRS → poor DL reciprocity beams

Section 10.8A field case the reference signals explain

"Reciprocity-based DL beamforming is underperforming on a TDD massive-MIMO cell, even with good coverage." Reciprocity beams are computed from the UE's SRS, so suspect the uplink sounding chain. Common causes: SRS coverage is poor (the UE's uplink is weaker than its downlink, so the gNB's channel estimate is noisy — worse at the cell edge), SRS periodicity is too slow for the UE's mobility (the sounded channel is stale by the time the DL beam is used — Doppler/CSI‑ageing from Chapter 2), or — the silent killer — the RF chains aren't calibrated, so the assumed reciprocity doesn't hold (Chapter 28). Fixes: improve SRS power/coverage, shorten SRS period for faster UEs, and verify calibration. Note the pattern: a downlink problem whose root cause is an uplink reference signal — exactly the kind of cross‑link reasoning these five signals force you to learn.

Section 10.9Mini-lab: place the pilots

  1. Sketch one SSB (4 symbols) with PSS/SSS/PBCH; then a burst set of 8 beam‑swept SSBs and assign a few UEs to their best SSB‑RSRP beam.
  2. On a resource‑grid slice, place an NZP CSI‑RS (say 4 ports) and a CSI‑IM region; compute the overhead and compare to a 4‑port CRS pattern from Chapter 7 (CSI‑RS should be far cheaper).
  3. Lay a PDSCH allocation with front‑loaded DM‑RS, then add an additional DM‑RS symbol; reason about the overhead vs mobility trade.
  4. Model SRS reciprocity: estimate the UL channel from a noisy SRS, use it as the DL precoder, and watch DL performance degrade as you add SRS noise (weak SRS) or delay (stale SRS) — the two field failure modes.

Section 10.10If they put you on the spot

"Name the NR reference signals and one job each."
SSB (sync + coarse beam via SSB‑RSRP), CSI‑RS (DL channel measurement + beam refinement; NZP channel, ZP/CSI‑IM interference), DM‑RS (demodulation; one port per layer), PT‑RS (phase‑noise tracking at FR2), SRS (uplink sounding, reciprocity, antenna switching). No CRS.
"Why can the gNB beamform without telling the UE the precoder?"
Because DM‑RS is precoded with the same beam as the data. The UE estimates the effective channel (channel × precoder) from DM‑RS and demodulates correctly without knowing the precoder. This transparency is what let NR remove CRS.
"What is the SS burst set and why does it matter for MIMO?"
A set of SSBs each transmitted in a different beam, swept across the sector (up to 64 at FR2). The UE measures SSB‑RSRP per beam and selects the best — coarse beam acquisition, the entry point to beam management.
"How does SRS enable downlink beamforming in TDD?"
The UE sends SRS; the gNB estimates the uplink channel. Since TDD shares the frequency, the channel is reciprocal, so the gNB computes downlink weights directly from the SRS estimate — no codebook feedback. It requires RF‑chain calibration to hold.
"Difference between NZP CSI-RS and CSI-IM?"
NZP CSI‑RS is a transmitted pilot the UE measures the channel on. CSI‑IM (ZP) is deliberately emptied REs where the UE measures interference. Together they give the SINR that CQI reflects.

Section 10.11What to carry out of this chapter

  • NR splits sensing into five on‑demand reference signals (no CRS): SSB, CSI‑RS, DM‑RS, PT‑RS, SRS.
  • SSB (PSS/SSS/PBCH) is beam‑swept; the UE picks the best beam by SSB‑RSRP — coarse beam acquisition.
  • CSI‑RS measures the DL (NZP channel, CSI‑IM interference), periodic/SP/aperiodic — feeds RI/PMI/CQI and beam refinement.
  • DM‑RS rides with the beamformed data (one port per layer), so the UE needs no precoder knowledge — the reason CRS could die.
  • PT‑RS tracks phase noise at FR2; SRS sounds the uplink and, in TDD, gives the DL beam via reciprocity.

In closing10.12 · The network's senses

We began with a network that's effectively blind — a gNB that can't see the user, the walls, or the fading — and we end with five precise senses that let it perceive everything it needs to. The SSB lets it be found and offers a coarse beam; CSI‑RS measures the downlink in detail; DM‑RS makes any beam demodulable without explanation; PT‑RS steadies the high‑frequency constellations; and SRS lets the uplink do double duty, sounding a channel the downlink can borrow. Each is sparse, specialised, and sent only when needed — the deliberate opposite of LTE's one overworked CRS.

Notice how this chapter quietly wired together the whole book. DM‑RS riding the beam is the mechanism behind the "transparent precoding" we kept invoking. CSI‑RS feeding RI/PMI/CQI is the SVD‑as‑feedback bridge from Chapter 3. SSB sweeping is the start of beam management. SRS reciprocity is the uplink‑to‑downlink shortcut we'll exploit in Part 9. These five signals are the connective tissue of NR MIMO.

There's one phrase I used repeatedly and now owe you in full: "one DM‑RS port per layer." Ports, layers, codewords — we've leaned on these words since Chapter 1 without nailing down how they map in NR. That's the final foundation of Part 4. In Chapter 11 — Antenna Ports and Layers in NR, we'll trace the complete chain from a codeword through layer mapping to antenna ports and DM‑RS, and finally make the words rank, layer, port, and codeword precise.

— end of Chapter 10 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Four — 5G NR Physical Layer for MIMO
CHAPTER ELEVEN

Antenna Ports
and Layers in NR

"Codeword, layer, port, element — four words, four different things. Here is exactly where each one lives."

We have been throwing four words around since Chapter 1 — codeword, layer, antenna port, element — and leaning on phrases like "one DM‑RS port per layer" as if they were obvious. They are not. They are four distinct stages of a precise transmit chain, and the gap between them is where a startling amount of field confusion lives (remember the four engineers in Chapter 4 who all said different numbers). This is the chapter that nails them down, end to end, in NR terms — and it's the keystone of Part 4, because everything in Parts 7–9 (CSI feedback, beam management, uplink MIMO) is expressed in this vocabulary.

The chain runs in one direction: a transport block becomes a codeword after coding, codewords are spread across layers (the rank), layers are mapped through a precoder onto antenna ports, and ports are virtualized (Chapter 4) onto physical elements. Each arrow in that chain is defined in TS 38.211, and each has a number attached — and those numbers are exactly what RI, the DCI antenna‑port field, and the DM‑RS configuration carry.

By the end you'll be able to draw the whole chain from memory, state precisely why NR uses one codeword up to rank 4 and two beyond it, explain how DM‑RS ports map to layers and how that same mechanism separates MU‑MIMO users, and read the DCI fields that actually command all of this on a live link. The narrative will keep it intuitive; the Advanced Deep‑Dive blocks will give you the exact IEs, tables, and DCI fields an expert needs.

Before we dive inWhat you'll walk away knowing

  • Draw the full DL chain: transport block → codeword → layers → precoder → antenna ports → DM‑RS.
  • Define codeword precisely and explain the 1‑CW (rank ≤4) vs 2‑CW (rank 5–8) rule and why it exists.
  • State the layer‑mapping table (TS 38.211 §7.3.1.3) and that rank = number of layers.
  • Explain that DL precoding is transparent to the UE (via DM‑RS), and how the DCI antenna‑port field signals ports + CDM groups.
  • Explain how DM‑RS ports (1000–1011) map to layers and how the same ports separate MU‑MIMO users.
  • Disambiguate codeword vs layer vs port vs element once and for all, and connect UL codebook vs non‑codebook.

Section 11.1The transmit chain, end to end

Let's lay out the whole assembly line first; the rest of the chapter zooms into each stage. Data starts as one or two transport blocks (from the MAC), each gets a CRC and LDPC coding, scrambling and modulation — emerging as a codeword (a stream of QAM symbols). The layer mapper distributes codeword symbols across the ν transmission layers. The precoder W mixes layers onto antenna ports (and DM‑RS is generated per port, precoded identically). Finally ports are virtualized onto physical elements (Chapter 4) and OFDM‑modulated onto the grid (Chapter 9).

DL chain: transport block → codeword → layers → ports → elements transportblock (MAC) codewordLDPC+QAM layers (ν)= rank precoder W+ DM-RS antennaports physicalelements 1 or 2 1–8 DM-RS 1000–1011 virtualized (Ch.4) each arrow is a defined step in TS 38.211 — and each has a number RI/DCI/DM-RS carries
Figure 11.1 · The downlink chain: every stage between data and antenna, with its count
How to read this picture Read the assembly line left to right. A transport block from the MAC is coded and modulated into a codeword (1 or 2 of them). The layer mapper spreads codeword symbols across layers — and the number of layers is the rank ν (1 to 8). The precoder W mixes those layers onto antenna ports, generating a DM‑RS per port with the same precoding (so the UE never needs W). Ports are then virtualized onto the physical elements from Chapter 4 and painted on the grid from Chapter 9. The small numbers under each box are the counts that the system actually signals: 1–2 codewords, 1–8 layers, DM‑RS ports 1000–1011. Memorise this chain — every later chapter speaks in these stages.
Codeword → layer mapping: 1 CW up to 4 layers, 2 CW for 5–8 layers (rank)codewordsnote 1 – 41 codewordsingle MCS / HARQ 5 – 82 codewordstwo independent MCS / HARQ two codewords let the strong and weak layer groups carry different modulation & retransmit separately
Figure 11.4 · How codewords map to layers in NR
How to read this picture NR keeps a deliberately simple rule: ranks 1-4 use a single codeword spread over all the layers; only ranks 5-8 add a second codeword. Why two? With many layers their qualities diverge, so splitting them into two codewords lets each carry its own modulation-and-coding and be retransmitted independently when only one group fails — fewer wasted retransmissions. This is leaner than LTE's scheme and is the bridge between the CQI the UE reports and the HARQ machinery that carries the bits.
NR antenna-port numbering — the range tells you the signal port rangesignalused for 1000+PDSCH DM-RSdownlink data layers 2000+PDCCH DM-RSdownlink control 3000+CSI-RSchannel measurement 4000+SS/PBCH (SSB)synchronisation
Figure 11.5 · NR antenna-port number ranges (TS 38.211)
How to read this picture NR encodes meaning into the antenna-port number itself: the thousand-block tells you which physical signal a port belongs to. Ports from 1000 carry PDSCH DM-RS (downlink data layers), 2000 PDCCH DM-RS (control), 3000 CSI-RS (measurement), 4000 the SSB. So when a log says 'port 3001' you immediately know it's a CSI-RS port, not a data layer. It is a small convention, but it makes the otherwise-abstract 'antenna port' concept concrete when you read traces or specs.

Section 11.2Codewords — why one, sometimes two

A codeword is one transport block after channel coding — a self‑contained chunk with its own CRC, its own LDPC coding, and critically its own MCS and HARQ process. NR allows at most two codewords. The rule is simple: rank 1–4 uses one codeword; rank 5–8 uses two. Why split at 5? Two reasons. First, decoding complexity and feedback: spreading 5–8 layers across two codewords lets each carry an independent MCS and be HARQ‑retransmitted independently, which is far more efficient than one giant codeword failing wholesale. Second, the layers at high rank tend to split into two quality groups (strong eigen‑channels vs weaker ones — Chapter 3), so giving each group its own MCS matches the link better.

▸ Advanced · 3GPP deep-dive — codeword-to-layer mapping (TS 38.211 §7.3.1.3)

The layer mapper distributes complex symbols d(q)(i) of codeword q onto ν layers. The codeword count Ncw is fixed by rank:

rank ν codewords layers per CW 1 1 1 2 1 2 3 1 3 4 1 4 ───────── split at 5 ───────── 5 2 CW0:2 CW1:3 6 2 CW0:3 CW1:3 7 2 CW0:3 CW1:4 8 2 CW0:4 CW1:4

Each codeword carries its own mcs and HARQ process ID; in DCI 1_1 the fields MCS, NDI, RV appear per codeword (CW1 fields present only when rank > 4). A codeword can be independently disabled (MCS=26, RV=1 convention) for HARQ retransmission of just the failed transport block.

Worked — why split helps Rank 6 on an ill-conditioned channel (κ large, Ch.3): eigen-layers 1–3 support 256-QAM, layers 4–6 only 16-QAM. One codeword would force a single compromise MCS; two codewords (CW0=3 strong layers @256-QAM, CW1=3 weak @16-QAM) match each group → higher aggregate TBS and independent HARQ on the weak group.

Section 11.3Layers and rank — the same number

The point that trips beginners: "rank" and "number of layers" are the same number, ν. Rank is the channel‑theory word (Chapter 3: how many independent eigen‑channels the channel supports); layers is the transmission word (how many independent streams you actually send). The UE recommends a rank via RI; the gNB chooses the actual ν (often equal to or below the RI) and transmits that many layers. Each layer rides one eigen‑channel‑ish direction, and — the rule we keep repeating — each layer is carried by exactly one DM‑RS port, which is how the UE separates them on receive.

rank ν = layers = DM-RS ports (1 port per layer) rank 2 · 1 CW CW0 L0 L1 p1000p1001 rank 4 · 1 CW CW0 L0–L3 → ports 1000–1003 rank 6 · 2 CW CW0 CW1 3 layers3 layers RI recommends ν · gNB sends ν layers · each layer = one DM-RS port the UE separates rank (channel theory) and layers (transmission) are the same ν
Figure 11.2 · Codewords split into layers, each layer carried by its own DM-RS port
How to read this picture Three rank examples. At rank 2, one codeword (CW0) is split into two layers L0/L1, carried on DM‑RS ports 1000 and 1001. At rank 4, still one codeword, four layers on ports 1000–1003. At rank 6, the codeword count jumps to two (CW0 + CW1), each feeding 3 layers — the split‑at‑5 rule from the last section. In every case the chain is the same: codeword(s) → ν layers → ν DM‑RS ports, one port per layer. That last fact is the whole reason the receiver can pull the layers apart: it has a distinct, orthogonal pilot (DM‑RS port) for each one. "Rank," "layers," and "number of DM‑RS ports" are three names for the same ν.

Section 11.4Precoding and antenna ports — transparent by design

Now the elegant part NR got right. In the downlink, the gNB applies a precoder W to map layers onto antenna ports, but — thanks to DM‑RS riding the same precoding (Chapter 10) — the UE never needs to know W. It estimates the effective channel H·W from the DM‑RS and demodulates. So DL precoding is transparent: the gNB can use a codebook precoder, a reciprocity‑derived precoder, or anything it likes. What the UE is told, in the DCI, is which DM‑RS ports carry its layers and how many CDM groups are in use — not the precoder itself.

▸ Advanced · 3GPP deep-dive — the DCI antenna-port field & transparent precoding

For PDSCH (DCI format 1_1), the UE is not given W. Instead it receives:

Antenna Port(s) → table (38.212) selects: DM-RS port set, #layers, #CDM groups without data Transmission Configuration TCI state → QCL / beam (Ch.25) DMRS sequence init nSCID ∈ {0,1} SRS Resource Indicator (UL) SRI → which sounded beam (UL) Precoding info (UL only) TPMI + TRI (codebook UL)

Note the asymmetry: DL precoding is transparent (UE sees only ports via the antenna-port table); UL precoding is explicit — for codebook-based PUSCH the gNB signals the precoder index TPMI and rank TRI, constrained by codebookSubset ∈ {fullyAndPartialAndNonCoherent, partialAndNonCoherent, nonCoherent} and maxRank. Non-codebook UL instead uses the SRI to pick the UE's own SRS-derived beam.

"Number of DM-RS CDM groups without data" is the field that enables MU-MIMO rate matching: it tells the UE how many CDM groups are reserved for DM-RS (its own + co-scheduled users') so it punctures those REs correctly.

Section 11.5DM-RS ports and how MU-MIMO shares them

DM‑RS ports are numbered 1000–1011 for PDSCH. They're organised into CDM groups — ports within a group are separated by orthogonal cover codes (OCC) over frequency (and time, for double‑symbol); different groups sit on different subcarriers (FDM). This structure does double duty. For a single user, the ν ports carry the ν layers. For MU‑MIMO, the gNB hands different ports to different users on the same PRBs — User A on ports 1000–1001, User B on 1002–1003 — so their DM‑RS stay orthogonal and the receiver (plus the beamforming nulls from Chapter 5) keeps the users separable.

MU-MIMO: same PRBs, different DM-RS ports → users stay orthogonal same time/frequency (shared PRBs) UE A · ports 1000–1001 (CDM grp 0) UE B · ports 1002–1003 (CDM grp 1) UE A UE B orthogonal DM-RS ports + beam nulls (Ch.5) keep them apart
Figure 11.3 · MU-MIMO reuses the same PRBs by giving each user different (orthogonal) DM-RS ports
How to read this picture Two users, same PRBs, same time — that's MU‑MIMO. They don't collide because the gNB gives them different DM‑RS ports: UE A on ports 1000–1001 (CDM group 0), UE B on 1002–1003 (CDM group 1). Because those pilots are mutually orthogonal, each UE can estimate its own channel cleanly, and the gNB's beams (with nulls steered toward the other user, Chapter 5) keep the data separable too. So the DM‑RS port structure is the linchpin of both single‑user rank (ports = layers) and multi‑user pairing (ports = users). When MU‑MIMO "won't pair" (Chapter 35), the DM‑RS port budget and CDM‑group config are among the first things to check.
▸ Advanced · 3GPP deep-dive — DM-RS ports, CDM groups & MU-MIMO capacity
DM-RS type 1 2 CDM groups · ports 1000–1007 · OCC length-2 (FD) single-symbol → 4 ports ; double-symbol (maxLength=2) → 8 ports DM-RS type 2 3 CDM groups · ports 1000–1011 single-symbol → 6 ports ; double-symbol → 12 ports CDM separation OCC across subcarriers (FD-CDM2) + symbols (TD) for double

The orthogonal port budget caps simultaneous MU-MIMO streams: Type 1 single-symbol offers 4 orthogonal ports → up to 4 spatial streams across all co-scheduled users (e.g., 4×1-layer users, or 2×2-layer). Type 2 / double-symbol expands this for higher MU order. The DCI "number of CDM groups without data" must cover all paired users' DM-RS so each rate-matches around the others' pilots.

Worked — MU order 64T64R, DM-RS Type 1 double-symbol (8 orthogonal ports), good channel separation: pair up to 8 single-layer users (8×1) or 4 two-layer users (4×2) on the same PRBs → cell-level spectral efficiency multiplies even though each UE still sees ≤ its own modest rank. This is where massive-MIMO capacity actually comes from — users in parallel, not layers per user (Ch.4, Ch.16).

Section 11.6Codeword vs layer vs port vs element — settled

Here is the table to memorise. Four words, four meanings, four typical counts:

TermWhat it isCount (NR DL)Set by
Codewordone coded transport block (own MCS/HARQ)1 (rank ≤4) or 2 (rank 5–8)rank → §7.3.1.3
Layerone independent spatial stream (= rank ν)1–8RI / gNB scheduler
Antenna portlogical entity = one DM‑RS port= ν (1000–1011)DCI antenna‑port field
(Physical) elementactual radiator; many per portup to 192+hardware / virtualization

Read it top to bottom and the chain from Figure 11.1 is just this table: a couple of codewords fan out into up to eight layers, each layer gets one antenna (DM‑RS) port, and each port is virtualized onto many physical elements. Uplink is the mirror image with up to 4 layers, except the precoder is explicit (codebook TPMI/TRI) or UE‑chosen (non‑codebook via SRI).

Section 11.7Where the rules live (3GPP map)

Concept3GPP home (NR)
Layer mapping, precoding, antenna ports, DM-RSTS 38.211 §6.3 / §7.3
DCI formats (1_1 DL, 0_1 UL), antenna-port table, MCS/RV/NDI per CWTS 38.212
RI/PMI/CQI reporting; UL codebook (TPMI/TRI), maxRank, codebookSubsetTS 38.214
DMRS-Downlink/UplinkConfig, maxRank, codebook configTS 38.331
The bridge to remember
RI (Ch.18) sets ν → codeword count (1 or 2) → layers → DM-RS ports (1000–1011) → virtualized elements (Ch.4). DL precoding is transparent (DM-RS); UL precoding is explicit (TPMI/TRI or SRI). MU-MIMO is "different ports to different users" — the same machinery.

Section 11.8How this shows up in your KPIs

SituationKPI fingerprintMeaning
Rank distributionRI.Distr[1..8]; share at rank ≥5 (2-CW)how often high-rank/2-CW is used
Per-CW BLER divergenceCW0 vs CW1 BLER differeigen-layer quality split (Ch.3) — expected at high rank
MU-MIMO pairing rateavg co-scheduled users; DM-RS port utilisationport/CDM budget & channel separation
DM-RS port collisionselevated MU inter-user interferencepoor pairing orthogonality

Section 11.9A field case this chapter explains

"Rank-5+ transmissions show CW1 BLER far worse than CW0 — is the radio faulty?" Usually not. At rank 5–8 the two codewords carry different eigen‑layer groups (Chapter 3): CW0 the strong layers, CW1 the weaker ones. On an ill‑conditioned channel the weak layers have lower SINR, so even with per‑CW link adaptation, CW1 sits at lower MCS and its BLER can run hotter if the scheduler is slightly optimistic. The fix isn't hardware — it's link‑adaptation tuning (per‑CW MCS/CQI offset) and rank‑override thresholds: if CW1 is chronically failing, the channel may truly only support rank 4, and forcing rank 6 wastes power on layers that don't pay (the κ/condition‑number lesson). Confirm with the RI distribution and per‑CW BLER counters before touching anything. (Full low‑rank/rank‑adaptation treatment in Chapter 34.)

Section 11.10Mini-lab: trace the chain

  1. For ranks 1–8, write out the codeword count and layers‑per‑CW from the §7.3.1.3 table; confirm the split at rank 5.
  2. For a 2×2 then 4×4 channel, compute the SVD (Chapter 3), pick ν, and map ν layers → ν DM‑RS ports; note which CDM groups are used (Type 1 vs Type 2).
  3. Simulate MU‑MIMO: assign UE A ports 1000–1001 and UE B 1002–1003 on the same PRBs; verify orthogonal DM‑RS lets each estimate its own channel; then collapse the port separation and watch inter‑user interference rise.
  4. UL: pick a TPMI from the NR UL 2‑Tx/4‑Tx codebook for a given channel and compare to the ideal SVD precoder — quantify the codebook‑quantisation loss (ties back to Chapter 7's PMI lab).

Section 11.11If they put you on the spot

"Codeword, layer, antenna port, element — define each."
Codeword = one coded transport block (own MCS/HARQ), 1 or 2. Layer = one spatial stream; number of layers = rank ν (1–8). Antenna port = logical entity defined by a DM‑RS port (1000–1011), one per layer. Element = a physical radiator; many elements are virtualized into one port.
"Why does NR use 1 codeword up to rank 4 and 2 above?"
Two codewords let the high‑rank layers split into two groups, each with its own MCS and independent HARQ — more efficient than one giant codeword, and a better match because high‑rank eigen‑layers split into strong/weak quality groups (Ch.3).
"Does the UE need to know the DL precoder?"
No. DL precoding is transparent: DM‑RS is precoded with the same W as the data, so the UE estimates the effective channel H·W and demodulates without knowing W. The DCI tells it the DM‑RS ports and CDM groups, not the precoder. (UL is different — codebook UL signals TPMI/TRI explicitly.)
"How does MU-MIMO use DM-RS ports?"
Co-scheduled users on the same PRBs are given different (orthogonal) DM‑RS ports — e.g. UE A on 1000–1001, UE B on 1002–1003 — so their pilots and channels stay separable; the orthogonal port budget (Type 1: 4/8, Type 2: 6/12) caps the simultaneous MU streams.
"Rank vs RI?"
RI is the UE's recommended rank (from CSI‑RS). Rank ν is the actual number of layers the gNB transmits, often ≤ RI. Rank = number of layers = number of DM‑RS ports used.

Section 11.12What to carry out of this chapter

  • The DL chain: transport block → codeword(s) → layers → precoder W → antenna ports → elements.
  • Codeword = coded TB with own MCS/HARQ; 1 CW for rank ≤4, 2 CW for rank 5–8 (§7.3.1.3).
  • Rank = layers = ν; each layer is carried by one DM‑RS port (1000–1011).
  • DL precoding is transparent (DM‑RS); the DCI signals ports + CDM groups, not W. UL precoding is explicit (TPMI/TRI) or SRI‑chosen.
  • MU‑MIMO = different orthogonal DM‑RS ports to different users; the port/CDM budget caps MU order — and that's where massive‑MIMO capacity comes from.

In closing11.13 · Four words, finally precise

We came in with four overloaded words and leave with a single, ordered chain that gives each one a precise place: transport blocks become codewords, codewords fan into layers, layers are precoded onto antenna ports, and ports are virtualized onto elements. Rank is just the number of layers; a DM‑RS port is just the pilot that carries one layer; and the leap from one codeword to two at rank 5 is a deliberate efficiency choice, not a mystery. Most usefully, you can now read the DCI fields and DM‑RS configuration that command all of this on a live link — the antenna‑port table, the per‑codeword MCS, the CDM‑group count — which is the difference between knowing MIMO in theory and operating it.

This also completes Part 4. We now hold the entire 5G NR physical‑layer foundation for MIMO: the flexible canvas (Chapter 9), the five reference signals that sense the channel (Chapter 10), and the codeword‑to‑port chain that turns data into beamed layers (this chapter). Every later part — CSI feedback, beam management, uplink sounding, troubleshooting — is built from exactly these pieces, and now you have them precisely.

From here the book pivots from "what the physical layer provides" to "how we use it." Part 5 opens the beamforming engine itself. In Chapter 12 — What Beamforming Really Means, we go back to first principles — constructive and destructive interference, weighting, phase alignment — and build, from the ground up, the precise notion of a beam weight that everything from codebooks to reciprocity ultimately computes.

— end of Chapter 11 · end of Part 4 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Five — Beamforming Fundamentals
CHAPTER TWELVE

What Beamforming
Really Means

"A beam is not a thing you aim. It is a pattern of agreement between waves."

We've used the word "beam" a hundred times — steered it, swept it, nulled it, put it in a codebook. But we've never stopped to ask the deceptively simple question: what is a beam, physically? Not a flashlight cone (that's a metaphor). Not a thing the antenna "shoots." A beam is something subtler and more beautiful: it is the set of directions where many little waves happen to agree. Where they crest together, you get a beam. Where they fall out of step, you get nothing. Beamforming is the art of arranging that agreement — and it all comes down to a handful of complex numbers called weights.

This chapter goes back to bedrock. We'll start with the only physics that matters here — constructive and destructive interference — and build up, with nothing fancier than "waves add." Then we'll see that controlling where waves agree means controlling each element's phase, that the collection of per‑element phases (and amplitudes) is the beam‑weight vector w, and that the "direction" of a beam is just the angle whose steering vector matches w. Once you hold those three ideas — interference, weights, steering vector — every beamforming method in the rest of the book (DFT codebooks, reciprocity, MRT/ZF/MMSE) is just a different recipe for choosing w.

The narrative keeps it physical and intuitive; the Advanced Deep‑Dive blocks give you the exact vector math — the steering vector a(θ), the array response wHa(θ), matched‑filter (MRT) beamforming, and how it connects to the ZF/MMSE precoders from Chapter 3. By the end, "compute the beam weights" will mean something concrete you could code in ten lines.

Before we dive inWhat you'll walk away knowing

  • Explain constructive vs destructive interference and why it's the entire physical basis of a beam.
  • Define a beam weight (complex: amplitude + phase) and the weight vector w.
  • Write the steering vector a(θ) and the array response wHa(θ), and say where the beam points.
  • Explain matched / conjugate (MRT) beamforming: w aligned to the channel maximises received power.
  • Connect weights to the three precoders — MRT (max signal), ZF (null interference), MMSE (balance) — from Chapter 3.
  • Say where real weights come from: DFT codebooks (feedback) or reciprocity (SRS), per Parts 7 and 9.

Section 12.1Interference — the only physics you need

Two waves of the same frequency, arriving at the same point, add. If their crests line up (in phase), they reinforce — constructive interference, a bigger wave. If one's crest meets the other's trough (out of phase, 180°), they cancel — destructive interference, nothing. That's it. That's the whole engine. A beam exists because, in the beam direction, the waves from all the elements arrive in phase and reinforce; in other directions they arrive at assorted phases and partly or fully cancel.

IN PHASE → reinforce sum = big wave (×N gain) OUT OF PHASE → cancel sum ≈ 0 (a null) A beam = directions where the element waves arrive in phase; nulls = where they cancel.
Figure 12.1 · The whole engine: waves in phase reinforce, waves out of phase cancel
How to read this picture Left: two waves whose crests line up (in phase). Add them and you get the thick dark wave — bigger, stronger. Do this with N elements all in phase and you get N‑fold reinforcement: that's a beam (and the array gain from Chapter 5). Right: two waves where one's crest meets the other's trough (180° out of phase). Add them and they flatten to the red line — nothing, a null. Beamforming is nothing more mystical than arranging, by adjusting each element's timing, which directions get the left picture (reinforcement) and which get the right (cancellation). Master this one idea and the rest of beamforming is bookkeeping.
A progressive phase shift across elements steers the beam equal phase → broadside 0 0 0 0 0 linear phase ramp → steered 0 φ 2φ 3φ 4φ steer angle θ from phase step: φ = (2π/λ)·d·sinθ
Figure 12.4 · How a phase ramp steers the beam
How to read this picture Beam direction is set purely by the phase step between adjacent elements. Feed every element the same phase and the wavefront leaves straight ahead (broadside, left). Add a constant extra phase φ per element — a linear ramp — and the wavefront tilts, steering the beam to an angle θ where φ = (2π/λ)·d·sinθ (right). No moving parts: the array points electronically just by changing numbers. This is the mechanism beneath every beam sweep and every PMI in the book.
The same weights do two jobs: peak on the user, null on interferers array wanted user (peak) interferer (null)
Figure 12.5 · One weight vector, two effects
How to read this picture A single set of beam weights simultaneously shapes the whole radiation pattern — it can place a peak in the direction of your wanted user and a deliberate null where an interferer sits. Beamforming is therefore not just 'pointing energy'; it is sculpting the entire pattern at once, trading degrees of freedom between maximising the signal and cancelling interference. This dual nature is exactly what the precoders of Chapter 14 (MRT vs ZF) exploit, and what makes interference-limited cells improvable without more power.

Section 12.2Weights — the knobs that arrange the agreement

So how do we control where the waves agree? By controlling each element's wave before it leaves — multiplying it by a complex weight wn. A complex number carries two knobs: a phase (which shifts the wave earlier/later — the steering knob) and an amplitude (how loud that element is — the tapering knob from Chapter 5). Stack all N weights into a vector w = [w₀, w₁, …, wN−1], and that vector is the beam. Change w and you change which directions reinforce. A beam isn't drawn in space; it's computed as a set of weights and applied to the elements.

apply phase weights wₙ so all waves arrive in phase AT the UE w₀=∠0 w₁=∠φ w₂=∠2φ w₃=∠3φ UE all in phase→ N× stronger a progressive phase ramp (0, φ, 2φ, 3φ) compensates the path differences → reinforcement at the UE
Figure 12.2 · The weight vector is the beam: phases that make the waves agree at the user
How to read this picture Each element gets a weight wₙ — here pure phase shifts forming a ramp 0, φ, 2φ, 3φ. Those shifts are chosen to exactly cancel the different path lengths from each element to the UE, so that — despite leaving at staggered times — all four waves arrive in phase at the UE and add to an N‑times‑stronger signal (right). That progressive phase ramp is steering (Chapter 5), now seen as a weight vector. Flip a couple of signs and the waves would cancel at the UE instead. So the beam lives entirely in the numbers w = [w₀…w₃]: choose them to align at your user, and you've "pointed" a beam without anything physically moving.

Section 12.3The steering vector — and the best possible weights

Here's the clean way to think about it. For any direction θ, there's a vector that describes the phase each element would see from that direction — the steering vector a(θ). The combined array response in direction θ is just how well your weights w line up with a(θ). The beam points strongest in the direction where w matches the steering vector. And the optimal weights to maximise power toward a target are simply the (conjugate of the) channel/steering vector itself — point your weights exactly along where the energy wants to go. That's matched‑filter, or Maximum Ratio Transmission (MRT), beamforming — and it's the most important beamforming recipe there is.

▸ Advanced · 3GPP deep-dive — steering vector, array response & MRT

For a uniform linear array of N elements at spacing d, the steering vector toward angle θ is:

a(θ) = [ 1, e^(-j k d cosθ), e^(-j 2 k d cosθ), …, e^(-j (N-1) k d cosθ) ]ᵀ # k = 2π/λ ; the phase each element sees from direction θ array response AF(θ) = wᴴ a(θ) # how well weights w align with θ received signal y = wᴴ h x + n # h = channel vector to the UE

Matched / MRT weights: choose w = h / ‖h‖ (conjugate-aligned to the channel). By Cauchy–Schwarz, |wᴴh|² ≤ ‖h‖² with equality exactly when w ∝ h — so MRT maximises received power, giving the full array gain (up to N, or 10·log₁₀N dB, Chapter 5). For a pure-LOS channel, h ∝ a(θ₀), so MRT reduces to "point the steering vector at the user."

Worked — MRT gain N=64, equal-gain phase-only weights perfectly aligned: array gain = 10·log₁₀(64) ≈ 18.1 dB. Misalign the steering by half a beamwidth and |wᴴa|² drops ~3 dB (the −3 dB HPBW edge, Ch.5) — which is exactly why beam pointing accuracy (Part 8) matters as much as beam gain.

Section 12.4The same weights make peaks and nulls

The deep point: one weight vector simultaneously sets the response in every direction. So when you choose w to peak toward your UE, it automatically creates some pattern everywhere else — with side lobes and nulls (Chapter 5). The art of advanced beamforming is choosing w to do two things at once: peak toward your user and place a null exactly toward an interferer (or a co‑scheduled MU‑MIMO user). MRT only does the first; to also null interference you need the Zero‑Forcing or MMSE recipes from Chapter 3 — which are just different formulas for w.

one weight vector w → a peak toward the UE AND a null toward the interferer w applied here UE (peak) interferer (null) MRT → peak only · ZF/MMSE → peak + null (Ch.3)
Figure 12.3 · A weight vector shapes the whole pattern at once — peak here, null there
How to read this picture The array applies one weight vector w, and that single choice fixes the response in all directions simultaneously — the blue peak toward the UE and (if you chose w cleverly) the red null toward the interferer. MRT only optimises the peak (max signal); it doesn't care where the nulls land. Zero‑Forcing deliberately forces nulls toward interferers/other users (max separation, but noise‑enhancing — Ch.3); MMSE balances peak and null against noise. They are three formulas for the same object: the weight vector w. This is the unifying idea of the whole book — codebooks, reciprocity, MU‑MIMO, null steering are all just "how do we pick w."

Section 12.5Where the weights actually come from

If a beam is a weight vector, the practical question becomes: how does the gNB compute w for a real user it can't see? Two ways, both of which we've met and will deepen later. Feedback path: the UE measures CSI‑RS, picks the best precoder from a codebook (a fixed menu of weight vectors — essentially DFT beams), and reports its index as PMI (Part 7). Reciprocity path: in TDD, the gNB estimates the channel h from the UE's SRS and computes w directly — typically MRT (w ∝ h) or a ZF/MMSE variant for MU‑MIMO (Part 9). Either way, the output is the same object: a vector of complex weights applied to the elements.

▸ Advanced · 3GPP deep-dive — codebook weights vs computed precoders

Two sources of w in NR:

Codebook (PMI) w = DFT beam, index from menu of N·O directions NR Type I (38.214 §5.2.2.2.1): i1 (wideband beam) + i2 (co-phasing) oversampling O1,O2 set angular grid fineness (Ch.6) Reciprocity w computed from SRS-estimated h (no codebook): MRT w = h / ‖h‖ # max signal ZF W = Hᴴ (H Hᴴ)⁻¹ (then norm) # null other users MMSE W = Hᴴ (H Hᴴ + (1/ρ) I)⁻¹ # balance, ρ=SNR

Codebook precoding is quantised (limited menu → some loss vs ideal, the gap Type II narrows — Ch.20); reciprocity precoding is continuous (any w, but needs calibration — Ch.28). MU-MIMO almost always uses ZF/MMSE so each user's w nulls the others (the DM-RS-port-separated users of Ch.11).

Counters: PMI distribution (codebook usage), beamforming gain estimate, per-user post-precoding SINR, MU inter-layer interference.

Section 12.6Where the rules live (3GPP map)

Concept3GPP home (NR)
Precoding operation, antenna ports, DM-RS (weights applied here)TS 38.211 §6.3 / §7.3
Codebooks (DFT beams), Type I/II, oversampling, PMITS 38.214 §5.2.2
SRS & reciprocity-based precoding (UL/DL)TS 38.214 §6.2, TS 38.211 §6.4.1.4
Antenna/array model behind the steering vectorTR 38.901 §7.3
The unifying idea
A beam = a weight vector w. MRT maximises signal (w∝h); ZF nulls interferers; MMSE balances. Codebook/PMI = a quantised menu of w; reciprocity/SRS = continuous w. Everything else in Parts 5–9 is a way to pick or signal w.

Section 12.7How beamforming choices show up in your KPIs

ChoiceKPI fingerprintMeaning
MRT (SU, max signal)high per-user SINR; high MU inter-user interference if reusedgreat alone, poor for pairing
ZF/MMSE (MU)high MU pairing & cell capacity; slight per-user SINR costnulls keep users apart
Codebook (PMI) precodingquantisation loss vs reciprocity; stable PMI = goodFDD / feedback-based
Beam misalignment|wᴴa|² down → SINR/RSRP drop off-beampointing error (Part 8)

Section 12.8A field case the weights explain

"Single users get great SINR, but MU-MIMO pairing tanks everyone's quality." Classic symptom of MRT being used where ZF/MMSE is needed. MRT maximises each user's own signal (w∝h) but pays no attention to where its energy lands for other users — so when you co‑schedule, each user's beam splashes interference onto its partners. The fix is the weight recipe: switch MU‑MIMO precoding to ZF or MMSE so each user's w places nulls toward the co‑scheduled users (and verify the DM‑RS ports are orthogonal, Ch.11). The hardware and the channel are fine; the choice of w was wrong for the use case. (MU‑MIMO activation/precoding is Chapter 35.)

Section 12.9Mini-lab: compute a beam

  1. Build the steering vector a(θ) for N=8, 0.5λ. Set w = a(θ₀) (MRT) and plot |wᴴa(θ)|² vs θ — confirm the peak at θ₀ and ~18 dB max gain at N=64.
  2. Misalign w by half a beamwidth; measure the gain drop (~3 dB) — the pointing‑accuracy lesson.
  3. Two users: compute MRT weights for each, then ZF weights W=Hᴴ(HHᴴ)⁻¹; compare each user's SINR when co‑scheduled. Watch ZF null the interference that MRT leaves.
  4. Add noise and switch ZF→MMSE; watch MMSE beat ZF at low SNR (noise enhancement, Ch.3) — the same trade, now in the precoder.

Section 12.10If they put you on the spot

"What is a beam, physically?"
The set of directions where the waves from all elements arrive in phase and reinforce (constructive interference); nulls are where they cancel. It's created by applying complex weights (amplitude + phase) per element — the weight vector w is the beam.
"What is the steering vector and MRT?"
a(θ) is the vector of per‑element phases seen from direction θ. The array response is wᴴa(θ). MRT (matched filter) sets w ∝ h (the channel), which by Cauchy–Schwarz maximises received power |wᴴh|² = ‖h‖² — the full array gain.
"MRT vs ZF vs MMSE — one line each."
MRT maximises the wanted signal (w∝h), ignores interference. ZF forces nulls toward other users/interferers (W=Hᴴ(HHᴴ)⁻¹) but enhances noise. MMSE balances signal vs noise+interference (adds (1/SNR)I) — the practical MU choice.
"Where do real beam weights come from?"
Either a codebook (UE reports PMI selecting a DFT beam — feedback/FDD) or reciprocity (gNB computes w from SRS‑estimated channel — TDD). Codebook is quantised; reciprocity is continuous but needs calibration.
"Why does beam pointing accuracy matter as much as gain?"
Because |wᴴa(θ)|² falls off the main lobe — half a beamwidth of misalignment costs ~3 dB. A high‑gain narrow beam pointed slightly wrong delivers less than a lower‑gain beam pointed right, which is why beam management (Part 8) exists.

Section 12.11What to carry out of this chapter

  • A beam is interference made useful: directions where element waves arrive in phase reinforce; elsewhere they cancel.
  • Control is via complex weights (amplitude + phase) per element; the weight vector w is the beam.
  • The steering vector a(θ) describes a direction; the beam peaks where w matches a(θ); array response = wᴴa(θ).
  • MRT (w∝h) maximises signal; ZF/MMSE add nulls toward interferers/other users — three formulas for w.
  • Real weights come from a codebook (PMI) or reciprocity (SRS) — quantised vs continuous.

In closing12.12 · The beam is a vector

We stripped the word "beam" down to its physics and found something simpler than the flashlight metaphor: a beam is just the geometry of agreement between waves, and we conduct that agreement with a vector of complex weights. Point the weights along the channel (MRT) and the signal is as loud as N elements can make it; shape the weights to null an interferer (ZF/MMSE) and you serve one user while silencing another. Everything we'll do for the rest of the book — choosing codebook entries, exploiting reciprocity, pairing MU‑MIMO users, recovering from beam failure — is, at its core, the question "what should w be, and how do we get it to the elements in time?"

That reframing is powerful because it unifies the whole subject. The DFT codebook of Chapter 20 is a menu of w's. The reciprocity of Chapter 28 computes w from SRS. The MU‑MIMO of Chapter 16 picks a w per user with mutual nulls. The beam management of Part 8 is the logistics of keeping the right w pointed at a moving user. One object, many recipes.

So far we've assumed we can realise any w we like, instantly, on every element. Reality is harsher: applying precise complex weights to 64 or 256 elements at mmWave is expensive in hardware and power. That trade — where you put the weights, in fast digital math or in cheap analog phase shifters — defines the three beamforming architectures. In Chapter 13 — Analog, Digital and Hybrid Beamforming, we'll see how RF chains, phase shifters and digital precoders implement w in practice, and why FR1 and FR2 make opposite choices.

— end of Chapter 12 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Five — Beamforming Fundamentals
CHAPTER THIRTEEN

Analog, Digital and
Hybrid Beamforming

"The weight vector is free on paper. In silicon, every weight costs a converter, a watt, and a dollar."

Chapter 12 left us with a clean, almost smug conclusion: a beam is just a weight vector w, so beamforming is "apply the right complex weight to each element." On paper, trivial. In hardware, it's the central engineering tension of the whole radio. Because where you apply those weights — and how many independent ones you can afford — decides everything: how many beams you can form at once, whether you can do MU‑MIMO, how much the radio costs, and how much power it burns. The same w can be realised three very different ways, and the choice between them is why a mid‑band 64T64R radio and a mmWave radio look like completely different machines.

The crux is a single expensive component: the RF chain (the converter + mixer + amplifier that turns digital samples into a real radio signal, one per "TXRU" from Chapter 4). Give every element its own RF chain and you can apply any weight to every element, per subcarrier, instantly — that's digital beamforming, gloriously flexible and brutally expensive. Share one RF chain across all elements and adjust only cheap analog phase shifters — that's analog beamforming, cheap but able to form only one beam at a time. Hybrid beamforming splits the difference: a few RF chains feeding an analog phase‑shifter network. Which you pick is dictated by frequency: FR1 can afford lots of RF chains; FR2 cannot.

This chapter builds all three architectures from that one trade‑off, shows exactly what each can and can't do, and explains the FR1/FR2 split. The narrative stays physical; the Advanced Deep‑Dive blocks give the hybrid precoder math (W = WRFWBB), the constant‑modulus constraint, and the real RF‑chain/power numbers that force the mmWave choice.

Before we dive inWhat you'll walk away knowing

  • Explain why the RF chain (TXRU) is the expensive resource and the phase shifter is cheap.
  • Describe analog beamforming: one RF chain, phase shifters, one (frequency‑flat) beam at a time.
  • Describe digital beamforming: one RF chain per element, full per‑subcarrier precoding, many simultaneous beams/MU‑MIMO.
  • Describe hybrid beamforming: NRF ≪ N chains + analog network; #simultaneous streams ≤ NRF.
  • Write the hybrid factorisation W = WRF·WBB and the constant‑modulus constraint on WRF.
  • Explain the FR1 vs FR2 architecture split and the ADC/DAC power reason behind it.

Section 13.1Analog beamforming — one chain, one beam

The cheapest architecture: a single RF chain generates one signal, which is split to all N elements, and each element has a phase shifter (and maybe a variable attenuator) that applies its weight in the analog RF domain, just before the antenna. Adjust the phase shifters and the single beam steers. It's cheap (one converter), low‑power, and exactly how early mmWave radios and many simple TDD systems work. But it has two hard limits: only one beam at a time (one RF chain = one data stream), and the beam is frequency‑flat — a phase shifter applies the same phase to the whole carrier, so you cannot point different subbands in different directions. Serving multiple users means time‑sharing (beam sweeping), not simultaneity.

ANALOG — 1 RF chain → phase shifters → 1 beam RF chainDAC·mixer·PA phase shifters (cheap) ONE beam at a time frequency-flat · SU · time-share
Figure 13.1 · Analog: one RF chain feeds phase shifters at every element — cheap, but one beam only
How to read this picture One expensive RF chain on the left makes a single signal. It's split to every element, and each element has a cheap phase shifter (the ∠ circles) that applies that element's weight right at the antenna, in the analog domain. Adjust the phases and the single beam steers. The catch is baked into the picture: there's only one RF chain, so you can form only one beam carrying one data stream at a time, and because a phase shifter shifts the whole band equally, the beam is frequency‑flat — you can't aim different subbands differently. To serve many users you must time‑share the beam (sweep it). Cheap and low‑power, which is why early mmWave used it — but no simultaneous MU‑MIMO.
Two hybrid wirings: sub-array vs fully-connected sub-array (partitioned) each RF chain → its own element block (simple, less flexible) fully-connected every RF chain → every element (more gain, more hardware)
Figure 13.5 · Sub-array vs fully-connected hybrid beamforming
How to read this picture Hybrid arrays come in two wirings. In a sub-array design each RF chain drives its own block of elements through phase shifters — simple and power-efficient, but each chain only sees part of the aperture, limiting beam gain and flexibility. In a fully-connected design every RF chain reaches every element via its own phase shifters — full aperture gain and finer beams, at the cost of many more phase shifters and combiners. Real FR2 radios pick a point on this spectrum trading beam quality against hardware count and power.
The number of RF chains caps how many beams/layers at once 2 RF chains≤ 2 simultaneous beams 8 RF chains≤ 8 beams / MU layers 32–64 RF chainsrich MU-MIMO, digital FR1 elements set gain & beamwidth; RF chains set how many independent streams
Figure 13.6 · RF chains, not elements, limit simultaneous streams
How to read this picture A crucial distinction: the number of elements sets a beam's gain and sharpness, but the number of RF chains sets how many independent beams or MU-MIMO layers the radio can form at the same time. A 256-element FR2 panel with only 2 chains makes two superb beams but no more; a 64-chain FR1 radio can serve many users at once with modest beams. When reading 'NxM TR' specs, the second number (RF chains/TXRUs) is what tells you the multi-user capacity — the elements only tell you the reach.

Section 13.2Digital beamforming — a chain per element, total freedom

The opposite extreme: give every element (or port) its own RF chain, and apply the weights in baseband digital, before conversion. Now you can apply any complex weight to any element, and — because it's done per‑subcarrier in the frequency domain — you can even use different beams on different subbands (frequency‑selective precoding). Crucially, with N RF chains you can form many simultaneous beams/layers, which is what makes full MU‑MIMO possible. This is the FR1 massive‑MIMO ideal. The price: N complete RF chains — N DACs/ADCs, N PAs — which is power and cost that scale with element count.

DIGITAL — 1 RF chain PER element → many beams (MU-MIMO) digitalprecoder W(baseband) RF chainRF chainRF chainRF chain N RF chains (expensive) many simultaneous beams · per-subcarrier · MU-MIMO
Figure 13.2 · Digital: a full RF chain per element gives total flexibility — and full cost
How to read this picture Here the weights live in a digital precoder W in baseband, and every element gets its own RF chain. Because the math is done digitally, per‑subcarrier, you can apply any weight to any element and form many beams at once — that's the three beams fanning out, i.e. MU‑MIMO. You can even point different subbands in different directions (frequency‑selective precoding), which analog simply can't. The cost is in plain sight: N complete RF chains (N DACs, mixers, PAs). At FR1 with 32–64 TXRUs and ~100 MHz, that's affordable — so FR1 massive MIMO is essentially digital (or lightly hybrid). At FR2's element counts and bandwidths, it would melt the budget — which is the next section.

Section 13.3Hybrid beamforming — the practical compromise

Hybrid beamforming is the engineering answer to "I want digital's flexibility but can't afford N RF chains." You use a modest number of RF chains NRF (far fewer than N elements), do a small digital precoder WBB across those chains in baseband, then fan each chain out through an analog phase‑shifter network WRF to the elements. The result: you can form up to NRF simultaneous beams/streams (so some MU‑MIMO), while paying for only NRF converters instead of N. It's the dominant FR2 architecture and increasingly common in large FR1 arrays.

HYBRID — few RF chains (digital) → analog phase shifters → N elements W_BBdigital RF chain 1 RF chain 2 W_RF (∠) N elements, only 2 RF chains up to N_RF simultaneous beams
Figure 13.3 · Hybrid: a small digital precoder over a few RF chains, then analog phase shifters to all elements
How to read this picture Read it left to right: a small digital precoder WBB operates over just a couple of RF chains, and each chain then fans out through an analog phase‑shifter network WRF to many elements. So you get the best of both: the digital stage lets you form up to NRF simultaneous beams (here 2 → light MU‑MIMO), while you only pay for NRF converters instead of one per element. The number of RF chains is the hard ceiling on how many users/streams you can serve at once — pick NRF=4 and you can pair up to 4 streams, no matter how many hundred elements the panel has. This is the standard mmWave (FR2) design and is creeping into large FR1 arrays too.
▸ Advanced · 3GPP deep-dive — the hybrid precoder W = WRF·WBB

The transmit precoder factorises into an analog and a digital stage:

W = W_RF · W_BB # overall N×Ns precoder W_RF ∈ ℂ^(N × N_RF) # analog: constant-modulus, |[W_RF]ᵢⱼ| = 1/√N W_BB ∈ ℂ^(N_RF × Ns) # digital: any complex (per-subcarrier) constraints: Ns ≤ N_RF ≤ N # streams ≤ RF chains ≤ elements W_RF phase-only (quantised b-bit phase shifters)

The constant-modulus constraint on W_RF (you can change phase but not amplitude per element) is what makes hybrid an approximation of the ideal fully-digital precoder — design algorithms (e.g. OMP-based) minimise ‖Wopt − WRFWBB. Connection topology: fully-connected (each RF chain → all N elements via combiners, more phase shifters, best performance) vs sub-connected / sub-array (each RF chain → a disjoint subarray, fewer components, the Chapter-4 TXRU virtualization). Note: 3GPP does not standardise the architecture — it's transparent behind the antenna ports (Ch.11); the spec only sees ports.

Worked — the saving A 256-element FR2 panel, fully digital, needs 256 RF chains. Hybrid with NRF=4 needs 4 chains (64× fewer DACs/ADCs/PAs) but caps you at 4 simultaneous streams. That's the FR2 bargain: keep the aperture/gain of 256 elements, spend the converters of 4.

Section 13.4FR1 vs FR2 — why they choose opposite architectures

The architecture isn't a free choice; frequency forces it. At FR1 (sub‑6 GHz) bandwidths are ≤100 MHz and converters are cheap enough that you can give 32–64 TXRUs their own RF chains — so FR1 massive MIMO is digital or lightly hybrid, enabling per‑subcarrier precoding and rich MU‑MIMO. At FR2 (mmWave) you need far more elements (128–256+) to overcome path loss, but the bandwidths are huge (up to 400 MHz) and high‑rate ADCs/DACs burn power roughly proportional to bandwidth × 2^(bits) — putting one per element is thermally and economically impossible. So FR2 goes analog or hybrid with few RF chains: huge aperture (pencil‑beam gain) but only a handful of simultaneous beams, and beam steering done per OFDM symbol in the analog domain (hence the SSB beam sweeping of Chapter 10).

FR1 (sub-6 GHz) DIGITAL / light hybrid 32–64 TXRUs (RF chains) ≤100 MHz → converters affordable per-subcarrier precoding rich MU-MIMO (8–16 users) FR2 (mmWave) ANALOG / hybrid 128–256+ elements, few RF chains up to 400 MHz → ADC/DAC power kills full digital analog beam per OFDM symbol (sweeping) pencil beams, few simultaneous
Figure 13.4 · Same physics, opposite hardware: FR1 goes digital, FR2 goes analog/hybrid
How to read this picture Two columns, two worlds. FR1 (sub‑6 GHz): bandwidth is modest (≤100 MHz) so RF chains are affordable — give 32–64 TXRUs their own, do everything digitally, and reap rich MU‑MIMO (8–16 paired users) with per‑subcarrier precoding. FR2 (mmWave): you need many more elements to beat the path loss, but the bandwidth (up to 400 MHz) makes a converter‑per‑element thermally impossible — so you go analog/hybrid with a few RF chains: enormous aperture (pencil‑beam gain) but only a handful of simultaneous beams, steered per symbol (which is exactly why FR2 leans on beam sweeping and beam management). Same weight‑vector physics from Chapter 12; opposite hardware, because the converter bill scales with bandwidth.
▸ Advanced · 3GPP deep-dive — why FR2 can't go fully digital (the converter bill)
ADC/DAC power P ∝ B · 2^(ENOB) # bandwidth × 2^(effective bits) FR1 B≈100 MHz, N≈64 → 64 chains # feasible, ~watts FR2 B≈400 MHz, N≈256 → 256 chains # 4× BW × 4× elements ≈ 16× power → no

Because converter power scales with bandwidth, FR2's 4× wider channels multiply the per‑chain cost on top of needing 4×+ more elements. Hence: FR1 = digital/hybrid, frequency‑selective precoding, MU‑MIMO‑heavy; FR2 = analog/hybrid, frequency‑flat analog beam per symbol, beam‑sweeping‑heavy, fewer simultaneous users. 3GPP keeps the architecture transparent — it only standardises antenna ports and the SSB/CSI‑RS beam framework (Ch.10), so the same procedures cover all three implementations.

Worked — what the architecture caps Max simultaneous MU‑MIMO streams = NRF (digital: =N; hybrid: =NRF; analog: =1). So a 256‑element FR2 hybrid with NRF=8 serves ≤8 streams despite huge gain, while a 64‑TXRU FR1 digital radio serves up to 64 — the reason FR1 is the capacity layer and FR2 the hotspot/coverage‑by‑gain layer.

Section 13.5Where the rules live (3GPP map)

Concept3GPP home (NR)
Antenna ports (architecture is transparent behind them)TS 38.211 §4 / §7.3
SSB/CSI-RS beam framework (works for analog/digital/hybrid)TS 38.213, TS 38.214
FR1/FR2 band definitions, RF/EIRP, OTA requirementsTS 38.104, TS 38.101-2 (FR2)
Beam management (the analog/hybrid time-sweep) TS 38.213 §6 (Part 8)
The key takeaway
3GPP standardises ports and beam procedures, not the beamforming architecture — so analog, digital, and hybrid all look the same to the UE. But the architecture silently sets the ceiling: max simultaneous streams = NRF (digital N, hybrid NRF, analog 1). FR1 → digital/hybrid (capacity); FR2 → analog/hybrid (gain).

Section 13.6How the architecture shows up in your KPIs

ArchitectureKPI fingerprintMeaning
Analog (FR2 early)MU pairing ≈ 1; heavy reliance on beam sweeping; SU peak highone beam at a time
Hybrid (FR2 / large FR1)MU pairing ≤ NRF; good gainRF-chain-limited MU
Digital (FR1)high MU pairing; frequency-selective scheduling gainsfull flexibility
FR2 mobilityfrequent beam switches / sweeping overheadanalog beam per symbol

Section 13.7A field case the architecture explains

"Our FR2 small cell has huge per-user throughput but can barely pair two MU-MIMO users; the FR1 macro pairs eight easily." This isn't a fault — it's the architecture. The FR2 radio is hybrid with a small NRF (say 2–4), so the number of simultaneous streams is capped at NRF no matter how many elements it has; its strength is per‑user gain (pencil beams), not parallelism. The FR1 macro is digital with 32–64 TXRUs, so it pairs many users. The "fix" is to set expectations and deploy accordingly: use FR2 as a high‑gain hotspot/coverage‑by‑beam layer and FR1 as the MU‑MIMO capacity layer. If more FR2 parallelism is genuinely needed, it requires more RF chains (a different/again costlier radio), not a config change. (MU‑MIMO limits are revisited in Chapters 16 and 35.)

Section 13.8Mini-lab: hybrid vs digital

  1. For N=64, build the ideal fully‑digital MRT precoder for a channel; then constrain it to hybrid with NRF=4 (phase‑only WRF + 4×Ns WBB) and measure the gap ‖Wopt−WRFWBB and the SINR loss.
  2. Vary NRF = 1, 2, 4, 8; plot max simultaneous streams and SINR — see the NRF ceiling and the diminishing returns toward full digital.
  3. Quantise the phase shifters to b = 2, 3, 4 bits; watch side lobes and the hybrid gap grow as phase resolution drops.
  4. Estimate converter power ∝ B·2^ENOB for FR1 (100 MHz, 64 chains) vs FR2 (400 MHz, 256 chains) and confirm why FR2 can't go fully digital.

Section 13.9If they put you on the spot

"Analog vs digital vs hybrid — one line each."
Analog: one RF chain + phase shifters, one frequency‑flat beam at a time (cheap). Digital: one RF chain per element, full per‑subcarrier precoding and many beams/MU‑MIMO (flexible, costly). Hybrid: NRF≪N chains + analog network, up to NRF simultaneous beams (the practical compromise).
"What caps the number of simultaneous MU-MIMO streams?"
The number of RF chains NRF. Digital → N (one per element); hybrid → NRF; analog → 1. Element count sets gain/aperture, not the number of simultaneous streams.
"Why does FR2 use analog/hybrid, not full digital?"
ADC/DAC power scales with bandwidth × 2^bits; FR2's wide channels (up to 400 MHz) and large element counts (128–256+) make a converter per element thermally/economically impossible. So FR2 uses few RF chains with analog phase shifters — big aperture, few simultaneous beams, per‑symbol analog steering (beam sweeping).
"Write the hybrid precoder and its key constraint."
W = WRF·WBB, with WRF (N×NRF) constant‑modulus (phase‑only) and WBB (NRF×Ns) any complex; Ns ≤ NRF ≤ N. The constant‑modulus constraint makes hybrid an approximation of the ideal digital precoder.
"Does 3GPP specify the beamforming architecture?"
No — it's transparent behind the antenna ports. 3GPP standardises ports and the SSB/CSI‑RS beam procedures, so analog/digital/hybrid all look identical to the UE; the architecture only sets implementation limits like NRF.

Section 13.10What to carry out of this chapter

  • The RF chain (TXRU) is the expensive resource; phase shifters are cheap. Where you apply the weights defines the architecture.
  • Analog: 1 RF chain, phase shifters, 1 frequency‑flat beam (time‑share). Digital: 1 chain/element, per‑subcarrier, many beams/MU‑MIMO. Hybrid: NRF≪N chains, ≤NRF streams.
  • W = WRF·WBB; WRF is constant‑modulus (phase‑only) — hybrid approximates ideal digital.
  • Max simultaneous streams = NRF (digital N, analog 1); element count sets gain, not parallelism.
  • FR1 → digital/hybrid (capacity, MU‑MIMO); FR2 → analog/hybrid (gain, sweeping) — forced by the converter power bill.
  • 3GPP keeps the architecture transparent behind antenna ports.

In closing13.11 · Where you put the weights

Chapter 12 said a beam is a weight vector; this chapter answered the harder question of where the weights physically live — and showed that this single placement decision ripples through cost, power, beam count, and MU‑MIMO capability. Put the weights in cheap analog phase shifters behind one RF chain and you get a cheap single beam. Put them in a full digital precoder with a converter per element and you get total freedom and a brutal bill. Put a few RF chains between the two and you get hybrid, the compromise that actually ships at mmWave. The number of RF chains, not the number of elements, is the quiet governor of how many users you can serve at once.

That's also why FR1 and FR2 radios are such different beasts despite obeying identical beamforming physics: the converter bill scales with bandwidth, so FR1 can afford to be digital and capacity‑rich while FR2 must be analog/hybrid and gain‑rich. And it's why 3GPP wisely standardised ports and beam procedures rather than the architecture — letting one set of rules cover three very different machines.

We now know what a beam is (Ch.12) and how it's built in hardware (this chapter). The last piece of Part 5 is the recipe layer in between: given a channel, how do we actually compute the precoder — codebook‑based or not — and what are the families of precoders we choose from? In Chapter 14 — Precoding and Beam Weights, we'll formalise the precoder matrix, codebook‑based vs non‑codebook transmission, and the DFT/eigen‑beam families, tying together the weights of Chapter 12, the architectures here, and the CSI feedback that's coming in Part 7.

— end of Chapter 13 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Five — Beamforming Fundamentals
CHAPTER FOURTEEN

Precoding and
Beam Weights

"A precoder is just a stack of beams — one per layer — chosen so the layers don’t step on each other."

In Chapter 12 a beam was one weight vector w. But MIMO sends several layers at once, and each layer needs its own beam. Stack those beam vectors side by side and you get a precoder matrix W — the object that maps your ν layers onto the antenna ports. Precoding is just "choose W." This short chapter formalises that choice, names the two ways NR makes it — codebook‑based and non‑codebook — and identifies the two great families of precoders you'll meet everywhere: DFT beams (a fixed grid) and eigen‑beams (the SVD‑optimal, per‑channel ideal). It's the hinge between the weights of Chapter 12, the architectures of Chapter 13, and the CSI feedback of Part 7.

Before we dive inWhat you'll walk away knowing

  • Define the precoder matrix W and read y = H·W·x + n as "beams per layer."
  • Distinguish codebook‑based (pick W from a menu via PMI) vs non‑codebook (compute W from the channel) transmission.
  • Explain DFT beams (fixed grid) vs eigen‑beams (W = V from the SVD) and the quantisation gap between them.
  • Sketch the NR Type I codebook (i1 wideband beam + i2 co‑phasing) and where Type II improves it.
  • Connect precoder choice to PMI feedback (Part 7) and reciprocity (Part 9).

Section 14.1The precoder matrix — beams per layer

If one beam is a column vector, a precoder is a matrix whose columns are beams — one column per layer. The transmitter takes the ν layer symbols x, multiplies by W (size: ports × layers), and feeds the ports. The UE sees y = H·W·x + n. So the effective channel each layer travels is H·W — and good precoding is choosing W so the layers arrive cleanly separable (Chapter 3's eigen‑channels) and strong (Chapter 12's array gain).

Two dimensions of W matter before any optimisation. The first is shape. With Nt transmit ports and ν layers, W is Nt × ν — always "taller than wide" in massive MIMO, where 32 or 64 ports carry perhaps two to four layers. That tall‑thin shape is the whole point: many antennas, few streams, so the array has spare degrees of freedom to shape each beam sharply. The second is the power budget. The transmitter has a fixed total power, so W is normalised — the standard constrains the energy so that ‖W‖²F = ν (each layer carries unit power on average). That is why you can't simply "turn the beams up": pour more energy into one column and the constraint steals it from the others. Precoding is therefore always a budgeted choice — how to spend a fixed amount of transmit power across the columns to maximise what the receiver can decode.

Worked — reading W's dimensions on a real cell A 64‑port gNB (an 8×4 dual‑polarised panel, Chapter 6) serving a single UE at rank 2 uses a W of size 64 × 2 — 128 complex weights, two beams. Move to MU‑MIMO with four such UEs each at rank 1 and the gNB stacks their columns into a 64 × 4 joint precoder (Chapter 16): still 64 rows, now four columns, one beam per user. The row count is fixed by the hardware (ports); the column count is the scheduler's live decision (how many layers, to how many users) — and the Frobenius‑norm budget ‖W‖²F = ν is split across whatever columns exist that slot. This is the single most useful sanity check on any precoding trace: rows = ports, columns = scheduled layers.
precoder W: each column is one layer's beam x₀x₁x₂ ν layers Wports × layers columns = beams (1 per layer) antenna ports H·Weffective channel UE y = H·W·x + n
Figure 14.1 · A precoder is a matrix of beams: one column (beam) per layer
How to read this picture The ν layer symbols on the left (x₀, x₁, x₂) enter the precoder W — a matrix sized ports × layers, whose columns are beams, one per layer. W spreads each layer across the antenna ports, the signal travels the channel H, and the UE sees the effective channel H·W. "Precoding" is simply choosing W. Choose its columns to align with the channel's eigen‑directions (Chapter 3) and the layers arrive strong and mutually clean; choose them carelessly and the layers interfere. Everything in this chapter — codebooks, DFT beams, eigen‑beams — is a different way to pick the columns of this one matrix.
Two ways the gNB learns the precoder codebook (FDD)UE picks PMI from a fixed set→ quantised, limited portsworks without reciprocity reciprocity (TDD)gNB computes W from SRS→ full-resolution, all portsbest for massive MIMO
Figure 14.5 · Codebook vs reciprocity-based precoding
How to read this picture There are two routes to the precoder W. The codebook route (typical in FDD) has the UE choose a PMI from a fixed, quantised set and report it — robust, but coarse and capped at modest port counts. The reciprocity route (TDD) has the gNB compute W directly from an uplink SRS at full resolution across all its ports, with no codebook quantisation. For high-order massive MIMO the reciprocity route wins decisively, which is the deeper reason the technology lives in TDD bands (Chapter 17).
Three precoders — different answers to the same channel MRTmatch the channelmax signal powerignores interferencebest at low SNR ZFnull other userszero interferenceamplifies noisebest at high SNR MMSEbalance signal vsnoise + interferencebest overallMRT↔ZF as SNR rises
Figure 14.3 · MRT, ZF and MMSE precoders compared
How to read this picture There is no single 'right' precoder — each optimises a different thing. MRT (maximum-ratio transmission) simply matches the channel to maximise the wanted signal, ignoring interference — ideal when noise dominates (low SNR). ZF (zero-forcing) cancels interference between users completely but amplifies noise doing so — ideal at high SNR. MMSE balances the two and is the practical default, behaving like MRT at low SNR and ZF at high SNR. Knowing which regime a cell is in tells you which precoder it should be running.
The precoder W maps data layers onto antenna ports layersx (r streams) precoder WNt × r matrix antennasNt ports transmit = W·x · each layer is spread across all antennas with its own weights
Figure 14.4 · What the precoder matrix actually does
How to read this picture Strip away the maths and the precoder W is just a mixing matrix: it takes the r data layers and spreads each one across all Nt antenna ports with a specific complex weight (amplitude and phase). The transmitted signal is W·x. Choosing W is beamforming and multiplexing in one step — the columns of W are the per-layer beams. Everything in this chapter, and the codebooks of Chapter 20, is ultimately about how to pick the numbers inside this one matrix.

Section 14.2Codebook-based vs non-codebook

There are two ways to land on W. Codebook‑based: the standard defines a finite menu of precoders (the codebook); the UE measures CSI‑RS, finds the menu entry that best fits its channel, and reports the index as PMI. The gNB uses that entry. Simple, low feedback, works in FDD where there's no reciprocity — but the menu is coarse, so W is quantised (a gap from ideal). Non‑codebook: the gNB (or UE, on uplink) computes W directly from a channel estimate — typically from SRS via reciprocity (TDD). Any W is possible (continuous, no quantisation), but it needs an accurate, fresh channel estimate and (for reciprocity) calibration.

The choice is really a trade between who knows the channel and how fresh that knowledge is. In the codebook route the knowledge lives at the UE, which compresses it into a handful of PMI bits and ships it uplink — cheap on the air interface but stale by the time it arrives (a report measured one slot is applied several slots later, and on a fast‑fading channel the beam it described has already moved). In the reciprocity route the knowledge is reconstructed at the gNB from a just‑received SRS, so it is fresh and full‑resolution, but it costs uplink SRS overhead and demands that the transmit and receive RF chains be calibrated — because reciprocity holds for the propagation channel, not for the mismatched amplifiers and filters bolted onto each end (Chapter 17 returns to this). A useful rule of thumb: codebook precoding degrades with speed (feedback ages), reciprocity precoding degrades with miscalibration and SRS coverage (cell‑edge UEs can't sound enough ports). Knowing which failure mode a cell suffers tells you which knob to turn.

CODEBOOK-BASED (PMI) W₃ fixed menu of precoders UE picks best → reports PMI index quantised · low feedback · FDD-friendly NON-CODEBOOK (computed) SRS → h compute W any W (continuous) from channel no quantisation · needs fresh CSI + calibration · TDD
Figure 14.2 · Pick W from a menu (codebook/PMI) or compute it from the channel (reciprocity)
How to read this picture Two routes to the same W. Left — codebook: the standard provides a fixed menu of precoders; the UE measures CSI‑RS, picks the closest fit (here W₃) and feeds back just its index as PMI. Cheap feedback, works without reciprocity (FDD), but the menu is coarse so W is quantised. Right — non‑codebook: the gNB estimates the channel directly (from SRS in TDD) and computes any W it likes — no quantisation, potentially the exact eigen‑beam — but it needs a fresh, accurate channel and calibrated chains. FDD generally lives on the left; TDD massive MIMO leans right. Type II codebooks (next) narrow the left's quantisation gap at the cost of more feedback.

Section 14.3DFT beams vs eigen-beams

Two families fill those W's. DFT beams are a fixed grid of beams pointing at evenly spaced angles — the array factors of Chapter 5, turned into codebook entries. They're channel‑agnostic (you just pick the grid direction nearest your user), cheap, and the backbone of codebook (Type I) precoding. Eigen‑beams are the SVD‑optimal precoder: set W = V (the right singular vectors from Chapter 3), and the layers ride the channel's own eigen‑channels with zero inter‑layer interference and maximum capacity. Eigen‑beams are the ideal; DFT beams are the affordable approximation. Reciprocity/non‑codebook can approach true eigen‑beams; codebooks approximate them from a DFT grid.

▸ Advanced · 3GPP deep-dive — precoder math: eigen-beam optimality & the DFT grid

With the SVD H = UΣVᴴ (Ch.3), the capacity-optimal linear precoder is the eigen-beam set:

optimal W = V (:, 1:ν) # first ν right singular vectors → parallel eigen-channels y = UᴴHV x + n → decoupled: yᵢ = σᵢ xᵢ + nᵢ DFT beam [d_m]ₙ = (1/√N) e^(j 2π n m /(N·O)) # grid direction m, oversampling O codebook W = argmin over F of ‖W − V‖ # nearest menu entry → quantisation loss

NR Type I (single-panel, 38.214 §5.2.2.2.1): the PMI is a pair — i₁ selects a wideband DFT beam (over N1·O1 × N2·O2 directions, Ch.6) and i₂ selects the co-phasing between the two polarizations. Type II (R15/R16): reports a linear combination of L (=2/4) DFT beams with per-beam amplitude + phase, wideband + subband — a far finer approximation of V, at the cost of many more feedback bits (the gap that hurt LTE codebooks, Ch.7).

Worked — quantisation gap Rank-1, N=32: ideal eigen-beam (reciprocity) achieves the full ‖h‖² gain. A Type I DFT grid with O=4 lands within ~½ a grid step → typically <1 dB loss; Type II with L=4 closes most of the residual. The gap is exactly why TDD (reciprocity, continuous W) often beats FDD (codebook, quantised W) at equal antenna count.
Try it yourself — feel the quantisation gap in eight lines
You don't need a simulator licence to see why eigen‑beams beat the grid. In any array language (NumPy/Octave/MATLAB), build a random rank‑1 channel and compare the ideal precoder against the nearest DFT‑grid beam:
# N antennas, oversampled DFT grid of O·N beams N, O = 32, 4 h = (randn(N) + 1j*randn(N)) / sqrt(2) # a random channel realisation w_opt = h.conj() / norm(h) # eigen-beam (rank-1: V = h/‖h‖) grid = [ exp(1j*2*pi*arange(N)*m/(N*O))/sqrt(N) # the DFT codebook… for m in range(N*O) ] w_cb = argmax_over_grid( |gᴴ·h|² ) # …pick the beam best aligned to h gain_opt = |w_optᴴ·h|² ; gain_cb = |w_cbᴴ·h|² print( 10*log10(gain_opt / gain_cb), "dB lost to quantisation" )
Run it a few hundred times and average. With O=4 you'll see a mean loss under ~1 dB and a worst case around 1.5–2 dB — exactly the Type I penalty. Now drop O to 1 (no oversampling) and watch the loss roughly triple; push O to 8 and watch it nearly vanish. That single experiment is the FDD‑vs‑TDD capacity story, and it explains why every codebook generation has spent its bits buying a finer grid.

Section 14.4How it ties together (and where it goes)

Precoding is the meeting point of the book. The weights (Ch.12) become matrix columns; the architecture (Ch.13) decides whether W is applied digitally (any W, per‑subcarrier) or via hybrid analog stages (W = WRFWBB); the SVD (Ch.3) defines the ideal W = V; the codebook quantises it into PMI for feedback (Part 7); and reciprocity (Part 9) computes it directly. MU‑MIMO simply stacks one user's W next to another's, with ZF/MMSE chosen so each user's columns null the others (Ch.16). Hold "precoder = stack of beams, chosen well" and the whole middle of the book is one idea.

Section 14.5Where the rules live (3GPP map)

Concept3GPP home (NR)
Precoding operation, layer→port mappingTS 38.211 §6.3.1 / §7.3.1
Codebooks Type I / Type II, PMI (i1,i2), oversamplingTS 38.214 §5.2.2.2
codebookConfig, codebookType, numberOfBeams (L), maxRankTS 38.331
Non-codebook UL (SRI), reciprocity precodingTS 38.214 §6.1.1
The hinge
W = stack of per-layer beams. Ideal = eigen-beams (V); affordable = DFT grid. Codebook → PMI (quantised, FDD); non-codebook → computed (continuous, TDD). Type I = 1 DFT beam + co-phasing; Type II = combination of L beams (finer). Everything in Parts 7 & 9 is about choosing/feeding back W.

Section 14.6KPIs & a field note

ChoiceKPI fingerprintMeaning
Type I vs Type IIType II → higher SINR/throughput, more PUCCH/PUSCH feedback loadfiner W vs overhead
Codebook vs reciprocityTDD reciprocity often beats FDD codebook at equal Nquantisation gap
PMI stabilitystable PMI → good beam match; erratic → mobility/CSI noiselink-adaptation health

Field note: "FDD cell underperforms an equivalent TDD cell at the same antenna count." Often the precoder quantisation gap — FDD relies on codebook PMI (coarse W) while TDD computes W from SRS (continuous). Mitigation: enable Type II codebooks (finer W, more feedback) on the FDD cell, or accept the structural gap. (CSI framework: Part 7.)

Field note 2: "TDD massive‑MIMO cell drops to rank 1 and loses throughput for fast‑moving UEs, while pedestrians are fine." This is the reciprocity route's own failure mode, the mirror image of the first note. Reciprocity computes W from an SRS that is already a few slots old; at vehicular speed the channel decorrelates within that window (the coherence time of Chapter 4), so the computed beam points where the UE was, the layers stop separating, and the scheduler retreats to rank 1 to stay decodable. The tell is the correlation with speed and the healthy pedestrian behaviour — it is not miscalibration (that would hit everyone) and not a codebook problem (this cell has no codebook). Mitigation: shorten the SRS period for high‑Doppler UEs so the channel estimate stays fresh, at the cost of more uplink overhead — the same freshness‑versus‑overhead lever from §14.2, pulled from the reciprocity side.

Section 14.7If they put you on the spot

"What is a precoder matrix?"
A ports×layers matrix W whose columns are per‑layer beams. The UE sees y = H·W·x + n, so the effective channel is H·W. Precoding = choosing W to make layers strong and separable.
"Codebook vs non-codebook precoding?"
Codebook: pick W from a standardized menu, report index as PMI — quantised, low feedback, FDD‑friendly. Non‑codebook: compute W from a channel estimate (SRS/reciprocity) — continuous/any W, needs fresh CSI + calibration, TDD.
"DFT beams vs eigen-beams?"
DFT beams are a fixed grid of array‑factor beams (channel‑agnostic, codebook backbone). Eigen‑beams set W=V (SVD right singular vectors), the capacity‑optimal precoder that decouples layers onto eigen‑channels. DFT approximates eigen; reciprocity can achieve it.
"Type I vs Type II codebook?"
Type I: PMI = one wideband DFT beam (i1) + polarization co‑phasing (i2) — coarse, low feedback. Type II: a weighted combination of L (2/4) DFT beams with amplitude+phase, wideband+subband — much finer approximation of V, more feedback. Type II suits MU‑MIMO.

Section 14.8What to carry out of this chapter

  • A precoder W is a matrix of per‑layer beams; y = H·W·x + n, effective channel H·W.
  • Codebook (PMI, quantised, FDD) vs non‑codebook (computed from channel, continuous, TDD).
  • Eigen‑beams (W=V) are optimal; DFT beams are the affordable grid approximation.
  • Type I = 1 DFT beam + co‑phasing; Type II = combination of L beams (finer, MU‑MIMO).
  • Precoding unifies weights (Ch.12), architecture (Ch.13), SVD (Ch.3), feedback (Part 7) and reciprocity (Part 9).

In closing14.9 · The matrix of beams

This chapter was the keystone of Part 5: it turned the single beam of Chapter 12 into the precoder matrix that real MIMO uses, and named the choices behind it. The ideal precoder is the channel's own eigen‑beams; the practical one is a DFT‑grid approximation selected from a codebook (and reported as PMI) or computed outright from a reciprocal channel. Type I keeps feedback cheap; Type II spends bits to approach the ideal. And whichever route you take, the architecture of Chapter 13 decides how that W is physically realised.

With Part 5 complete, we have the full beamforming toolkit: what a beam is, how it's built in hardware, and how precoders are chosen and fed back. Now we scale it up. Part 6 — Massive MIMO Deep Dive opens with Chapter 15 — Massive MIMO Concept: channel hardening, favourable propagation, and the asymptotics that make dozens of antennas behave qualitatively differently from a few — the regime where all these precoders and beams deliver their full promise.

— end of Chapter 14 · end of Part 5 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Six — Massive MIMO Deep Dive
CHAPTER FIFTEEN

Massive MIMO
Concept

"Pile up enough antennas and the channel stops being random. That calm is the whole point."

"Massive MIMO" is not just "MIMO with more antennas." Something qualitative happens when the antenna count gets large — when the array has tens or hundreds of elements serving a handful of users. Two near‑magical effects switch on that simply don't exist at 2×2: channel hardening (the wildly fluctuating fading channel goes calm and predictable) and favourable propagation (different users' channels become nearly orthogonal on their own). Together they mean that simple, cheap, linear precoding — even basic MRT — becomes near‑optimal, fading stops hurting, and you can stack many users with little mutual interference. This chapter is about that regime change: why more antennas don't just add gain, they change the statistics.

Before we dive inWhat you'll walk away knowing

  • Define massive MIMO by its regime (N ≫ K users), not just antenna count.
  • Explain channel hardening: as N grows, ‖h‖²/N concentrates → fading flattens.
  • Explain favourable propagation: hᵢᴴhⱼ/N → 0 → users self‑orthogonalise.
  • Explain why these make linear precoding (MRT/ZF) near‑optimal and enable many‑user MU‑MIMO.
  • Connect to the practical wins: stable rank, low scheduling complexity, big cell capacity — and the catch (pilot contamination).

Section 15.1A regime, not a number

The defining feature of massive MIMO is that the base station has many more antennas N than the users K it serves on a resource (N ≫ K) — say 64 antennas for 8 users. In that regime the law of large numbers takes over the channel mathematics, and the random, hostile channel we fought in Chapter 2 becomes tame. It's the same shift as going from a few coin flips (wild) to ten thousand (predictably ~50%). More antennas average out randomness.

It pays to be precise about how tame, because the coin‑flip analogy is exactly right quantitatively. Flip a fair coin twice and the fraction of heads can easily be 0% or 100% — wild swings. Flip it ten thousand times and the fraction sits within a hair of 50% almost every time. The reason is that the standard deviation of an average of N independent things shrinks like 1/√N: it halves every time you quadruple N. The effective channel gain of an N‑antenna array is precisely such an average, so its relative fluctuation falls as 1/√N too. Go from N=2 to N=64 and you have multiplied N by 32, so the gain's relative spread shrinks by √32 ≈ 5.7× — a channel that used to swing ±60% now swings barely ±10%. That single inverse‑square‑root law is the quiet engine under everything in this chapter: hardening, favourable propagation, and the near‑optimality of cheap precoding are all just the 1/√N rule wearing different clothes.

Note what the regime is not. It is not defined by the absolute antenna count — a 64‑port array serving 60 users is barely in the regime (N is only marginally larger than K), while the same 64 ports serving 4 users sits deep inside it. What matters is the ratio N/K, the number of spare spatial degrees of freedom per user. That is why operators don't simply "max out users" on a massive‑MIMO cell: push K too close to N and the favourable‑propagation cushion thins, inter‑user interference returns, and you fall back toward ordinary MU‑MIMO. The art of scheduling such a cell (Chapter 16) is keeping a healthy N/K margin.

conventional MIMO few antennas, channel is random/wild massive MIMO (N ≫ K) many antennas → channel hardens & users orthogonalise
Figure 15.1 · Massive MIMO is a regime (N ≫ K) where the statistics change, not just a bigger array
How to read this picture Left: conventional MIMO — a few antennas, a wild random channel that fades and fluctuates (Chapter 2). Right: massive MIMO — far more base‑station antennas than served users (N ≫ K). The point isn't just more gain: with so many antennas, the law of large numbers averages out the randomness, so two new effects appear that simply don't exist on the left — the channel hardens (stops fading) and different users' channels become naturally orthogonal. Those two effects, not the raw antenna count, are what "massive" really means — and they're the next two sections.
Pilot contamination: reused pilots confuse the estimate gNB own user, pilot p far cell user, SAME pilot p finite pilots must be reused → the estimate mixes both users' channels
Figure 15.6 · Pilot contamination — the asymptotic limit of massive MIMO
How to read this picture Massive MIMO's gains would grow without bound except for one fundamental ceiling: pilot contamination. There are only so many orthogonal pilot sequences, so distant cells must reuse them. When a neighbouring cell's user transmits the same pilot, the gNB's channel estimate is a blend of both users — and the resulting beam partly points at the interferer. Unlike noise, this does not average away as you add antennas, so it sets the asymptotic limit on how far massive MIMO scales and motivates pilot-coordination schemes.
Channel hardening: many antennas average the fading away time → SISO: violent fading massive MIMO: nearly flat
Figure 15.4 · Channel hardening flattens the fading
How to read this picture A single-antenna link fades wildly — the red trace dives into deep nulls that cause dropouts. With a large array, the many independent antenna paths average out: their combined gain becomes almost constant in time (blue). This channel hardening is one of massive MIMO's quiet superpowers — it turns a fickle channel into a near-deterministic one, which simplifies scheduling, link adaptation and power control because the gNB can count on stable SINR instead of guarding against deep fades.
Favourable propagation: with enough antennas, users decouple gNB large array user 1 user 2 channels become near-orthogonal → simple linear precoding separates them
Figure 15.5 · Favourable propagation makes users near-orthogonal
How to read this picture As the array grows, the channels of different users tend to become orthogonal — mathematically almost independent. This 'favourable propagation' means the gNB can give each user its own clean beam and they barely interfere, so even simple linear precoders (MRT/ZF) approach optimal performance. It is the theoretical reason massive MIMO can stack many users on the same resources without the complex non-linear processing smaller arrays would need — the engine behind MU-MIMO capacity.

Section 15.2Channel hardening — fading goes calm

In Chapter 2 the channel gain fluctuated violently — deep fades, the whole reason we needed diversity. Channel hardening is the massive‑MIMO miracle that those fluctuations shrink toward zero as N grows. When you coherently combine N antennas, the effective channel gain ‖h‖²/N concentrates around its mean (law of large numbers): the deep fades average out, and the link gain becomes almost constant. Practically: rank and CQI stabilise, link adaptation gets easy, and the diversity you used to fight for is now just… there, for free, in the antenna count.

Worked — how flat is "hardened"? For an i.i.d. Rayleigh channel the normalised gain g = ‖h‖²/N has mean 1 and standard deviation 1/√N (it follows a scaled chi‑square distribution with 2N degrees of freedom). So the coefficient of variation — the spread relative to the mean — is simply 1/√N:
N = 1 (SISO) σ/μ = 1.00 # gain routinely swings from near‑zero to 2× → deep fades N = 4 σ/μ = 0.50 # still ±50%, ordinary MIMO N = 16 σ/μ = 0.25 N = 64 σ/μ = 0.125 # ±12% — link gain essentially a constant N = 256 σ/μ = 0.0625 # ±6% — the channel is, for scheduling purposes, deterministic
This is why a 64‑port cell can run aggressive, near‑fixed MCS with few HARQ retransmissions where a SISO link would be drowning in fade‑induced errors: the fade depth that link adaptation must guard against has shrunk eightfold. Hardening doesn't make the average gain bigger — that's array gain, a separate effect — it makes the gain reliable.
channel hardening: more antennas → flatter effective gain time → N=2 (wild fading) N=64 (hardened — nearly flat) ‖h‖²/N concentrates around its mean → deep fades vanish
Figure 15.2 · Channel hardening: the violent fading of few antennas flattens into a calm gain with many
How to read this picture Effective channel gain over time. With N=2 (light, jagged) the gain swings wildly — the deep fades of Chapter 2 that forced us to spend resources on diversity. With N=64 (dark, nearly flat) those swings have collapsed: coherently combining many antennas averages the randomness away, so ‖h‖²/N concentrates near its mean and the link gain becomes almost constant. That calm is channel hardening, and it's hugely practical — CQI and rank stop bouncing, link adaptation becomes accurate, and the diversity you used to engineer for now comes built into the array. Fading, the oldest enemy in wireless, quietly retires.

Section 15.3Favourable propagation — users self-orthogonalise

The second miracle, and the one that powers MU‑MIMO. Two users' channel vectors hᵢ and hⱼ are generally not orthogonal — their beams would interfere. Favourable propagation says that as N grows, randomly‑located users' channels become asymptotically orthogonal: hᵢᴴhⱼ / N → 0. In plain terms, in a high‑dimensional space, random vectors are almost always nearly perpendicular. So with enough antennas the users naturally stop interfering — and even the simplest precoder (MRT) separates them well, because each user's beam already lands in a near‑null of the others.

The high‑dimensional geometry behind this surprises people the first time, so it is worth dwelling on. In two or three dimensions, two random vectors are quite often roughly aligned — pick two random compass directions and they're within 30° of each other a good fraction of the time. But our intuition for "random vectors are usually skewed" is a low‑dimensional prejudice. In an N‑dimensional space the overwhelming majority of the volume sits near the "equator" relative to any fixed direction, so two independently drawn random vectors are almost always close to perpendicular — and the typical angle concentrates ever tighter on 90° as N grows. The normalised inner product hᵢᴴhⱼ/N doesn't just trend to zero on average; its spread around zero also collapses like 1/√N, the same law again. Massive MIMO doesn't engineer the users apart — it simply operates in a space so roomy that randomly placed users are perpendicular by default, and the array gets to exploit that geometric gift for free.

Worked — the residual leakage between two users Model two users as i.i.d. Rayleigh vectors. The normalised cross‑correlation ρ = |hᵢᴴhⱼ| / (‖hᵢ‖‖hⱼ‖) has mean magnitude ≈ 1/√N. The interference power MRT leaks from user j onto user i scales as |ρ|²1/N:
N = 4 |ρ|² ≈ 1/4 → ≈ −6 dB # co‑user leaks heavily; you NEED ZF/MMSE here N = 16 |ρ|² ≈ 1/16 → ≈ −12 dB N = 64 |ρ|² ≈ 1/64 → ≈ −18 dB # leakage below the noise floor of most links → MRT is "good enough" N = 256 |ρ|² ≈ 1/256 → ≈ −24 dB
Read it as a design rule: every quadrupling of antennas buys ~6 dB of free co‑user isolation. That is the precise reason §15.3's claim "MRT becomes near‑optimal" is true — by N=64 the interference the cheap precoder ignores has fallen ~18 dB below the signal, so the elaborate matrix inversion of ZF/MMSE is recovering ever less.
few antennas hᵢ hⱼ channels overlap → users interfere massive MIMO hᵢ hⱼ ≈90° hᵢᴴhⱼ/N → 0: channels orthogonal → no interference
Figure 15.3 · Favourable propagation: with many antennas, users' channels become nearly perpendicular
How to read this picture Think of each user's channel as a vector. Left (few antennas): two users' vectors hᵢ, hⱼ point in similar directions — they overlap, so beaming to one splashes onto the other (interference, red). Right (massive MIMO): in the very high‑dimensional space of many antennas, random vectors are almost always nearly perpendicularhᵢᴴhⱼ/N → 0. The users have self‑orthogonalised: a beam for one naturally lands in a near‑null of the other. This is favourable propagation, and it's why massive MIMO can stack many MU‑MIMO users with even simple precoding — the geometry does the separation for you.
▸ Advanced · 3GPP deep-dive — the asymptotics & why MRT becomes near-optimal

For i.i.d. Rayleigh channels h ~ CN(0, I_N), as N → ∞:

channel hardening (1/N)‖h‖² → 1 # variance → 0 (law of large numbers) favourable prop. (1/N) hᵢᴴhⱼ → 0 (i≠j) # users asymptotically orthogonal MRT SINR (K users) SINR_k ≈ (N·p) / (1 + (K-1)·p·ε) # ε = residual non-orthogonality → 0 as N grows

Because inter-user terms vanish, the simple MRT precoder (w_k = h_k/‖h_k‖, Ch.12) achieves SINR that grows ≈ linearly with N with negligible inter-user interference — so the expensive ZF/MMSE matrix inversions matter less than at small N. This is the theoretical engine behind "massive MIMO + simple linear processing." Array gain10·log₁₀N (coherent), and total cell spectral efficiency scales ≈ with K·log₂(1+SINR_k) — many users in parallel (Ch.16).

Worked — the catch: pilot contamination The asymptotics assume clean channel estimates. In multi-cell TDD, reused uplink pilots make a neighbour's user look like your user → the MRT beam partly points at the interferer, and this term does not vanish with N. Pilot contamination is the fundamental non-ideal ceiling of massive MIMO (mitigated by pilot planning, Ch.19, and coordination).
Try it yourself — watch both miracles switch on with N
Both effects are a few lines to reproduce, and seeing the numbers move with N cements the idea far better than the formulas. Sweep the antenna count and measure (a) how flat the gain becomes and (b) how isolated two users become:
# sweep N; for each, average over many random channels for N in [1, 4, 16, 64, 256]: g, rho = [], [] for trial in range(5000): hi = (randn(N) + 1j*randn(N)) / sqrt(2) hj = (randn(N) + 1j*randn(N)) / sqrt(2) g.append( norm(hi)**2 / N ) # normalised gain rho.append( abs(hi.conj() @ hj) / (norm(hi)*norm(hj)) ) print(N, "hardening σ/μ =", std(g)/mean(g), # should track 1/√N "| co-user leak =", 10*log10(mean(square(rho))), "dB")
You'll watch σ/μ march down the 1.00 → 0.50 → 0.25 → 0.125 → 0.0625 ladder of §15.2, and the co‑user leakage drop ~6 dB per quadrupling of N exactly as §15.3 predicted. Then change the channel from i.i.d. Rayleigh to a single‑cluster line‑of‑sight model (all antennas seeing nearly the same steering vector) and watch favourable propagation weaken — a preview of why correlated and LoS channels (Chapter 17) are the real‑world enemy of the clean theory.

Section 15.4What it buys, and the catch

The payoffs are concrete: stable rank/CQI (hardening → easy link adaptation), many parallel users (favourable propagation → cheap MU‑MIMO), simple precoding suffices (MRT near‑optimal at large N), huge array gain (≈10·log₁₀N dB → coverage/energy), and diversity for free. The catch — there's always one — is pilot contamination: the whole edifice rests on accurate channel estimates, and when uplink pilots are reused across cells, a neighbour's pilot pollutes your estimate, steering your beam partly at the wrong user. Unlike thermal noise, this interference does not average away with more antennas, so it's massive MIMO's fundamental ceiling — and the reason pilot planning (Chapter 19) matters.

Section 15.5Where the rules live (3GPP map)

Concept3GPP home (NR)
Channel model (Rayleigh/CDL behind the asymptotics)TR 38.901
CSI-RS / SRS for the channel estimates hardening relies onTS 38.211, TS 38.214
MU-MIMO scheduling, codebooks (Type II for MU)TS 38.214 §5.2.2
RF/EIRP for large arrays (AAS)TS 38.104
The core idea
Massive MIMO = N ≫ K regime. Channel hardening (‖h‖²/N→const) kills fading; favourable propagation (hᵢᴴhⱼ/N→0) makes users orthogonal → simple MRT near-optimal, MU-MIMO cheap. Ceiling = pilot contamination (doesn't vanish with N).

Section 15.6KPIs & a field note

EffectKPI fingerprintMeaning
Channel hardeninglow CQI/RI variance; stable MCS; fewer HARQ spikesfading averaged out
Favourable propagationhigh MU pairing with low inter-user interferenceusers self-orthogonal
Pilot contaminationSINR ceiling that doesn't improve with more antennas; cell-edge MU degradationreused pilots across cells

Field note: "Adding antennas stopped improving SINR for some edge users." Suspect pilot contamination — the one impairment that doesn't average away with N. Check SRS/CSI‑RS pilot reuse across neighbouring cells and the pilot‑assignment plan (Ch.19); coordinate or randomise pilots for contaminated edge users.

Field note 2: "Massive‑MIMO cell shows great per‑user throughput but the MU‑MIMO pairing rate is stuck low — it rarely serves more than two layers at once." Hardening looks healthy (stable CQI), so the suspect is the favourable‑propagation side: the served users aren't actually orthogonal. This happens when UEs cluster in angle — a stadium, a single dominant LoS street, a high‑rise face — so their channel vectors point in similar directions despite the big array (the i.i.d. assumption behind §15.3 has broken). The tell is that pairing rate correlates with user geometry, not load: it's fine when users are scattered, poor when they bunch. Mitigation isn't more antennas (the leakage floor is angular, not noise‑limited) but smarter pairing — schedule angularly separated users together and fall back to SU‑MIMO for the cluster (Chapter 16) — or lean on a ZF/MMSE precoder, which still actively nulls co‑users when geometry stops doing it for free.

Section 15.7If they put you on the spot

"What makes massive MIMO qualitatively different from MIMO?"
The N ≫ K regime triggers two large‑number effects: channel hardening (effective gain ‖h‖²/N concentrates → fading flattens) and favourable propagation (hᵢᴴhⱼ/N → 0 → users orthogonalise). These make simple linear precoding near‑optimal and MU‑MIMO cheap — qualities absent at 2×2.
"Why does MRT become near-optimal at large N?"
Favourable propagation makes inter‑user channels asymptotically orthogonal, so the inter‑user interference MRT ignores vanishes; MRT SINR grows ≈ linearly with N. The complex ZF/MMSE inversions matter less than at small N.
"What is pilot contamination and why is it fundamental?"
When uplink pilots are reused across cells, a neighbour's user shares your pilot, polluting your channel estimate so the beam points partly at the wrong user. Unlike noise, this interference does NOT average away with more antennas — it's massive MIMO's asymptotic ceiling, addressed by pilot planning/coordination.
"One practical benefit of channel hardening?"
Stable CQI/rank → accurate link adaptation and less need for fast feedback and diversity schemes; the array provides diversity inherently.

Section 15.8What to carry out of this chapter

  • Massive MIMO is a regime (N ≫ K), where large‑number effects change the channel statistics.
  • Channel hardening: ‖h‖²/N concentrates → fading flattens → stable CQI/rank, free diversity.
  • Favourable propagation: hᵢᴴhⱼ/N → 0 → users self‑orthogonalise → cheap MU‑MIMO.
  • Together → simple MRT/linear precoding near‑optimal, big array gain (~10·log₁₀N), many parallel users.
  • The ceiling is pilot contamination — interference from reused pilots that doesn't vanish with N.

In closing15.9 · When more becomes different

Massive MIMO earns its name not by counting antennas but by changing the rules: cross the N ≫ K threshold and the channel hardens into near‑constancy while users drift into natural orthogonality. Fading — the antagonist of every earlier chapter — fades; interference between paired users melts; and the simplest precoder you know becomes good enough. That regime change is why massive MIMO is the backbone of 5G capacity, and why the rest of Part 6 is worth the detail.

But the asymptotic dream has one stubborn flaw — pilot contamination — that keeps the engineering honest and gives later chapters their teeth. With the concept established, we now make it operational. In Chapter 16 — SU‑MIMO and MU‑MIMO, we'll turn favourable propagation into a scheduler: how the gNB pairs users, when to spend antennas on one user's layers versus many users' streams, and the rank‑adaptation and orthogonality logic that decides who shares a resource block.

— end of Chapter 15 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Six — Massive MIMO Deep Dive
CHAPTER SIXTEEN

SU-MIMO and
MU-MIMO

"Spend your antennas on one user's layers, or many users' streams. That choice is where massive-MIMO capacity is won or lost."

Here is the decision a massive‑MIMO scheduler makes thousands of times a second: do I pour all these spatial degrees of freedom into one user — many layers to a single phone (SU‑MIMO) — or split them across several users at once on the same time‑frequency (MU‑MIMO)? Chapter 15 told us why MU‑MIMO is even possible (favourable propagation makes users orthogonal). This chapter turns that into operational reality: how the scheduler pairs users, why pairing needs near‑orthogonal channels, how rank adaptation chooses SU layers vs MU streams, and why — counter‑intuitively — the cell's capacity almost always comes from MU‑MIMO, not from cramming layers onto one lucky user.

Before we dive inWhat you'll walk away knowing

  • Distinguish SU‑MIMO (layers to one UE) from MU‑MIMO (streams to many UEs on the same resource).
  • Explain UE pairing and why it needs near‑orthogonal channels (low correlation).
  • Explain rank adaptation: when to add SU layers vs split into MU streams.
  • Explain why cell capacity scales with MU‑MIMO (sum over users), not single‑user rank.
  • Read the scheduler's pairing metric and the precoder (ZF/MMSE) that keeps paired users apart.

Section 16.1Two ways to spend the antennas

SU‑MIMO dedicates the whole array to one UE, sending it up to 8 layers — great when that UE has a rich, high‑rank channel and there's little else to schedule. MU‑MIMO instead beams to several UEs simultaneously on the same PRBs, each getting 1–2 layers, separated by space (different beams, orthogonal DM‑RS ports — Chapter 11). The same antennas, two philosophies: depth (one user, many layers) vs breadth (many users, few layers each).

Underneath both lives one shared budget: the array's spatial degrees of freedom. An N‑port array can place at most N independent beams, so the total layers it transmits in a slot — summed across every served user — cannot exceed the port count (and in practice stays well under it, to leave room for the nulls that keep users apart). SU and MU are simply two ways to spend that one budget. SU hands the whole allowance to a single UE; MU divides it among several. Crucially, the budget is capped twice over: once by the hardware (N ports), and again by the DM‑RS orthogonal‑port limit — NR offers up to 12 orthogonal DM‑RS ports (Chapter 11), so even a 64‑port array cannot co‑schedule more than 12 layers' worth of users no matter how separable they are. That second cap, not the antenna count, is often what actually limits MU order in the field, and it is the first thing to check when a cell "won't pair more than four users."

SU-MIMO — all layers to ONE user 1 UE · 3 layers MU-MIMO — streams to MANY users 3 UEs · same PRBs · 1 layer each
Figure 16.1 · Depth vs breadth: many layers to one user, or one stream to many users
How to read this picture Same array, two strategies. Left, SU‑MIMO: every spatial resource goes to a single UE as multiple layers (here 3) — ideal when that user's channel is rich and high‑rank and nobody else needs serving. Right, MU‑MIMO: the array beams to three different UEs at the same time on the same PRBs, one stream each, kept apart by separate beams and orthogonal DM‑RS ports (Ch.11). Depth versus breadth. The surprise the rest of the chapter builds to: in a loaded cell, breadth almost always wins — serving 8 users one layer each beats one user with 8 layers, because cell capacity sums over users.
The scheduler switches SU↔MU slot by slot time (slots) → SU (1 user, 4 lyr) MU (4 users × 1 lyr) SU MU
Figure 16.5 · Dynamic SU/MU-MIMO switching
How to read this picture The choice between SU and MU is not set once — the scheduler re-decides every slot based on who has data and how separable they are. When one user with a rich channel has a big buffer, a slot goes SU with all layers to them; the next slot, with several separable users waiting, goes MU. Good schedulers flip between the two thousands of times a second to maximise total throughput, which is why a healthy cell's logs show a constant mix rather than a fixed mode.
SU-MIMO: all layers to one user · MU-MIMO: layers split across users gNB UE SU: 2 layers, one user gNB UE1 UE2 MU: 1 layer each, two users, same RB
Figure 16.3 · SU-MIMO vs MU-MIMO
How to read this picture Same array, two ways to spend it. SU-MIMO sends all spatial layers to a single user — great if that user has a rich, high-rank channel and lots of data. MU-MIMO splits the layers across several users on the same time-frequency resource, each getting its own beam. MU-MIMO usually wins on total cell throughput because most single users can't use many layers but the cell as a whole always has more users wanting service — provided their channels are separable (Chapter 35).
Why MU-MIMO lifts cell throughput paired users → cell SE SU: one user caps out MU: keeps climbing with users
Figure 16.4 · MU-MIMO keeps adding capacity as users are paired
How to read this picture A single user's rate saturates — there is only so much rank one device can use, so the grey SU curve flattens. MU-MIMO instead recruits more users onto the same resources, and because favourable propagation keeps their beams separable, the cell's sum spectral efficiency keeps climbing (blue) well past where one user would have capped. This is the core capacity argument for massive MIMO in loaded networks: the gain comes from serving many at once, not from making one user faster.

Section 16.2UE pairing — who can share a resource

MU‑MIMO only works if the co‑scheduled users' channels are near‑orthogonal — otherwise their beams interfere and you've made everyone worse. So the scheduler runs a pairing test: it measures the correlation between candidate users' channels and only pairs those below a threshold. Two users in the same direction (high correlation) can't share; two in different directions (low correlation, favourable propagation from Chapter 15) pair beautifully. This is why MU‑MIMO loves a spread‑out, scattered user population and struggles when everyone's clustered.

In practice the scheduler doesn't test every possible group — with dozens of active users the number of candidate sets explodes combinatorially — so it builds the paired set greedily. It starts from the highest‑priority user (the one the proportional‑fair metric favours), then walks the remaining candidates and admits the next user only if its channel correlation against every user already in the set stays below the threshold, repeating until either no compatible user remains or the DM‑RS port budget is full. Each admission must clear the bar against the whole group, not just against the first user, because a third beam has to null into two existing beams at once. This greedy build is why pairing quality degrades faster than you'd expect as the group grows: the orthogonality constraint gets harder to satisfy with every user added, which is the deeper reason real cells rarely pair beyond four to six users even when far more are active.

▸ Advanced · 3GPP deep-dive — the pairing metric & MU precoding

Pairing is vendor scheduler logic (not standardised), but the math is universal:

correlation ρᵢⱼ = |hᵢᴴ hⱼ| / (‖hᵢ‖·‖hⱼ‖) # 0 = orthogonal, 1 = collinear pair if ρᵢⱼ < ρ_thresh (e.g. 0.3–0.5) scheduler maximise Σ_k PF_k · log₂(1+SINR_k) # proportional-fair sum-rate over the paired set MU precoder W = Hᴴ(HHᴴ)⁻¹ (ZF) or Hᴴ(HHᴴ+(1/ρ)I)⁻¹ (MMSE)

ZF/MMSE precoding (Ch.3, Ch.12) makes each paired user's beam null the others, so residual MU interference is small when ρ is low. The CSI must be accurate (Type II codebook or reciprocity, Ch.14) — coarse CSI → mis-placed nulls → MU collapses. Inputs the scheduler weighs: channel orthogonality, per-user SINR/CQI, buffer/QoS, fairness (PF), and the DM-RS orthogonal-port budget (Ch.11).

Worked — sum-rate Two users, each SINR 10 dB (≈3.46 b/s/Hz) when paired with good orthogonality (ρ=0.2): MU sum ≈ 6.9 b/s/Hz on one resource vs ≈3.46 for SU — nearly 2×. Pair badly (ρ=0.8): mutual interference drops each to ~3 dB → sum ≈ 3.4, worse than SU. Pairing quality is everything.
Worked — greedy pairing in action Four active users; the gNB has measured pairwise correlations (ρ) and uses threshold 0.4. Priority order from the PF metric is U1 > U2 > U3 > U4.
U1 U2 U3 U4 U1 — 0.15 0.62 0.30 U2 — 0.22 0.71 U3 — 0.18 U4 —
Greedy build: admit U1 (highest priority). Test U2: ρ(U1,U2)=0.15 < 0.4 → admit. Test U3: ρ(U1,U3)=0.62 > 0.4 → reject (collinear with U1, even though it's fine against U2). Test U4: ρ(U1,U4)=0.30 ✓ but ρ(U2,U4)=0.71 > 0.4 → reject (clashes with U2). Final paired set = {U1, U2}, MU order 2. Note U3 and U4 were each blocked by a different incumbent — that's the "clear the bar against the whole group" rule biting. Next slot, if PF priority reorders to U3 first, the cell might instead pair {U3, U1's-non-conflicting…} — which is exactly why the SU/MU mix churns slot to slot (Fig 16.5).

Section 16.3Rank adaptation — layers vs streams

Every slot the scheduler also adapts rank: how many layers to give. The logic links straight to Chapter 3's condition number and SINR. High SINR + rich, well‑conditioned channel → add SU layers (the eigen‑channels are all strong). Lower SINR or ill‑conditioned channel → drop rank (forcing weak layers wastes power). And when one user can't use all the antennas' freedom but others are waiting, split the freedom into MU streams. Rank adaptation is the moment‑to‑moment dial between SU‑depth and MU‑breadth.

Worked — why a high‑SINR user still gets rank 1 Recall (Chapter 3) that each layer rides an eigen‑channel whose gain is a singular value σᵢ, and the per‑layer SINR scales as σᵢ². Take a 2‑layer candidate at 20 dB receive SNR with a condition number κ = σ₁/σ₂ = 10 (an ill‑conditioned channel — one strong direction, one weak):
layer 1: SINR ≈ 20 dB # the strong eigen-channel → ~6.6 b/s/Hz layer 2: SINR ≈ 20 − 20·log₁₀(κ) # = 20 − 20 = 0 dB → ~1.0 b/s/Hz rank-2 sum ≈ 7.6 b/s/Hz BUT splitting power halves each → realistically ≈ 6.8 rank-1 ≈ 6.6 b/s/Hz on the strong layer alone, full power
The second layer adds almost nothing because κ has crushed its eigen‑channel — so the scheduler reports RI=1 despite the lavish SINR, and hands the idle spatial dimension to another user as an MU stream. This is the precise mechanism behind the "ill‑conditioned → cap rank even at high SINR" note in Figure 16.2: it isn't power that's missing, it's a usable second direction.
rank adaptation: SINR + condition number → SU layers or MU streams SINR → useful rank → low SINR → rank 1 (or MU split) high SINR + rich → high SU rank ill-conditioned (κ large, Ch.3) → cap rank even at high SINR
Figure 16.2 · Useful rank rises with SINR — but caps if the channel is ill-conditioned
How to read this picture Useful rank (layers worth sending) vs SINR. At low SINR (left, red) only rank 1 pays — extra layers would split scarce power and fail; better to give those degrees of freedom to other users as MU streams. As SINR rises with a rich, well‑conditioned channel, useful rank climbs toward 8 (SU depth). But the dashed note matters: if the channel is ill‑conditioned (condition number κ large, Chapter 3), rank caps below the antenna count even at high SINR, because the weak eigen‑channels can't carry layers. Rank adaptation reads SINR and conditioning every slot, and routes spare spatial freedom to MU‑MIMO when one user can't use it all.

Section 16.4Why cell capacity is an MU-MIMO story

Here's the punchline that reframes massive MIMO. A single UE rarely sustains rank 8 — its device has few antennas, its channel is rarely that rich. So SU‑MIMO leaves most of the array's spatial freedom unused. MU‑MIMO mops it up: pair 8 well‑separated users at one layer each and you get ~8× the cell throughput of serving them one at a time, even though no single user sees more than rank 1–2. Massive‑MIMO capacity comes from multiplexing users, not layers per user — which is exactly why the deployment choices in Chapter 4 (more TXRUs/ports) and the pairing logic here matter more for cell capacity than chasing single‑user peak rates.

The "~8×" deserves an honest asterisk, because in the field you never quite get the full multiple, and knowing why keeps your expectations calibrated. Three things erode it. First, residual MU interference: pairing is never perfectly orthogonal (ρ > 0), so each paired user's SINR is a little below its SU value, and since rate grows only logarithmically with SINR, that small loss is tolerable but real. Second, the port and pairing caps from §16.1/§16.2 — you may have 64 ports but only find four mutually separable users, so you bank 4× not 8×. Third, CSI overhead: MU needs fresh, fine CSI (Type II or reciprocity), and the pilots/feedback that buys it consume resources that would otherwise carry data. A useful mental model: MU multiplexing gain is roughly the achieved pairing order (typically 2–4 in a real macro cell, more in dense indoor) times a 0.7–0.9 efficiency factor for the interference and overhead losses. The headline 8× is the ceiling; the everyday win is a very respectable 2–4× — still transformative for a loaded cell, and still entirely a story about users, not layers.

Try it yourself — find the pairing sweet spot
The SU‑vs‑MU trade has a tipping point you can locate numerically. Simulate K random users, sweep the pairing threshold ρthresh, and plot cell sum‑rate:
# N ports, K candidate users, i.i.d. Rayleigh channels N, K = 64, 20 H = (randn(K, N) + 1j*randn(K, N)) / sqrt(2) for rho_th in [0.1, 0.2, 0.3, 0.4, 0.6, 0.9]: S = greedy_pair(H, rho_th) # build the paired set (the §16.2 algorithm) W = zf_precoder(H[S]) # Hᴴ(HHᴴ)⁻¹, then normalise to ‖W‖²=|S| sinr = post_precoding_sinr(H[S], W) # includes residual leakage print(rho_th, "paired", len(S), "users, sum-rate", sum(log2(1 + sinr)), "b/s/Hz")
You'll see a hump: too strict a threshold (ρ=0.1) pairs almost nobody (back toward SU), too loose (ρ=0.9) pairs collinear users whose mutual interference tanks every rate — and the sum‑rate peaks somewhere around 0.3–0.4, which is exactly the range vendors ship as a default. Now raise N from 64 to 256 and watch the peak both rise and shift looser, because favourable propagation (Chapter 15) has made even moderately‑correlated users safely pairable. That single curve is the whole chapter in one experiment.

Section 16.5Where the rules live (3GPP map)

Concept3GPP home (NR)
MU-MIMO DM-RS ports / CDM groups (orthogonal users)TS 38.211 §7.4.1.1
CSI for MU (Type II codebook), rank/CQI reportingTS 38.214 §5.2.2
Scheduling, pairing (implementation — not standardised)vendor
DCI: antenna ports, #CDM groups without data (MU rate matching)TS 38.212
The core idea
SU = depth (layers to one UE); MU = breadth (streams to many). Pair users with low channel correlation (ρ<thresh); ZF/MMSE nulls keep them apart; rank adaptation routes spare freedom to MU. Cell capacity = Σ over users → MU-MIMO is the capacity engine. Needs accurate CSI (Type II / reciprocity).

Section 16.6KPIs & a field note

MetricKPI fingerprintMeaning
MU pairing rate / orderavg co-scheduled UEs per PRBhow much breadth you're getting
MU inter-user SINRpost-precoding SINR vs SU SINRpairing orthogonality quality
Rank distributionRI.Distr; SU rank vs MU stream splitdepth vs breadth balance
Cell spectral efficiencyb/s/Hz/cellthe MU-MIMO payoff

Field note: "64T64R cell shows high single‑user peaks but mediocre cell throughput." Classic SU‑heavy operation — the scheduler isn't pairing. Check the pairing threshold (too strict?), CSI quality (coarse CSI → can't pair confidently → enable Type II/reciprocity), user spatial distribution, and the DM‑RS orthogonal‑port budget. Cell capacity lives in pairing, not peaks. (Full MU‑MIMO‑not‑activating in Chapter 35.)

Field note 2: "MU pairing rate is healthy, but paired users' throughput collapses — the cell does worse when it pairs than when it runs SU." This is the opposite failure: the scheduler is pairing aggressively but the nulls aren't landing, so co‑users drown each other (the ρ=0.8 disaster from the worked sum‑rate). The usual root cause is stale or coarse CSI: the ZF/MMSE precoder places its nulls using a channel estimate that no longer matches reality, so the null meant for user B actually points slightly off and B's interference leaks into A. Confirm it by correlating the collapse with UE speed (Doppler ages the CSI) and with CSI type (a cell on Type I codebooks simply can't resolve nulls finely enough for dense MU). Fixes: shorten the CSI/SRS reporting period, switch the paired UEs to Type II codebooks or reciprocity, or raise the pairing threshold so only genuinely orthogonal users are co‑scheduled — trading a little pairing rate for nulls that actually work. Note this is the MU‑precoding mirror of Chapter 15's "beam points where the UE was" — same stale‑CSI villain, different symptom.

Section 16.7If they put you on the spot

"SU-MIMO vs MU-MIMO?"
SU sends multiple layers to one UE (depth); MU sends streams to several UEs on the same time‑frequency (breadth), separated by beams and orthogonal DM‑RS ports. Cell capacity sums over MU users, so MU is the capacity engine.
"What makes two users pairable?"
Near‑orthogonal channels: correlation ρ=|hᵢᴴhⱼ|/(‖hᵢ‖‖hⱼ‖) below a threshold. Low ρ → ZF/MMSE nulls keep them apart; high ρ → they interfere and MU is worse than SU. Favourable propagation (Ch.15) makes large‑N arrays good at this.
"How does rank adaptation decide layers?"
It reads SINR and channel conditioning: high SINR + well‑conditioned → more SU layers; low SINR or ill‑conditioned (κ large) → drop rank; spare spatial freedom one UE can't use is routed to MU streams for other users.
"Why is massive-MIMO capacity an MU story?"
A single device rarely sustains high rank, so SU leaves the array's freedom idle. Pairing many well‑separated users at 1–2 layers each multiplies cell throughput ≈ with the number of paired users — far beyond single‑user peaks.

Section 16.8What to carry out of this chapter

  • SU‑MIMO = layers to one UE (depth); MU‑MIMO = streams to many UEs on one resource (breadth).
  • Pairing needs low channel correlation (ρ < threshold); ZF/MMSE nulls keep paired users apart.
  • Rank adaptation trades SU layers vs MU streams by SINR + conditioning each slot.
  • Cell capacity = Σ over users → MU‑MIMO is the engine; accurate CSI (Type II/reciprocity) is the enabler.

In closing16.9 · Breadth beats depth

SU‑ versus MU‑MIMO is the scheduler's defining choice, and Chapter 15's favourable propagation is what makes the MU option pay: with many antennas, well‑separated users self‑orthogonalise, so pairing them multiplies cell capacity while simple ZF/MMSE precoding keeps them apart. Depth (one user, many layers) is glamorous in a demo; breadth (many users, few layers) is where a loaded cell actually earns its spectrum. Rank adaptation is the dial between them, read fresh every slot from SINR and channel conditioning.

That completes the conceptual core of Part 6. We now know what massive MIMO is (Ch.15) and how to use its degrees of freedom (this chapter). The last piece is the metal: what 8T8R through 128T128R actually look like as deployed radios, and how an Active Antenna System integrates it all. In Chapter 17 — Massive MIMO Deployment Types, we'll match configurations to scenarios and meet the RF/OTA realities of large arrays.

— end of Chapter 16 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Six — Massive MIMO Deep Dive
CHAPTER SEVENTEEN

Massive MIMO
Deployment Types

"The right array is the one that matches the scenario — not the one with the biggest number on the datasheet."

We've built the theory; now we choose the box that goes on the tower. "Massive MIMO radio" covers a wide family — from a modest 8T8R up to a 128T128R beast — and they are not interchangeable. Each configuration is a deliberate trade between capacity, coverage, cost, weight, power and the band it serves. Pick a 64T64R where 8T8R suffices and you've wasted money and rooftop load; pick 8T8R for a dense urban capacity site and you've left throughput on the table. This chapter is the deployment engineer's chapter: matching arrays to scenarios, understanding the Active Antenna System (AAS) that integrates radio and antenna, and the RF/OTA realities (EIRP, TRP, weight, power) that decide what you can actually hang on a mast.

Before we dive inWhat you'll walk away knowing

  • Match 8T/16T/32T/64T/128T configurations to deployment scenarios.
  • Explain the Active Antenna System (AAS): integrated radio + array + beamforming.
  • Reason about the capacity vs coverage vs cost/weight/power trade per config.
  • Understand the RF/OTA metrics that matter at deployment: EIRP, TRP, EVM, and why testing is over‑the‑air.
  • Pick the right band/config for urban macro, dense urban, rural, and FR2 hotspot.

Section 17.1The configuration family, by scenario

The "T/R" number (transceivers, Chapter 4) is the headline, but the deployment story is about fit. More transceivers buy array gain (coverage) and MU‑MIMO order (capacity) — but cost more, weigh more, and burn more power. Here's how the family maps to the real world:

Before the table, it helps to fix the physics that the configuration choice is really trading. Two numbers move with the array size, in opposite usefulness. The first is array gain, which grows as ≈ 10·log₁₀N dB — so each quadrupling of elements adds ~6 dB, straight into coverage and edge SINR. The second is beamwidth, which narrows roughly as 1/√N in each dimension: a wider array makes a sharper pencil. That sharpening is a blessing for capacity (sharp beams = less inter‑user splash = higher MU order) but a curse for mobility and coverage (a pencil beam must be steered accurately and covers less ground per beam, so you need more beams to paint the sector — the beam‑management burden of Part 8). This is the deep reason the family isn't a quality ladder: a rural coverage site wants the wide, forgiving beam of a small array, while a dense‑urban capacity site wants the narrow, selective beam of a large one. The right N is the one whose beamwidth matches how your users are spread.

match the array to the scenario 8T–16T rural / coverage wide beams light, low power low band (FDD) 32T–64T urban macro 3D beams, MU-MIMO the workhorse mid band TDD (3.5 GHz) 128T dense urban / capacity sharp beams, high MU heavy, high power mid band TDD FR2 (256+ elem) mmWave hotspot pencil beams (hybrid) few RF chains 24–40 GHz
Figure 17.1 · There's no "best" array — only the right fit for the scenario and band
How to read this picture Four scenarios, four sweet spots. 8T–16T: rural/coverage on low FDD band — wide beams, light, low power; you don't need MU depth where users are sparse. 32T–64T: the urban‑macro workhorse on mid‑band TDD (3.5 GHz) — full 3D beamforming and solid MU‑MIMO, the config most 5G capacity runs on. 128T: dense‑urban capacity where you'll actually fill all those MU streams — sharper beams, higher MU order, but heavier and hungrier. FR2 (256+ elements, hybrid, few RF chains): mmWave hotspots — pencil‑beam gain, limited simultaneous users (Ch.13). The engineering point: bigger isn't better; matched is better.
Common radio configurations — more TRX, more capability 8T8Rcoverage / FDD 32T32Rmid-band capacity 64T64Rflagship MU-MIMO
Figure 17.5 · Typical massive-MIMO radio configurations
How to read this picture Operators deploy a ladder of radio types. 8T8R is the entry point — good coverage, often FDD, modest multiplexing. 32T32R mid-band radios add real MU-MIMO capacity for dense urban cells. 64T64R flagship TDD radios drive the highest user counts and spectral efficiency. The transmit/receive (TRX) count — not the raw element count printed on the box — is the figure that predicts how many simultaneous users the cell can serve, so it is the first number to read when sizing capacity.
Two massive-MIMO worlds: mid-band coverage vs mmWave capacity Sub-6 GHz (FR1) 64T64R · wide beams · TDD reciprocity SU+MU-MIMO · macro coverage mmWave (FR2) 256+ elements · pencil beams · analog/hybrid beam management critical · hotspot capacity
Figure 17.3 · Sub-6 GHz vs mmWave massive-MIMO deployments
How to read this picture Massive MIMO looks very different in the two frequency ranges. In sub-6 GHz (FR1) a 64T64R TDD radio forms relatively wide beams, leans on reciprocity for CSI, and serves macro coverage with heavy MU-MIMO. In mmWave (FR2) the array has hundreds of elements but mostly analog/hybrid beamforming, producing pencil beams for hotspot capacity — where beam management and blockage (Part Eight) dominate everything. The same principles, but the engineering trade-offs almost invert between the two.
TDD enables reciprocity — the key massive-MIMO enabler TDD — same frequency UL ↑ then DL ↓ share the band SRS gives full DL channel → ∞-port precoding FDD — paired bands DL UL no reciprocity → relies on codebook feedback
Figure 17.4 · Why most massive MIMO is TDD
How to read this picture In TDD uplink and downlink share one frequency, so an uplink SRS reveals the full downlink channel by reciprocity (Chapter 28) — letting the gNB precode across all its ports without the UE feeding back a huge codebook. In FDD the two directions sit on different bands, the channels aren't reciprocal, and the gNB must rely on limited codebook feedback (Type I/II), which caps practical port counts. That's why high-order massive MIMO is overwhelmingly deployed in TDD mid-band.

Section 17.2The Active Antenna System (AAS)

Old radios kept the radio unit and the antenna separate, joined by lossy coax. A massive‑MIMO Active Antenna System integrates everything into one box: the antenna array, the transceivers (one per element/sub‑array), the power amplifiers, and the beamforming, all behind the radome. There's no feeder loss, the per‑element PAs are small and efficient, and the whole thing applies beam weights right at the array. This integration is what makes 64 transceivers physically and thermally feasible on a mast — and it's why an AAS is a single field‑replaceable unit, not a rack of separate parts.

The integration buys one more thing that the whole reciprocity story (Chapters 14–16) silently depends on: calibration. Reciprocity holds for the propagation channel — the physics between antennas is the same up and down — but it does not hold for the electronics bolted to each antenna. Every transmit and receive chain has its own amplifier gain, filter phase and temperature drift, and those differ chain‑to‑chain and between the TX and RX directions. If left uncorrected, the gNB computes its downlink precoder from an uplink SRS that has been distorted by a different set of chain errors than the downlink will suffer, and the carefully computed nulls of MU‑MIMO land in the wrong place. So an AAS continuously runs an internal reciprocity calibration — measuring its own chains against a reference path and applying correction coefficients — so that the SRS‑derived channel truly predicts the downlink. This is invisible when it works and catastrophic when it drifts: a decalibrated 64T radio can have textbook hardening yet collapsing MU throughput, and it is the hardware root of the "nulls don't land" failure we met in Chapter 16. Chapter 28 returns to calibration in full.

OLD: radio + antenna separate radio unit lossy coax antenna feeder loss, few ports AAS: all-in-one (no coax) elements + per-elementTXRU + PA + beamforming integrated, no feeder loss, 64 TXRUs feasible
Figure 17.2 · AAS folds the radio, amplifiers and beamforming into the antenna — no coax, no feeder loss
How to read this picture Left, the old way: a separate radio unit connected to a passive antenna by lossy coax (red) — every dB lost in the feeder, and only a handful of ports. Right, the AAS: elements, per‑element transceivers, power amplifiers and the beamforming are all integrated behind one radome — no feeder, no loss, and the beam weights are applied right at the array. This integration is precisely what makes 32–64 transceivers thermally and economically viable on a mast: lots of small efficient PAs instead of one big lossy chain. When you hear "massive‑MIMO radio," picture this single integrated box — that's the AAS.
▸ Advanced · 3GPP deep-dive — AAS RF requirements: OTA, EIRP, TRP

Because an AAS has no antenna connector, RF requirements moved to over‑the‑air (OTA) testing (TS 38.104, TR 37.842/37.843):

EIRP Equivalent Isotropic Radiated Power # directional peak: array gain × per-element power TRP Total Radiated Power # total energy in all directions (regulatory/exposure) EVM Error Vector Magnitude # modulation accuracy (e.g. 256-QAM needs ≤ ~3.5%) OTA sensitivity, ACLR, spurious # all measured radiated, not conducted

Key consequence: a 64T AAS reaches high EIRP through array gain (≈10·log₁₀N, Ch.5) with modest per‑element power — e.g. 64 elements × ~1 W + ~18 dB array gain gives large EIRP at low per‑PA stress. But TRP (total power, hence energy/heat and exposure compliance) is bounded, which couples directly to energy‑saving features (Ch.38). Weight (~20–40 kg) and DC power (~hundreds of W to >1 kW for 64T) are the real mast constraints.

Worked — EIRP vs TRP 64T, 1 W/element → TRP ≈ 64 W radiated; with 18 dB beamforming gain, peak EIRP ≈ 64 W + 18 dB ≈ 36 dBW in the beam direction. Coverage scales with EIRP (the beam), but power/heat/exposure scale with TRP (the total) — which is why beamforming "extends coverage without proportionally raising total power."

Section 17.3The deployment trade, at a glance

ConfigBandBest scenarioMU orderWeight/power
8T8Rlow FDDrural coverage, voice/IoTlowlight / low
16T16Rlow/midsuburban capacity+coveragemodestlight
32T32Rmid TDDurban macro (balanced)goodmedium
64T64Rmid TDD 3.5 GHzurban macro capacity (workhorse)high (8–16 users)~20–40 kg / high
128T128Rmid TDDdense urban capacityvery highheavy / very high
FR2 (256+)mmWavehotspot, fixed wireless≤ N_RF (hybrid)compact / cooled

The decision flow in practice: pick the band first (coverage vs capacity need), then the config that supplies the MU order the traffic justifies, then sanity‑check weight and DC power against the site (mast load, available power, cooling). A 64T64R is the default mid‑band capacity choice; you step down to 32T for cost/weight‑constrained sites and up to 128T only where you can genuinely fill the MU streams.

Worked — does the site actually take the radio? A capacity upgrade proposes a 64T64R on an existing rooftop. Three constraints decide feasibility before any RF planning:
weight 64T radio ≈ 35 kg + mounting ≈ 10 kg = 45 kg existing pole rated 60 kg, already carrying a 12 kg antenna → 45 + 12 = 57 kg < 60 kg ✓ (but no margin for a second radio) DC power 64T draws ≈ 1.0–1.4 kW peak; site rectifier headroom = 0.9 kW → ✗ FAILS — needs a rectifier/battery upgrade first wind load larger radome area → recompute tower survival at site wind zone
Here the showstopper is power, not RF — a 64T radio's appetite (often >1 kW) routinely exceeds the spare capacity of sites provisioned for legacy 4T radios. The lesson the datasheet won't tell you: massive‑MIMO rollouts are frequently gated by rectifier and structural upgrades, not by spectrum or coverage. Always cost the power and the steel alongside the radio.
Try it yourself — what does the extra array buy at the cell edge?
The coverage case for a big array is a one‑line link budget you can build in a spreadsheet. Compare a legacy 4T against a 64T on the same 3.5 GHz site, holding total radiated power roughly equal so the comparison is fair:
# EIRP = per-element power(dBm) + 10·log10(N) array gain + element gain def eirp_dBm(N, p_elem_dBm, g_elem_dBi=5): return p_elem_dBm + 10*log10(N) + g_elem_dBi # N p/elem → array gain EIRP print(eirp_dBm( 4, 30)) # 4T: +6.0 dB → ~41 dBm print(eirp_dBm(64, 21)) # 64T: +18.1 dB → ~44 dBm (same ~26 dBm TRP class) # edge SINR gain ≈ EIRP gain (noise-limited) → coverage radius via path-loss exponent n delta_dB = eirp_dBm(64,21) - eirp_dBm(4,30) # ≈ 3 dB beamformed edge gain, equal TRP radius_ratio = 10**(delta_dB / (10*n)) # n≈3.5 urban → ~1.2× range, ~1.4× area
Two insights fall out. First, even at equal total power the 64T wins ~3 dB at the edge purely from coherent array gain focusing energy toward the user — not from burning more watts. Second, that 3 dB translates to only ~20% more range but ~40% more area (it squares), which is real but modest — confirming the chapter's thesis that the big array's true prize is capacity (MU breadth), not dramatic coverage. Now set the 64T's per‑element power back up to 30 dBm and watch EIRP leap to ~52 dBm: the array can trade its TRP budget for either more coverage or more users, and the deployment engineer's job is choosing which.

Section 17.4Where the rules live (3GPP map)

Concept3GPP / spec home
AAS BS RF requirements, OTA, EIRP/TRP, conformanceTS 38.104, TR 37.842 / 37.843
FR2 UE/BS RFTS 38.101-2, TS 38.104
Antenna array model (M,N,P, panels)TR 38.901 §7.3
Energy-saving features (TRP-bounded)TS 38.300 / vendor (Ch.38)
The deployment rule
Bigger T/R = more gain + MU order, but more cost/weight/power. 64T64R = mid-band workhorse; 8–16T for rural coverage; 128T for dense capacity; FR2 hybrid for hotspots. AAS integrates it all (no coax); RF is OTA — EIRP (beam coverage) vs TRP (total power/heat/exposure).

Section 17.5KPIs & a field note

AspectKPI fingerprintMeaning
Config vs trafficMU pairing utilisation vs config capabilityover/under-provisioned array
EIRP/coverageSSB-RSRP footprint, edge coveragebeamforming coverage gain
TRP/energyDC power draw, PA temperatureenergy-saving headroom (Ch.38)
EVMhigh-MCS BLERRF quality limiting 256-QAM

Field note: "We deployed 64T64R everywhere but rural sites show no benefit over the old 4T." Correct — rural users are sparse, so there's nothing to MU‑pair; the 64T's value (MU breadth) goes unused while you pay its weight and power. The fix is deployment matching: use 8–16T (or low‑band) for coverage sites and reserve 64T/128T for capacity sites where the MU streams will be filled. The array wasn't wrong; the placement was.

Field note 2: "A 64T mid‑band cell has great peak rates at noon but throughput sags every afternoon, recovering at night." Suspect thermal behaviour, the constraint the trade table hides behind "high power." An AAS packs 64 PAs behind a sealed radome; on a hot, sun‑loaded rooftop the unit hits its temperature limit and protects itself by backing off transmit power (lower EIRP → smaller cell, lower MCS) and sometimes by reducing the number of active TXRUs (lower MU order). The fingerprint is the correlation with ambient temperature and time‑of‑day rather than with load, and PA‑temperature/clipping counters climbing before the throughput drop. Mitigations live in deployment, not config: ensure the radome has clear airflow and isn't sun‑trapped, avoid stacking radios that radiate heat onto each other, and check that energy‑saving features (Chapter 38) aren't being triggered by thermal headroom rather than by traffic. The silicon is fine; the site is cooking it.

Section 17.6If they put you on the spot

"Why is 64T64R the mid-band workhorse?"
It balances strong 3D beamforming/array gain with high MU‑MIMO order (8–16 users) at a weight/power that's deployable on typical macro sites — the sweet spot for 3.5 GHz urban capacity. 32T trades capacity for cost/weight; 128T adds capacity only where you can fill the streams.
"What is an AAS and why does it matter?"
An Active Antenna System integrates the array, per‑element transceivers, PAs and beamforming into one unit — no coax/feeder loss — which is what makes 32–64 transceivers feasible on a mast. RF is tested over‑the‑air (no connector).
"EIRP vs TRP?"
EIRP is the directional peak power in the beam (array gain × per‑element power) — drives coverage. TRP is total radiated power in all directions — drives energy/heat and regulatory exposure. Beamforming raises EIRP without proportionally raising TRP.
"When would you NOT deploy 64T64R?"
Coverage‑limited, low‑traffic sites (rural) where there are no users to MU‑pair — the MU breadth is wasted and you pay extra weight/power. Use 8–16T or low‑band there; reserve 64T/128T for capacity sites.

Section 17.7What to carry out of this chapter

  • Match config to scenario: 8–16T rural/coverage, 32–64T urban macro (64T = workhorse), 128T dense capacity, FR2 hotspot.
  • AAS integrates array + transceivers + PAs + beamforming (no coax) — what makes massive arrays deployable.
  • RF is OTA: EIRP (beam coverage) vs TRP (total power/heat/exposure); EVM limits high MCS.
  • Decide by band → MU order needed → weight/power feasibility; bigger isn't better, matched is.

In closing17.8 · The right box for the job

Part 6 ends on the ground, with the radio you actually bolt to the mast. The configuration family from 8T to 128T (and FR2's hybrid arrays) isn't a ladder you climb to the top — it's a palette you match to the scenario: coverage sites want light, wide‑beam low‑band arrays; capacity sites want the 64T/128T mid‑band workhorses whose MU‑MIMO breadth (Chapter 16) will actually be filled; hotspots want FR2 pencil beams. The AAS makes all of it physically possible by integrating radio and antenna, and the OTA world of EIRP and TRP governs what coverage and what power you get.

With deployment understood, the theory and hardware of massive MIMO are complete. But every beam and every paired user we've discussed depends on one thing we've kept deferring: the channel‑state feedback that tells the gNB what the channel is. Part 7 — CSI and Feedback Framework opens that black box. In Chapter 18 — CSI Framework in NR, we'll formalise CQI, PMI, RI, CRI and LI, and the report configuration that carries them — the loop that drives every adaptive decision in the book.

— end of Chapter 17 · end of Part 6 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Seven — CSI and Feedback Framework
CHAPTER EIGHTEEN

CSI Framework in NR

"Five little numbers flow up from the phone every few milliseconds. They run the entire downlink."

Every adaptive decision we've discussed — which beam, how many layers, which precoder, which modulation, who to pair — depends on the gNB knowing the channel. But the gNB can't see the downlink channel; only the UE can measure it. So the UE measures, compresses what it learns into a handful of indices, and reports them back. Those indices — CQI, PMI, RI, CRI, LI — are the Channel State Information (CSI), and the machinery that requests, measures and reports them is the CSI framework. This chapter formalises the five quantities, the loop they ride, and the CSI‑ReportConfig that orchestrates it. It's the feedback that turns all our beamforming theory into a closed, adaptive system.

Before we dive inWhat you'll walk away knowing

  • Define CQI, PMI, RI, CRI, LI and how they depend on each other.
  • Trace the measure → report → adapt loop and its timing.
  • Explain periodic / semi‑persistent / aperiodic CSI and where each is carried (PUCCH/PUSCH).
  • Read the key CSI‑ReportConfig fields (reportQuantity, cqi‑Table, wideband/subband).
  • Connect CSI to link adaptation (CQI→MCS) and the rest of the book (RI→rank, PMI→precoder, CRI→beam).

Section 18.1The closed loop

The CSI loop is the heartbeat of the downlink. The gNB transmits CSI‑RS (Chapter 10); the UE measures the channel (and interference) on it; the UE computes the best beam, rank, precoder and modulation it can support; it reports those as CSI in the uplink control information (UCI); the gNB uses the report to schedule and adapt the next transmission. Round and round, every few milliseconds.

It is worth appreciating the sheer leverage of this loop, because it explains why so much standardisation effort went into a few feedback bits. A full Type II PMI report might cost a few hundred bits of uplink; the downlink transmission it steers might carry hundreds of thousands of bits. So CSI is the highest‑leverage signalling in the system — a tiny uplink investment that decides whether a huge downlink grant is spent at 256‑QAM rank‑4 or wasted in a retransmission. That asymmetry is exactly why the framework is so elaborate: it is worth a great deal of design effort to make those few hundred bits as accurate and as fresh as possible, and to spend them only when they'll pay off. Every knob in this chapter — periodic vs aperiodic, wideband vs subband, Type I vs Type II — is ultimately tuning that one ratio of feedback cost to downlink payoff.

The loop also has an unavoidable delay, and that delay is the source of most of its trouble. Between the instant the UE measures the CSI‑RS and the instant the gNB transmits using the resulting report, several things happen in series: the UE must compute the report, wait for an uplink opportunity, transmit it, and the gNB must decode and schedule. Even in the best case that is a millisecond or two — and the channel does not pause to wait. By the time the report is applied it describes a channel that has already moved (the CSI ageing of Chapter 2). On a pedestrian this is negligible; at vehicular speed it is the dominant impairment, and it is why the outer loop (below) exists at all: the system never fully trusts a number that is, by construction, slightly out of date.

the CSI loop: measure → report → adapt gNBscheduler UEmeasures ① CSI-RS (gNB → UE) ② CSI report: CRI · RI · PMI · CQI · LI (UCI) ③ gNB adapts beam, rank, precoder, MCS, pairing → next transmission
Figure 18.1 · The CSI loop runs the downlink: CSI-RS down, five indices up, adaptation back
How to read this picture Three steps, repeating every few milliseconds. ① The gNB sends CSI‑RS down (blue). ② The UE measures channel and interference, then reports five indices up in the uplink control info (red): CRI (best beam), RI (how many layers), PMI (which precoder), CQI (which modulation it can decode), and LI (strongest layer). ③ The gNB feeds those into the scheduler to set the next transmission's beam, rank, precoder, MCS and MU pairing. This loop is where every adaptive decision in the book actually happens — and its freshness (the CSI‑ageing of Chapter 2) is what makes mobility hard.
CSI reports: periodic on PUCCH, aperiodic on PUSCH P PUCCH, low rate AP DCI-triggered, detailed, on PUSCH at scheduling time
Figure 18.6 · Periodic vs aperiodic CSI reporting
How to read this picture CSI reports differ in timing and carrier. Periodic reports ride the low-rate PUCCH on a fixed schedule — cheap, coarse, always-on tracking. Aperiodic reports are triggered by DCI and carried on the higher-capacity PUSCH exactly when the scheduler is about to grant data — detailed (full Type II) and fresh, but only when needed. Pairing a cheap periodic heartbeat with on-demand aperiodic detail is how NR keeps feedback overhead low without starving the scheduler of accurate CSI at the decisive moment.
What the UE feeds back: the CSI report quantities CRIwhich beam RIhow many layers PMIwhich precoder CQIwhich MCS LIstrongest layer together they tell the gNB: point here, send this many layers this way, at this rate
Figure 18.4 · The five CSI report quantities
How to read this picture A CSI report is a compact recommendation from the UE in five parts. CRI — which CSI-RS beam is best. RI — how many layers the channel can carry (the rank). PMI — which precoder to use from the codebook. CQI — what modulation-and-coding rate the channel will support. LI — which of the layers is strongest (for phase-tracking). The gNB reads them together: point the beam here, send this many layers with this precoder, at this data rate — the heartbeat of closed-loop MIMO.
The CSI framework links what to measure to what to report Resource Settingwhich CSI-RS / SSB Report Settingquantity + type + timing report on PUCCH/PUSCHCRI/RI/PMI/CQI a report config binds a resource (to measure) to a quantity (to send back)
Figure 18.5 · How a CSI report is configured
How to read this picture NR's CSI framework is built from linked RRC pieces. A Resource Setting says what to measure (which CSI-RS or SSB resources). A Report Setting says what to report (which quantities), how (Type I/II), and when (periodic, semi-persistent, or aperiodic on PUCCH/PUSCH). Binding the two creates a measurement-to-feedback pipeline the gNB can configure per UE and per purpose — coarse reports for tracking, detailed ones for scheduling. This modularity is why one framework serves everything from a phone to a fixed-wireless CPE.

Section 18.2The five quantities

The five CSI quantities aren't independent — they form a dependency chain. CRI first picks which CSI‑RS resource (beam) is best. Given that beam, RI says how many layers the channel supports. Given the rank, PMI recommends the precoder. Given beam+rank+precoder, CQI says what modulation/coding survives at ~10% BLER. LI flags the strongest layer (used for phase‑tracking placement). Each is computed conditioned on the ones before it.

CRI → RI → PMI → CQI → LI (each conditioned on the prior) CRIwhich beam RIhow many layers PMIwhich precoder CQIwhich MCS LIstrongest layer CQI is the bottom line: it sets the modulation & code rate the scheduler can use
Figure 18.2 · The five CSI indices form a dependency chain, ending in CQI → the MCS
How to read this picture Read left to right — each index is computed given the ones before it. CRI selects the best CSI‑RS beam; RI (for that beam) says how many layers the channel can carry; PMI (for that rank) recommends the precoder; CQI (for that beam+rank+precoder) reports the highest modulation/coding that still decodes at ~10% BLER; LI marks the strongest layer (used to place phase‑tracking PT‑RS). The highlighted CQI is the bottom line the scheduler acts on for link adaptation (CQI→MCS). This chain is exactly Chapter 3's "RI/PMI/CQI = a quantised SVD," now with CRI (beam) and LI (layer) added for the NR beam world.
▸ Advanced · 3GPP deep-dive — CSI quantities & CQI→MCS
CRI CSI-RS Resource Indicator # index of best NZP CSI-RS resource (beam) in the set RI Rank Indicator ∈ {1..8} # restricted by ri-Restriction bitmap PMI i1 (wideband beam) + i2 (co-phasing) [Type I] / combination [Type II] CQI ∈ {0..15} → (modulation, code rate) at 10% BLER cqi-Table: table1 (≤64QAM) | table2 (256QAM) | table3 (low-SE/URLLC, 1e-5) LI Layer Indicator → strongest layer (PT-RS association)

The UE computes CQI as the largest index whose (modulation, code rate) gives transport-block BLER ≤ target. The gNB then maps reported CQI → a scheduled MCS (often with an outer-loop offset driven by HARQ ACK/NACK). reportQuantity selects which subset is reported: e.g. cri-RI-PMI-CQI (full), cri-RI-CQI (no PMI, for reciprocity DL), cri-RSRP / ssb-Index-RSRP (beam management, L1-RSRP), or none (measurement only).

Worked — CQI→throughput CQI 9 (table2) ≈ 64-QAM, code rate ~0.65 → ~4 b/s/Hz/layer. Rank 4 over 100 MHz (273 RB, μ=1) → TBS ≈ tens of Mbits/slot → ~ hundreds of Mbps to Gbps depending on overhead. Drop to CQI 4 (QPSK) at the edge → ~0.7 b/s/Hz: same RBs, ~6× less throughput. CQI is the link-adaptation dial.
Worked — why CQI and RI move together (the conditioning bites) The chain ordering isn't bookkeeping; changing RI changes the reported CQI, because CQI is computed given the chosen rank. Take a fixed receive SNR of 15 dB and ask the UE to report at two candidate ranks:
RI = 1 all power on the strong eigen-channel → per-layer SINR ≈ 15 dB → CQI ≈ 11 (256-QAM, ~5.5 b/s/Hz) × 1 layer = 5.5 b/s/Hz RI = 2 power split + a weaker 2nd eigen-channel → per-layer SINR ≈ 10–11 dB → CQI ≈ 8 (64-QAM, ~3.3 b/s/Hz) × 2 layers = 6.6 b/s/Hz
Note the UE reports a lower CQI at RI=2 (each layer is weaker) yet the total is higher — so the UE chooses RI to maximise total throughput, then reports the CQI that goes with that rank. This is why you can never read CQI in isolation: a cell whose mean CQI drops after a software change might actually be carrying more data because it started using higher rank. Always read RI and CQI together — the product is the throughput, not either alone.

Section 18.3Periodic, semi-persistent, aperiodic

CSI reports come in three flavours, trading overhead against freshness. Periodic CSI is reported at a fixed interval on PUCCH — low overhead, always available, but coarse and possibly stale. Semi‑persistent is periodic‑like but activated/deactivated by MAC CE (or DCI) — on when needed. Aperiodic is triggered on demand by a DCI CSI request and carried on PUSCH — the freshest and richest (can carry subband, Type II), but costs an uplink grant. Schedulers lean on periodic for a baseline and trigger aperiodic before a big transmission or for mobility.

There is a hard limit lurking behind all this that catches engineers off guard: the UE can only compute so much CSI at once. NR models this with CSI processing units (CPUs) — a UE advertises how many it has (typically a handful), and each active or triggered CSI report "occupies" a number of CPUs for the duration of its computation, scaling with how heavy the report is (a wideband Type I report is cheap; a subband Type II report over many bands is expensive). If the gNB triggers more simultaneous reports than the UE has CPUs for, the UE is allowed to drop or skip the excess according to defined priority rules. The practical consequence is that you cannot simply configure rich, frequent CSI on every resource "to be safe" — you are spending a finite UE compute budget, and overspending it silently starves the reports that matter most. This CPU accounting is the quiet reason CSI configurations are kept lean, and it is the first thing to check when a UE inexplicably fails to return a report you asked for.

three report modes: overhead vs freshness periodicPUCCH semi-persist.MAC CE on/off activatedeactivate aperiodicDCI-triggered, PUSCH on-demand (CSI request) richest & freshest (subband/Type II)
Figure 18.3 · Periodic (steady, cheap), semi-persistent (on/off), aperiodic (on-demand, rich)
How to read this picture Three timelines. Periodic CSI fires at a fixed cadence on PUCCH — always there, cheap, but coarse and can be stale. Semi‑persistent behaves periodic‑like but is switched on and off by MAC CE, so you only pay for it when a UE is active. Aperiodic is a single on‑demand report triggered by a DCI CSI‑request and carried on PUSCH — the freshest and richest (it can include subband CQI and Type II PMI), but it costs an uplink grant. Real schedulers run a light periodic baseline and trigger aperiodic just before a big PDSCH or when a fast UE needs fresh CSI — managing the freshness‑vs‑overhead trade we'll keep meeting.
▸ Advanced · 3GPP deep-dive — CSI-ReportConfig & timing
CSI-ReportConfig (TS 38.331 / procedures 38.214 §5.2): reportConfigType periodic | semiPersistentOnPUCCH | semiPersistentOnPUSCH | aperiodic reportQuantity cri-RI-PMI-CQI | cri-RI-CQI | cri-RI-i1 | cri-RSRP | ssb-Index-RSRP | none reportFreqConfig cqi-FormatIndicator {wideband|subband}, pmi-FormatIndicator, csi-ReportingBand codebookConfig codebookType {typeI-SinglePanel|typeI-MultiPanel|typeII|typeII-PortSelection} resourcesForChannelMeasurement → NZP-CSI-RS-ResourceSet (CMR) csi-IM-ResourcesForInterference / nzp-...ForInterference (IMR)

Aperiodic CSI is triggered by the CSI request field in DCI 0_1, pointing into a CSI-AperiodicTriggerStateList; the UE needs a minimum processing time (Z, Z′ symbols) between trigger and report. CSI processing units (CPUs) bound how many simultaneous CSI computations a UE can do. Subband CQI/PMI (per csi-ReportingBand) enables frequency-selective scheduling at higher feedback cost.

Worked — freshness budget Aperiodic trigger in slot n → report in slot n+Z. At μ=1 (0.5 ms slots) and Z≈ a few slots, the CSI is ~1–2 ms old when used. At 120 km/h / 3.5 GHz (coherence ~1.3 ms) it's already aging — hence shorter periodicity or more frequent aperiodic triggers for fast UEs (CSI-ageing, Ch.2/31).
Try it yourself — build the outer-loop link adaptation in 12 lines
The single most important "missing piece" between CQI and a working link is the outer loop (OLLA) — and you can simulate why it's indispensable. Drive a link at a fixed true SINR, feed the gNB a slightly optimistic/aged CQI, and let HARQ ACK/NACK steer an offset toward the 10% BLER target:
offset = 0.0 # dB, the outer-loop correction step_up, step_down = 0.1, 0.9 # asymmetric: 0.1 up on ACK, 0.9 down on NACK for slot in range(10000): eff_sinr = reported_cqi_sinr - offset # trust CQI, minus learned offset mcs = cqi_to_mcs(eff_sinr) acked = (true_bler(true_sinr, mcs) < rand()) offset += (-step_up if acked else +step_down) # Σ converges so NACK rate → 10% print("converged offset =", offset, "dB ; BLER =", measured_bler)
The step ratio sets the operating point: with up:down = 0.1:0.9 the loop settles where ACKs are ~9× as common as NACKs → ~10% BLER, exactly the CQI definition's target. Now make the CQI optimistic by 3 dB (simulating ageing) and watch the offset converge to ≈3 dB to cancel it — the outer loop has learned the CQI bias without being told it. Set step_down=step_up and watch BLER drift to 50% and throughput collapse: the asymmetry is the target. This tiny loop is why real cells tolerate imperfect, aged CQI — they correct it empirically, every slot.

Section 18.4Where the rules live (3GPP map)

Concept3GPP home (NR)
CSI quantities, CQI tables, codebooks, reporting proceduresTS 38.214 §5.2
CSI-ReportConfig, CSI-ResourceConfig, trigger statesTS 38.331
UCI coding, PUCCH/PUSCH carriage of CSITS 38.212, TS 38.213
CSI-RS / CSI-IM signals (measured on)TS 38.211 §7.4 (Ch.19)
The core idea
CSI = five indices: CRI (beam) → RI (layers) → PMI (precoder) → CQI (MCS) → LI (strongest layer), each conditioned on the prior. Carried periodic (PUCCH), semi-persistent, or aperiodic (DCI-triggered, PUSCH). CSI-ReportConfig orchestrates it. Freshness vs overhead is the eternal trade.

Section 18.5KPIs & a field note

MetricKPI fingerprintMeaning
CQI distributionhistogram; mean & spreadlink quality & selectivity
RI / CRI distributionrank usage, best-beam spreadmultiplexing & beam health
CSI report drop/latemissed PUCCH/PUSCH reportsUL coverage / CPU overload
Outer-loop MCS offsetgap between CQI-implied and scheduled MCSCQI accuracy vs HARQ

Field note: "CQI looks optimistic — scheduled MCS keeps failing (high first‑tx BLER)." The reported CQI is computed at one instant; by the time it's used the channel changed (ageing) or interference differs from the CSI‑IM assumption. The outer‑loop link adaptation corrects this by offsetting MCS from CQI based on HARQ ACK/NACK. Tune the outer‑loop and, for fast UEs, increase report frequency or trigger aperiodic CSI. (Mobility CSI handling: Chapter 31.)

Field note 2: "CQI is swinging wildly between high and low every few reports, and the outer loop can't keep up." Where the first note was a steady bias, this is variance — and the usual culprit is the interference, not the signal. CQI is measured assuming the interference seen on the CSI‑IM resource, but if a neighbour cell's traffic is bursty, the actual interference during the PDSCH swings far from that assumption: a quiet measurement slot yields a rosy CQI that fails when the neighbour fires up, and vice‑versa. The tell is that CQI variance correlates with neighbour load rather than with this UE's own mobility, and that the outer‑loop offset itself oscillates trying to chase a moving target. This is a different disease with a different cure: not faster reporting (the signal is fine) but interference stabilisation — coordinated scheduling or muting between cells (so the CSI‑IM assumption holds), or a more conservative BLER target that rides out the bursts. Distinguishing the bias case from this variance case is the core skill of link‑adaptation troubleshooting (more in Chapter 33).

Section 18.6If they put you on the spot

"Name the CSI quantities and their order."
CRI (best CSI‑RS beam) → RI (rank/layers) → PMI (precoder) → CQI (modulation+code rate at 10% BLER) → LI (strongest layer). Each is computed conditioned on the previous; CQI drives MCS.
"Periodic vs aperiodic CSI?"
Periodic: fixed interval on PUCCH — cheap, always available, coarse. Aperiodic: DCI‑triggered on PUSCH — freshest and richest (subband, Type II) but costs a grant and processing time Z. Semi‑persistent sits between (MAC‑CE activated).
"How does CQI become a scheduled MCS?"
CQI is the largest index whose modulation/code rate keeps BLER ≤ target (~10%). The gNB maps CQI→MCS, then an outer loop offsets MCS up/down based on HARQ ACK/NACK to correct CQI inaccuracy and ageing.
"What does reportQuantity = cri-RI-CQI (no PMI) imply?"
The gNB doesn't need the UE's precoder recommendation — typical for reciprocity‑based DL beamforming (TDD), where the gNB computes the precoder from SRS itself, so PMI feedback is omitted to save overhead.

Section 18.7What to carry out of this chapter

  • CSI = CRI → RI → PMI → CQI → LI, a dependency chain ending in CQI → MCS.
  • The measure→report→adapt loop runs the downlink; its freshness is the mobility challenge.
  • Reports are periodic (PUCCH), semi‑persistent, or aperiodic (DCI‑triggered, PUSCH) — overhead vs freshness.
  • CSI‑ReportConfig (reportQuantity, cqi‑Table, wideband/subband, codebookConfig) orchestrates it; outer‑loop corrects CQI via HARQ.

In closing18.8 · The numbers that run the link

The CSI framework is the nervous system of NR MIMO: a steady stream of five compact indices that carry everything the gNB needs to point beams, choose ranks, select precoders, set modulation, and pair users. We've now named them precisely and seen the loop, the modes, and the report configuration that schedules them — and connected CQI to the MCS that ultimately sets throughput. The recurring tension, freshness versus overhead, will return whenever mobility enters.

But CSI is only as good as the pilots it's measured on. The reports of this chapter all rest on CSI‑RS resources — how they're configured, grouped into sets, and paired with interference‑measurement resources. In Chapter 19 — CSI‑RS Configuration and Measurement, we open that layer: NZP vs ZP, CSI‑IM, resource sets, and the periodic/semi‑persistent/aperiodic resource types that feed everything we just built.

— end of Chapter 18 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Seven — CSI and Feedback Framework
CHAPTER NINETEEN

CSI-RS Configuration
and Measurement

"Good CSI starts with good pilots. Misconfigure the CSI-RS and every index downstream is a guess."

Chapter 18's five indices are only as trustworthy as the pilots they're measured on. The UE doesn't measure "the channel" in the abstract — it measures specific CSI‑RS resources that the gNB configured, in specific REs, with a specific number of ports, paired with specific interference‑measurement resources. Get that configuration right and RI/PMI/CQI are accurate; get it wrong — too few ports, stale periodicity, no interference measurement — and every downstream decision is built on sand. This chapter is the configuration layer: NZP vs ZP CSI‑RS, CSI‑IM for interference, how resources group into sets and link to reports, and the periodic/semi‑persistent/aperiodic resource types. It's also where beam refinement lives, and where pilot contamination (Chapter 15) becomes a planning problem.

Before we dive inWhat you'll walk away knowing

  • Distinguish NZP CSI‑RS (channel), ZP CSI‑RS / CSI‑IM (interference), and TRS (tracking).
  • Explain how resources group into resource sets and link to a CSI‑ReportConfig (CMR + IMR).
  • Explain periodic / semi‑persistent / aperiodic CSI‑RS and the repetition flag for beam management.
  • Explain CSI‑RS‑based beam refinement (narrow CSI‑RS beams refining the coarse SSB beam).
  • Connect CSI‑RS planning to pilot contamination and CSI accuracy.

Section 19.1Resources, sets, and the report link

CSI‑RS is organised in a hierarchy. Individual NZP‑CSI‑RS‑Resources (each with its ports, REs, periodicity) are grouped into a resource set; the CSI‑ReportConfig (Chapter 18) then points at one set for channel measurement (CMR) and another resource (CSI‑IM or NZP) for interference measurement (IMR). So a report is always "measure the channel on these resources, the interference on those, and report the result." Separating channel and interference measurement is what lets CQI reflect true SINR, not just signal strength.

The "true SINR, not just signal strength" point is worth making concrete, because it is the single most common configuration mistake and it produces exactly the failing‑MCS symptom of Chapter 18. SINR is signal divided by (interference + noise). The CMR measures the signal power; the IMR measures the interference + noise. If the IMR is missing or mis‑placed, the UE has no measurement of the denominator and falls back to estimating CQI from signal and thermal noise alone — which, in any real multi‑cell network, is wildly optimistic. Picture a cell‑edge UE receiving its serving signal at −90 dBm with a neighbour interfering at −92 dBm and noise at −104 dBm. With a correct IMR the UE sees SINR ≈ −90 − (−92 ⊕ −104) ≈ 1.5 dB and reports a modest CQI; with no IMR it computes ≈ −90 − (−104) = 14 dB and reports a CQI implying 256‑QAM — which then fails catastrophically because the neighbour was never accounted for. The CMR+IMR pairing is not a refinement; it is the difference between an honest CQI and a fantasy.

resources → set → report (channel + interference) NZP res 0NZP res 1NZP res 2 NZP set(CMR) CSI-IM (IMR) CSI-ReportConfigCMR + IMR → CSI RI/PMI/CQI(true SINR)
Figure 19.1 · A report links a channel-measurement set (CMR) and an interference resource (IMR)
How to read this picture Left to right is the configuration hierarchy. Individual NZP‑CSI‑RS resources (each its own ports/REs/period) group into a resource set used for channel measurement (the CMR). Separately, a CSI‑IM resource provides the interference measurement (the IMR). The CSI‑ReportConfig binds the two: "measure the channel here, the interference there." Only by measuring both can the UE compute a true SINR and hence an honest CQI (not just signal strength). This CMR+IMR pairing is the structural reason NR CQI tracks interference — and why a missing/mis‑set IMR produces optimistic CQI and the failing‑MCS symptom from Chapter 18.
Three CSI-RS timings — trade overhead against responsiveness P always on SP MAC-CE activates / deactivates AP single shot, triggered by DCI on demand
Figure 19.3 · Periodic, semi-persistent and aperiodic CSI-RS
How to read this picture CSI-RS comes in three timings. Periodic (P) fires on a fixed schedule — always available but constant overhead. Semi-persistent (SP) is periodic but switched on and off by a MAC control element — overhead only while a user needs it. Aperiodic (AP) is a single shot triggered by DCI exactly when the scheduler wants fresh CSI — minimal overhead, maximum responsiveness. Picking the right mix lets the network keep coarse tracking cheap while still getting detailed CSI on demand at the moment of scheduling.
NZP CSI-RS measures my channel · ZP CSI-RS protects the neighbour's NZP: real RS the UE measures ZP: muted REs — leave room for neighbour's RS
Figure 19.4 · Non-zero-power vs zero-power CSI-RS
How to read this picture Two flavours of CSI-RS serve opposite jobs. NZP (non-zero-power) is the actual reference signal a UE measures to estimate its channel. ZP (zero-power) is a pattern of muted resource elements — the gNB transmits nothing there so that a neighbouring cell's NZP CSI-RS, or another measurement, sees clean, interference-free resources. Coordinating ZP muting across cells is how the network measures interference accurately and protects each other's CSI-RS — essential for reliable rank and CQI in dense deployments.

Section 19.2NZP, ZP, CSI-IM, TRS — and resource types

Four roles, one signal family. NZP CSI‑RS carries known symbols for channel measurement (and beam management). ZP CSI‑RS mutes REs (rate‑matching/protection). CSI‑IM is a ZP pattern the UE uses to measure interference. TRS is an NZP set flagged trs‑Info for fine time/frequency tracking. Each NZP resource is periodic, semi‑persistent, or aperiodic (matching the report type), and a beam‑management set adds a repetition flag: on means "same beam across the resources" (UE refines its receive beam), off means "different beams" (UE picks the best transmit beam, reports CRI).

▸ Advanced · 3GPP deep-dive — CSI-RS resources & measurement linkage
NZP-CSI-RS-Resource (38.211 §7.4.1.5) nrofPorts {1,2,4,8,12,16,24,32}, cdm-Type, density {0.5,1,3}, freqDomainAllocation, firstOFDMSymbolInTimeDomain, periodicityAndOffset, powerControlOffset(SS), scramblingID NZP-CSI-RS-ResourceSet repetition {on|off}, trs-Info, aperiodicTriggeringOffset CSI-IM-Resource pattern {pattern0 (2×2)|pattern1 (4×1)}, periodicityAndOffset CSI-ResourceConfig groups sets; resourceType {periodic|semiPersistent|aperiodic} link in CSI-ReportConfig: resourcesForChannelMeasurement → NZP set (CMR) csi-IM-ResourcesForInterference → CSI-IM (IMR) nzp-CSI-RS-ResourcesForInterference → (NZP-based IMR, MU/CoMP)

repetition=off + report cri-RSRP = "transmit-beam sweep" (gNB sweeps narrow CSI-RS beams, UE reports best CRI → P2 beam refinement). repetition=on = "UE Rx-beam refinement" (same Tx beam, UE tries its receive beams → P3). Aperiodic CSI-RS is triggered via the report's trigger state (DCI 0_1), with aperiodicTriggeringOffset slots between trigger and transmission.

Worked — overhead vs accuracy 32-port NZP, density 1, period 20 slots → ~0.95% RE overhead (Ch.10) but high-resolution Type II PMI possible. Drop to 8-port/period 80 → ~0.06% overhead but coarse PMI and slower tracking. The CSI-RS config is the dial between feedback accuracy and overhead — set it to the cell's mobility and MU needs.
Worked — why ports cap your MU ambitions The CSI‑RS nrofPorts sets the resolution of the channel the UE can report, and therefore the ceiling on rank and MU order — no matter how many antennas the array physically has. A 64‑element AAS configured with only 8 CSI‑RS ports presents the UE an 8‑dimensional view of the channel:
nrofPorts = 8 → UE reports an 8-port PMI → effective DoF for pairing ≈ 8 → MU order practically capped near 4 (need nulls between users) nrofPorts = 32 → 32-port PMI, fine Type II → MU order 8–12 realistic physical elements = 64 either way — the PORT count, not the element count, rules CSI
This is the CSI‑side echo of Chapter 16's "rows = ports" rule: a beautifully large array hamstrung by a stingy CSI‑RS port configuration will mysteriously refuse to pair many users, and the fix is in RRC (raise nrofPorts, accepting the overhead), not in the radio. Always confirm the configured port count before blaming the hardware for poor MU performance.
Try it yourself — watch a missing IMR poison the CQI
The CMR/IMR mechanic is a four‑line calculation, and seeing the two CQIs side by side makes the configuration rule unforgettable. Model a cell‑edge UE and compute CQI both correctly (with interference) and the broken way (signal + noise only):
# all powers in linear mW (convert from dBm: 10**(dBm/10)) S = dbm2mw(-90) # serving signal, measured on the CMR I = dbm2mw(-92) # neighbour interference N0 = dbm2mw(-104) # thermal noise sinr_true = S / (I + N0) # IMR correctly measures I+N0 sinr_broken = S / N0 # IMR missing → interference ignored print(10*log10(sinr_true), "dB →", sinr_to_cqi(sinr_true)) # ~1.5 dB → CQI ~5 (QPSK) print(10*log10(sinr_broken),"dB →", sinr_to_cqi(sinr_broken)) # ~14 dB → CQI ~12 (256-QAM)
The broken path reports a CQI more than double the honest one — and the gNB, trusting it, schedules 256‑QAM into a 1.5 dB channel that can barely hold QPSK, so the first transmission fails and HARQ thrashes. Now sweep the neighbour from −120 dBm (quiet) to −80 dBm (loud) and watch the two CQIs diverge only as interference grows: cell‑centre UEs barely notice a missing IMR, which is exactly why this bug hides in lab tests and only bites at the edge in a loaded network. The outer loop (Chapter 18) will eventually claw the offset back, but it should never have had to — the IMR's whole job was to get the denominator right the first time.

Section 19.3CSI-RS beam refinement — coarse to fine

The SSB gave the UE a coarse beam (Chapter 10). CSI‑RS refines it. The gNB configures a set of narrower CSI‑RS beams within the chosen SSB beam's coverage and sweeps them (repetition=off); the UE measures each and reports the best CRI — a finer transmit beam. Optionally (repetition=on) the UE then sweeps its own receive beams against a fixed transmit beam. This coarse‑SSB → fine‑CSI‑RS refinement is the core of NR downlink beam management (Part 8 details the full P1/P2/P3 lifecycle).

The reason for this two‑stage, coarse‑then‑fine design is pure arithmetic, and it's worth seeing why no one sweeps fine beams directly. Suppose the cell must cover a sector with beams narrow enough that it takes 64 fine beams to paint it. Sweeping all 64 every time would cost 64 measurement opportunities — slow and expensive in overhead. Instead the SSB stage uses, say, 8 wide beams to localise the UE to one eighth of the sector (8 measurements), and then the CSI‑RS stage sweeps only the 8 fine beams inside that wide beam (8 more). Total: 8 + 8 = 16 measurements to resolve the same 64 directions, a 4× saving — and the saving grows as the beams get narrower (it's the difference between linear and logarithmic search). This hierarchy is exactly why acquisition is split between a sparse, always‑on SSB grid and an on‑demand CSI‑RS refinement: the coarse layer cheaply narrows the search space so the fine layer only has to look where the UE actually is.

coarse SSB beam → narrow CSI-RS beams → best CRI coarse SSB beam best (CRI) UE UE measures each CSI-RS beam, reports the strongest as CRI → refined narrow serving beam
Figure 19.2 · CSI-RS refines the coarse SSB beam into a precise narrow serving beam
How to read this picture The wide light fan is the coarse SSB beam the UE first latched onto (Chapter 10). Inside it, the gNB sweeps several narrow CSI‑RS beams (the thin lines), and the UE measures each and reports the strongest as a CRI — selecting a precise serving beam far tighter than the SSB. That's downlink beam refinement: coarse acquisition by SSB, fine selection by CSI‑RS. The repetition flag decides whether this sweep refines the gNB's transmit beam (off) or the UE's receive beam (on). This is the everyday mechanism that keeps a narrow massive‑MIMO beam pointed accurately at the user — and the prelude to the full beam‑management lifecycle of Part 8.

Section 19.4Configuration as a contamination problem

Chapter 15 warned that pilot contamination — reused pilots across cells polluting channel estimates — is massive MIMO's fundamental ceiling. The CSI‑RS (and uplink SRS) configuration is where you fight it. Neighbouring cells must use different scrambling IDs, time/frequency offsets, or orthogonal resources so their pilots don't alias onto each other. Poor planning shows up as a CQI/SINR ceiling that doesn't improve with more antennas (the tell from Chapter 15) and degraded MU‑MIMO at the cell edge. CSI‑RS resource planning is therefore as much a network‑level interference‑coordination task as a per‑cell setting.

Worked — planning a pilot reuse, the same way you plan PCIs Pilot planning obeys the classic frequency‑reuse arithmetic. Say you have a budget of orthogonal pilot configurations P (distinct scrambling IDs × time/frequency offsets that don't collide) and you want a reuse factor of R (no two cells within R share a pilot):
available orthogonal pilots P = 24 # example budget for a given CSI-RS pattern reuse factor wanted R = 3 # like a 3-cell reuse pattern cells per cluster = R = 3 → pilots per cell ≤ P / clusters_in_reach if a UE hears ~9 cells, need 9 distinct pilots within range 9 ≤ 24 ✓ → contamination-free planning is feasible but at R=1 (aggressive reuse) two co-pilot cells WILL alias → the SINR ceiling of Ch.15 returns at the edge between them
The lesson: pilot contamination isn't a mysterious physical limit you simply accept — it's a planning budget you can blow or respect, exactly like PCI or PRACH root‑sequence planning. When the budget is tight (dense small cells, many ports each consuming pilots), you trade pilot overhead for reuse distance, and that trade is the network‑level design decision behind every "edge MU collapses" ticket.

Section 19.5Where the rules live (3GPP map)

Concept3GPP home (NR)
NZP/ZP CSI-RS, CSI-IM signal definition, TRSTS 38.211 §7.4.1.5
CSI-RS resource sets, resource config, repetition, trigger statesTS 38.331
Measurement procedures (CMR/IMR), beam management P1/P2/P3TS 38.214 §5.1/§5.2, TS 38.213 §6
Pilot/scrambling, interference coordinationTS 38.211 (scramblingID), network planning
The core idea
NZP = channel, CSI-IM = interference, TRS = tracking; resources → sets → linked in CSI-ReportConfig (CMR+IMR) → true-SINR CQI. repetition off = Tx-beam sweep (CRI), on = Rx-beam refine. CSI-RS planning (scrambling/offsets) is the front line against pilot contamination.

Section 19.6KPIs & a field note

Config aspectKPI fingerprintMeaning
Ports / densityPMI resolution, Type II availability vs overheadaccuracy/overhead dial
PeriodicityCSI freshness vs RE cost; mobility BLERtracking speed
CMR/IMR pairingCQI accuracy (SINR vs RSRP-only)interference captured?
Pilot reuse / scramblingSINR ceiling not improving with N; edge MU losspilot contamination

Field note: "CQI is optimistic and MU‑MIMO collapses near cell borders." Check the IMR: if interference measurement is mis‑configured (no CSI‑IM, or measuring the wrong REs), CQI reflects signal only and ignores neighbour interference — fine cell‑centre, disastrous at the edge. Also audit CSI‑RS scrambling IDs/offsets vs neighbours for pilot contamination. Fixing the CMR/IMR pairing and pilot plan often recovers edge MU performance without any RF change.

Field note 2: "After enabling a denser CSI‑RS periodicity to help fast UEs, overall cell throughput dropped." This is the overhead side of the dial biting back. CSI‑RS REs are taken out of the data region (Chapter 10), so halving the CSI‑RS period doubles its RE cost — and on a cell full of slow, stationary users, those users gained nothing from the fresher CSI (their channel wasn't ageing) while every user paid the overhead. The fingerprint: the regression tracks the config change date, scales with the number of configured CSI‑RS resources, and hits stationary users as hard as mobile ones. The fix is to stop treating periodicity as one global knob — use a short period only where it pays (fast UEs, via a dedicated report/resource or on‑demand aperiodic CSI‑RS) and keep the bulk of the cell on a long, cheap period. Freshness is worth paying for exactly where the channel moves and nowhere else; spending it uniformly is how you make a cell slower by trying to make it faster.

Section 19.7If they put you on the spot

"NZP CSI-RS vs CSI-IM?"
NZP CSI‑RS carries known symbols for channel measurement (and beam management). CSI‑IM is a zero‑power pattern where the UE measures interference. A CSI‑ReportConfig pairs a channel‑measurement resource (CMR) with an interference resource (IMR) so CQI reflects true SINR.
"What does the repetition flag do?"
In a beam‑management CSI‑RS set: repetition=off means the resources use different Tx beams (UE reports best CRI — Tx beam refinement, P2); repetition=on means the same Tx beam across resources so the UE can sweep its Rx beams (P3).
"How does CSI-RS refine the SSB beam?"
The gNB sweeps narrower CSI‑RS beams within the chosen coarse SSB beam; the UE measures them and reports the best CRI, giving a tighter serving beam — coarse SSB acquisition followed by fine CSI‑RS refinement.
"Where does pilot contamination get fought?"
In CSI‑RS (and SRS) configuration/planning: distinct scrambling IDs, time/frequency offsets, and orthogonal resources across neighbouring cells so pilots don't alias. It's a network‑level coordination task, not just a per‑cell knob.

Section 19.8What to carry out of this chapter

  • NZP (channel), ZP/CSI‑IM (interference), TRS (tracking) — resources group into sets, linked in CSI‑ReportConfig as CMR + IMR.
  • Pairing CMR + IMR is what makes CQI a true SINR, not just signal strength.
  • repetition off = Tx‑beam sweep (CRI/P2); on = Rx‑beam refine (P3); resources are periodic/SP/aperiodic.
  • CSI‑RS refines the coarse SSB beam into a precise serving beam.
  • CSI‑RS planning (scrambling/offsets) is the front line against pilot contamination.

In closing19.9 · The pilots behind the indices

Chapter 18 gave us the five CSI indices; this chapter gave them their foundation. Every RI, PMI and CQI is the product of a specific CSI‑RS configuration — the right number of ports for the precoder resolution you need, a periodicity matched to mobility, and — crucially — an interference‑measurement resource so the CQI reflects real SINR. We saw resources gather into sets, sets bind into reports, and the repetition flag turn a CSI‑RS set into a beam‑refinement tool. And we saw that across cells, this configuration becomes the battleground for pilot contamination.

What we've deferred is the precoder codebook itself — the menu the PMI indexes into. Type I keeps feedback cheap; Type II spends bits to approach the eigen‑beam ideal, and it's what unlocks high‑order MU‑MIMO. In Chapter 20 — Type I and Type II Codebooks, we open that menu in detail: single‑ vs multi‑panel, port selection, beam combination, and the feedback‑vs‑accuracy trade that decides how good your precoder — and your MU pairing — can be.

— end of Chapter 19 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Seven — CSI and Feedback Framework
CHAPTER TWENTY

Type I and Type II
Codebooks

"Type I picks one beam. Type II paints with several. The difference is the difference between SU and serious MU-MIMO."

The PMI from Chapter 18 is an index into a codebook — the standardized menu of precoders. NR offers two philosophies of menu, and the choice between them is one of the most consequential in massive MIMO. Type I picks a single DFT beam plus a polarization co‑phasing: cheap feedback, perfectly fine for single‑user MIMO. Type II reports a weighted combination of several beams with per‑beam amplitude and phase: many more feedback bits, but a far finer approximation of the ideal eigen‑beam (Chapter 14) — and that fidelity is exactly what high‑order MU‑MIMO needs to null users cleanly. This chapter opens both menus, explains port selection, and frames the eternal feedback‑vs‑accuracy trade.

Before we dive inWhat you'll walk away knowing

  • Explain Type I (single‑panel & multi‑panel): one DFT beam (i1) + co‑phasing (i2).
  • Explain Type II: a linear combination of L beams with amplitude + phase (wideband + subband).
  • Explain port selection codebooks for beamformed/reciprocity‑assisted CSI‑RS.
  • Reason about the feedback‑bits vs precoder‑accuracy trade and why Type II suits MU‑MIMO.
  • Read the codebookConfig parameters (n1‑n2, L, phase alphabet, subband amplitude).

Section 20.1One beam vs a combination of beams

The essential picture. Type I says "of all the DFT grid beams, beam #k fits my channel best" and adds a coarse co‑phasing between the two polarizations — a single dominant direction. Type II says "my channel is best approximated by 0.7×beam‑a + 0.5×beam‑b + 0.3×beam‑c, with these phases" — a weighted sum of L beams that sculpts a much closer match to the true eigen‑beam V. Type I selects; Type II combines.

Why should combining a handful of fixed grid beams be able to reproduce an arbitrary channel direction? The answer is the same mathematics that lets a few sine waves reconstruct a complex sound: the DFT beams form a basis. Any vector in the array's space can be written as a weighted sum of the full set of orthogonal DFT beams — that's just a change of coordinates (a spatial Fourier transform). The catch is that the true eigen‑beam V generally has energy in all of those basis beams, and reporting every coefficient would be as expensive as reporting V itself. Type II's insight is that a real channel's energy is concentrated in a few dominant directions — a handful of multipath clusters — so keeping only the L strongest basis beams and discarding the rest captures most of V's energy for a fraction of the bits. Type I is the extreme L=1 case: keep only the single strongest basis beam. So the two codebooks aren't different species; they're the same sparse‑basis idea at L=1 (Type I) versus L=2/4/6 (Type II), and the parameter L is literally "how many terms of the Fourier series am I willing to pay for."

Type I — pick ONE DFT beam + co-phasing (i2) · coarse · low feedback Type II — combine L beams beam a beam b beam c weighted sum (amp+phase) ≈ eigen-beam V
Figure 20.1 · Type I selects a single beam; Type II builds a fine composite from several
How to read this picture Left, Type I: the UE picks the one DFT grid beam that best matches its channel and adds a coarse polarization co‑phasing (i2). One dominant direction, very few feedback bits — perfectly adequate for single‑user MIMO. Right, Type II: the UE reports a weighted combination of L beams (a, b, c…) each with its own amplitude and phase, building a composite that hugs the true eigen‑beam V (Chapter 14) far more tightly. That fidelity costs many more feedback bits, but it's what lets the gNB place precise nulls between co‑scheduled users — so Type II is the enabler of high‑order MU‑MIMO. Select vs combine: that's the whole distinction.
Rel-16 enhanced Type II: compress across frequency Type II: per-subband coefficients many coefficients = heavy uplink eType II: a few DFT basis vectors same accuracy, far fewer bits
Figure 20.5 · Enhanced Type II frequency-domain compression
How to read this picture Plain Type II reports precoding coefficients for every subband, which is accurate but expensive on the uplink. Rel-16 enhanced Type II notices that those coefficients vary smoothly across frequency, so it represents them with a few frequency-domain DFT basis vectors instead of one value per subband — the same channel fidelity for a fraction of the feedback bits. This compression is what made high-resolution MU-MIMO CSI affordable enough for mainstream deployment, and it foreshadows the learned compression of Chapter 40.
Type I: pick one beam · Type II: weighted sum of several Type I — one DFT beam low feedback · SU-MIMO · coarse Type II — linear combination high feedback · MU-MIMO · accurate nulling
Figure 20.3 · Type I vs Type II codebooks
How to read this picture The two NR codebooks make opposite trade-offs. Type I reports a single best DFT beam — cheap feedback, fine for SU-MIMO where you just need to point at one user. Type II reports a weighted combination of several beams with amplitudes and phases — far more feedback, but it describes the channel accurately enough for the gNB to null inter-user interference. That accuracy is what makes high-performance MU-MIMO possible, which is why Type II (and its enhanced/Rel-16 variants) is the codebook behind dense, multi-user massive MIMO.
Accuracy costs feedback bits CSI accuracy → UL bits Type I Type II eType II (Rel-16)
Figure 20.4 · The feedback-overhead price of CSI accuracy
How to read this picture Better CSI is never free. Type I needs only a handful of bits to name one beam. Type II needs many more to convey the amplitudes and phases of a beam combination, and the enhanced Rel-16 variant adds frequency-domain compression to claw some of that back while staying accurate. The scheduler weighs this constantly: spend uplink bits on precise CSI to enable MU-MIMO gains, or save them when single-user Type I is good enough. Reading a cell's codebook configuration tells you which side of that trade it has chosen.

Section 20.2Inside the codebook: i1, i2 and the 2D grid

Type I's PMI is a pair. i1 selects the wideband 2D DFT beam from the oversampled grid (the N1·O1 × N2·O2 directions from Chapter 6 — azimuth × elevation). i2 applies the per‑subband co‑phasing that aligns the two cross‑polarized halves of the array. Multi‑panel Type I adds an inter‑panel co‑phasing for arrays built from several panels. It's a compact, structured way to point one good beam in 3D.

▸ Advanced · 3GPP deep-dive — Type I structure & Type II parameters (TS 38.214 §5.2.2.2)
Type I single-panel PMI = (i1, i2) i1,1 / i1,2 → 2D DFT beam over N1·O1 × N2·O2 grid (O1=O2=4) i1,3 → beam selection for rank > 1 i2 → co-phasing between two polarizations (QPSK, per subband) Type II W = Σ (over 2 pol) Σ_{ℓ=1..L} c_ℓ · b_ℓ numberOfBeams L ∈ {2,4,6} # orthogonal DFT beams combined amplitude: wideband + subband {on|off} phase: phaseAlphabetSize {QPSK(4) | 8PSK(8)} # per-beam phase rank: R15 ≤2 ; R16 eType II ≤4 codebookConfig (RRC): codebookType {typeI-SinglePanel|typeI-MultiPanel|typeII|typeII-PortSelection}, n1-n2, ng-n1-n2

Type II payload grows with L, the subband count, and the phase alphabet — easily hundreds of bits vs Type I's tens. Type II Port Selection: when CSI-RS is already beamformed (reciprocity-assisted, Class-B-like, Ch.8), the UE just selects & combines among the pre-beamformed ports rather than searching the full DFT grid — far fewer bits for similar MU gain. R17 added further-enhanced Type II (FeType II) with Doppler/time-domain components.

Worked — bits vs gain Type I rank-1, 32 ports: PMI ≈ ~10–13 bits. Type II L=4, 8PSK, subband amplitude on, 13 subbands: ≈ 200–300+ bits. The ~20× feedback buys a precoder close enough to V that MU-MIMO inter-user interference drops several dB — often a net cell-capacity win despite the uplink cost.
Worked — where the Type II bits actually go It helps to see the payload built up term by term, because it shows which knob costs what. Take L=4 beams, 8PSK phase (3 bits), one polarisation pair, 13 subbands, rank 1:
beam selection : choose 4 of N1·N2 orthogonal beams ≈ 6–8 bits (one-time, wideband) wideband amplitudes : 4 beams × ~3 bits ≈ 12 bits (one-time) strongest-coeff ref : phase reference ≈ few bits per-subband phase : 4 beams × 2 pol × 3 bits × 13 SB ≈ 312 bits ← the dominant cost per-subband amp(opt): 4 beams × 1–2 bits × 13 SB ≈ +100 bits TOTAL ≈ 250–400+ bits
The headline is unmistakable: the per‑subband coefficients dominate, scaling as L × polarisations × subbands. That single observation is the entire motivation for Rel‑16 enhanced Type II (Fig 20.5): since those coefficients vary smoothly across frequency, replacing "one value per subband" with "a few frequency‑domain DFT basis vectors" attacks exactly the term that blew up the budget — often halving the payload at equal accuracy. When you tune a Type II config, you are almost always really tuning that per‑subband product.

Section 20.3The feedback-vs-accuracy trade

It comes down to one curve. Type I spends few uplink bits and lands a coarse precoder — a small gap from the ideal eigen‑beam, fine for SU‑MIMO where one user owns all the layers. Type II spends many bits and lands close to ideal — necessary when several users share a resource and even a small precoder error leaks interference between them. So the rule of thumb: SU‑MIMO or feedback‑constrained → Type I; high‑order MU‑MIMO → Type II (or reciprocity, which sidesteps codebooks entirely, Chapter 14).

Worked — why a "small" precoder error is fatal for MU but not SU The key quantity is null depth: how deeply the precoder for user A suppresses energy toward user B. A precoder that is mis‑aligned from the ideal by an angular error ε produces a null no deeper than roughly −20·log₁₀(ε) dB.
Type I (coarse): residual alignment error ε ≈ 0.2 (rad-ish, grid-quantised) → null depth ≈ −20·log10(0.2) ≈ −14 dB toward co-user Type II (fine) : ε ≈ 0.05 → null depth ≈ −26 dB toward co-user SU impact : the SAME ε costs user A only ~0.2 dB of its OWN signal — negligible MU impact : that null depth IS user B's interference floor −14 dB (Type I) vs −26 dB (Type II) = 12 dB cleaner co-user → MU lives or dies here
This is the asymmetry the whole chapter turns on: in SU‑MIMO the precoder error only slightly dims your own beam, so Type I's coarseness barely matters; in MU‑MIMO that same error becomes another user's noise floor, and the 12 dB difference between a −14 dB and a −26 dB null is the difference between MU pairing that works and pairing that collapses. Accuracy you can ignore for one user is decisive for several.
feedback bits vs precoder accuracy feedback bits → accuracy (→ V) → Type I Type II ideal eigen-beam (reciprocity) SU → Type I is enough · MU → Type II closes the gap that leaks inter-user interference
Figure 20.2 · More feedback buys a closer match to the ideal precoder — Type II for MU-MIMO
How to read this picture Accuracy (closeness to the ideal eigen‑beam V) vs feedback bits. Type I sits low‑left: few bits, a coarse precoder — and that's fine for single‑user MIMO, where the small gap just costs a little SU throughput. Type II sits up‑right: many bits, much closer to V. The red dashed line is the ideal you'd get from reciprocity (continuous W, no codebook). Why the extra accuracy matters: in MU‑MIMO, a coarse precoder mis‑places the nulls between paired users, leaking interference; Type II's fidelity keeps users cleanly separated. So pick Type I for SU/feedback‑limited links and Type II (or reciprocity) for serious MU‑MIMO.
Try it yourself — measure the codebook gap to the ideal precoder
You can reproduce Figure 20.2's whole curve in a short loop: build a channel, then see how closely each codebook can reconstruct its ideal eigen‑beam. The metric is the squared correlation between the codebook precoder and the true V (1.0 = perfect):
# N ports, a channel with a few dominant clusters (not pure i.i.d.) N = 32 h = sum(a_k * dft_beam(theta_k, N) for k in clusters) # a sparse, realistic channel v = h.conj() / norm(h) # ideal rank-1 eigen-beam w_typeI = best_single_dft_beam(h) # L=1: pick nearest grid beam for L in [1, 2, 4, 6]: w = best_L_beam_combo(h, L) # keep L strongest basis beams + amp/phase fidelity = abs(w.conj() @ v)**2 # → 1.0 as L grows leak_dB = 10*log10(1 - fidelity) # residual = co-user interference floor print("L =", L, " fidelity", round(fidelity,3), " co-user leak", round(leak_dB,1), "dB")
You'll see fidelity climb 0.85 → 0.95 → 0.99 → 0.997 as L goes 1 → 6, and the leakage fall roughly −8 → −13 → −20 → −25 dB — the exact shape of the feedback‑vs‑accuracy curve, now with numbers. Two experiments make the chapter's claims tangible: (1) feed the same channel to a 2‑user MU pair and confirm that L=1's −8 dB leak tanks the pairing while L=4's −20 dB sustains it; (2) make the channel pure single‑cluster line‑of‑sight and watch even L=1 hit fidelity ≈ 1 — because a one‑cluster channel is one beam, which is precisely when Type I is all you need and Type II's bits are wasted.

Section 20.4Where the rules live (3GPP map)

Concept3GPP home (NR)
Type I single/multi-panel, Type II, port selection codebooksTS 38.214 §5.2.2.2
codebookConfig (codebookType, n1-n2, L, phase, subband amplitude)TS 38.331
PMI carriage (UCI), payload sizingTS 38.212
eType II (R16), FeType II (R17, Doppler)TS 38.214 (later releases)
The core idea
Type I = pick one DFT beam (i1) + co-phasing (i2): cheap, SU. Type II = combine L beams with amp+phase: costly, MU. Port selection = combine pre-beamformed ports (reciprocity-assisted). More bits → closer to eigen-beam V → cleaner MU nulls. Reciprocity skips codebooks entirely.

Section 20.5KPIs & a field note

ChoiceKPI fingerprintMeaning
Type Ilow PMI overhead; adequate SU SINR; weaker MUfeedback-cheap
Type IIhigher MU SINR & pairing; high PUCCH/PUSCH loadaccuracy for MU
Port selectiongood MU gain at low feedback (needs beamformed CSI-RS)reciprocity-assisted

Field note: "FDD MU‑MIMO underperforms; users interfere when paired." With FDD you can't use reciprocity, so MU quality hinges on PMI fidelity — Type I's coarse precoder mis‑places nulls. Enable Type II (accept the higher feedback) to sharpen inter‑user nulling; if the uplink can't afford the payload, fall back to fewer paired users or SU. TDD cells avoid this by computing W from SRS (reciprocity). (MU activation: Chapter 35.)

Field note 2: "We enabled Type II to boost MU‑MIMO, but uplink throughput fell and some UEs now drop CSI reports." Type II works as advertised on the downlink — and bills the uplink for it. A few‑hundred‑bit PMI on PUSCH every report is a real data cost, and (recalling Chapter 18's CSI‑processing‑unit budget) a heavy Type II computation occupies more CPUs, so a UE asked for Type II on several resources at once may legitimately drop the excess. The fingerprint: the uplink regression and the dropped reports both appear the moment Type II is switched on, and they scale with L, subband count and the number of configured reports. The fix is to spend Type II surgically rather than globally — enable it only for UEs actually being MU‑paired (cell‑centre, separable users), keep cell‑edge and SU‑only UEs on cheap Type I, and prefer enhanced (Rel‑16) Type II to cut the per‑subband payload. The error here isn't choosing Type II; it's choosing it for everyone, when only the paired users were ever going to cash the downlink gain.

Section 20.6If they put you on the spot

"Type I vs Type II — the essence?"
Type I selects one DFT beam (i1) plus polarization co‑phasing (i2) — coarse, low feedback, good for SU. Type II reports a weighted combination of L (2/4/6) beams with amplitude and phase, wideband+subband — a fine approximation of the eigen‑beam, high feedback, needed for high‑order MU‑MIMO.
"Why does MU-MIMO need Type II?"
MU pairing relies on precise nulls toward co‑scheduled users; a coarse Type I precoder mis‑places those nulls and leaks inter‑user interference. Type II's higher fidelity (closer to V) keeps users separable, so it materially improves MU SINR and pairing.
"What is a port-selection codebook?"
When CSI‑RS is already beamformed (reciprocity‑assisted), the UE selects and combines among the pre‑beamformed ports instead of searching the full DFT grid — achieving MU‑grade accuracy at much lower feedback.
"i1 vs i2 in Type I?"
i1 selects the wideband 2D DFT beam (azimuth×elevation, over the oversampled N1·O1×N2·O2 grid); i2 applies the per‑subband co‑phasing between the two cross‑polarized halves of the array.

Section 20.7What to carry out of this chapter

  • Type I = pick one DFT beam (i1) + co‑phasing (i2): cheap feedback, SU‑MIMO.
  • Type II = combine L beams with amplitude+phase (wideband+subband): expensive, close to eigen‑beam, MU‑MIMO.
  • Port selection = combine pre‑beamformed ports (reciprocity‑assisted) for MU gain at low feedback.
  • More feedback → closer to ideal V → cleaner MU nulls; reciprocity sidesteps codebooks entirely (TDD).

In closing20.8 · The menu sets the ceiling

The codebook is the resolution limit on how well a feedback‑based system can point. Type I keeps the bill small and serves single users well; Type II spends bits to approach the eigen‑beam ideal and unlocks the precise nulling that high‑order MU‑MIMO demands; port selection bridges to the reciprocity world. Choosing among them — or going codebook‑free with reciprocity — is one of the highest‑leverage decisions in a massive‑MIMO deployment, and it directly governs the MU pairing that, as Chapter 16 showed, is where cell capacity actually lives.

That closes Part 7: we now have the full feedback story — the indices (Ch.18), the pilots they're measured on (Ch.19), and the codebooks the precoder is drawn from (this chapter). Everything so far has assumed the beam is roughly pointed. Part 8 — NR Beam Management is about keeping it pointed. In Chapter 21 — Beam Management Life Cycle, we'll walk the end‑to‑end cycle — sweep, measure, report, indicate, track, recover — and the P1/P2/P3 procedures that run it.

— end of Chapter 20 · end of Part 7 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eight — NR Beam Management
CHAPTER TWENTY-ONE

Beam Management
Life Cycle

"A narrow beam is a blessing until the user moves. Beam management is how you keep the blessing pointed."

Everything in this book has assumed the beam is roughly aimed at the user. But massive‑MIMO beams are narrow — at FR2, pencil‑thin — and users move, turn, and get blocked. A beam pointed half a beamwidth wrong loses ~3 dB (Chapter 12); pointed fully wrong, the link dies. So NR wraps every beam in a continuous life cycle: find the right beam, measure candidates, report the best, tell the UE which beam to use, track it as the user moves, and recover when it fails. That cycle — and the three procedures P1/P2/P3 that drive it — is the subject of Part 8, and this chapter is the map of the whole thing before we drill into each stage.

Before we dive inWhat you'll walk away knowing

  • Walk the end‑to‑end cycle: sweep → measure → report → indicate → track → recover.
  • Distinguish P1 / P2 / P3: coarse acquisition, gNB Tx‑beam refine, UE Rx‑beam refine.
  • Explain beam reporting (L1‑RSRP / L1‑SINR of the best N beams).
  • Understand beam indication (TCI states via MAC CE / DCI — full detail Ch.25).
  • Place beam failure detection & recovery within the cycle (full detail Ch.30).

Section 21.1The cycle, end to end

Beam management is a loop that never really stops. Sweep: the gNB transmits beams in many directions (SSB, then CSI‑RS). Measure: the UE measures their quality (L1‑RSRP). Report: the UE tells the gNB the best beam(s). Indicate: the gNB tells the UE which beam to assume for PDCCH/PDSCH (a TCI state). Track: as the user moves, periodic refinement keeps the beam aligned. Recover: if the beam fails (blockage, fast turn), a fast recovery procedure finds a new one. Then around again.

the beam management life cycle sweepSSB/CSI-RS measureL1-RSRP reportbest N beams indicateTCI state trackrefine P2/P3 recover on beam failure (blockage / fast turn) → re-sweep
Figure 21.1 · Beam management is a continuous loop, with a fast recovery path on failure
How to read this picture Follow the blue arrows: the gNB sweeps beams (SSB then CSI‑RS), the UE measures their L1‑RSRP, reports the best ones, the gNB indicates which beam to use via a TCI state, and then both track it with ongoing P2/P3 refinement as the user moves. The red dashed loop underneath is the safety net: if the beam suddenly fails — a hand, a wall, a fast turn — beam recovery kicks in and the cycle restarts from a re‑sweep. This is the spine of Part 8: Chapter 22 details the SSB sweep, Chapter 24 the CSI‑RS refinement, Chapter 25 the TCI indication, and Chapter 30 the failure/recovery path. Everything narrow‑beam depends on this loop running fast enough.
The beam-management lifecycle — P1 → P2 → P3, then track P1 — acquireSSB sweep, coarse beam(Chapter 22) P2 — refine TxgNB sweeps CSI-RS beams(Chapter 24) P3 — refine RxUE sweeps its Rx beams(Chapter 24) continuous tracking / failure recovery (Chapters 29–30)
Figure 21.3 · The P1/P2/P3 beam-management lifecycle
How to read this picture Beam management runs as a lifecycle. P1 acquires a coarse beam from the SSB sweep — first contact in the dark. P2 refines the gNB's transmit beam using narrower CSI-RS beams. P3 refines the UE's receive beam against that fixed transmit beam. Then the dashed loop takes over: the serving beam is continuously tracked and, if it's lost, recovered (Chapters 29-30). This single picture is the map for all of Part Eight — every later chapter zooms into one stage of this cycle.
A beam-pair link: a matched Tx beam and Rx beam gNB Tx beam (gNB) UE Rx beam (UE) the BPL is what P2 (Tx) and P3 (Rx) jointly optimise
Figure 21.4 · The beam-pair link
How to read this picture What beam management ultimately maintains is a beam-pair link: a gNB transmit beam matched to a UE receive beam, both pointed so their narrow patterns overlap. P2 sharpens the gNB side, P3 sharpens the UE side, and together they keep the pair aligned. Thinking in beam pairs — not single beams — is the key mental shift for FR2, where both ends are directional and a link only exists when both beams point correctly at once.

Section 21.2P1, P2, P3 — coarse to fine, Tx then Rx

The cycle is implemented by three named procedures. P1: the gNB sweeps wide SSB beams and the UE finds a coarse one (Chapter 10's SSB‑RSRP). P2: within that coarse beam, the gNB sweeps narrower CSI‑RS beams to refine its transmit beam (the UE reports the best CRI — Chapter 19). P3: with the gNB Tx beam fixed (CSI‑RS repetition=on), the UE sweeps its own receive beams to find its best Rx direction. P1 acquires; P2 sharpens the gNB side; P3 sharpens the UE side.

P1 (coarse) → P2 (gNB Tx refine) → P3 (UE Rx refine) P1 · SSB wide gNB beams, coarse pick P2 · CSI-RS (Tx) narrow Tx beams → best CRI P3 · CSI-RS rep=on (Rx) fixed Tx, UE sweeps Rx beams
Figure 21.2 · P1 acquires a coarse beam, P2 sharpens the gNB's Tx beam, P3 sharpens the UE's Rx beam
How to read this picture Three procedures, left to right. P1: the gNB sweeps wide SSB beams and the UE picks a coarse one — initial acquisition. P2: inside that coarse beam the gNB sweeps several narrow CSI‑RS beams and the UE reports the best (CRI), refining the gNB's transmit beam. P3: now the gNB holds its Tx beam fixed (CSI‑RS with repetition=on) while the UE tries its own receive beams (the red Rx options) to find its best listening direction. Coarse→fine, and Tx‑side then Rx‑side. Together P1/P2/P3 take a user from "somewhere in the sector" to "a tight Tx beam met by a tight Rx beam" — the alignment narrow massive‑MIMO needs.
▸ Advanced · 3GPP deep-dive — P1/P2/P3 mapping & L1-RSRP reporting
P1 SSB-based · UE measures SSB-RSRP · report via CSI (ssb-Index-RSRP) or RACH beam P2 NZP-CSI-RS set, repetition=OFF (diff Tx beams) · UE reports best CRI + L1-RSRP P3 NZP-CSI-RS set, repetition=ON (same Tx beam) · UE refines its Rx beam (no new report needed) L1-RSRP report (CSI-ReportConfig): reportQuantity = cri-RSRP | ssb-Index-RSRP nrofReportedRS ∈ {1..4} # report best up to 4 beams groupBasedBeamReporting {enabled} # report beams the UE can Rx simultaneously (2 RX) L1-SINR (R16) optional for finer selection

groupBasedBeamReporting matters for UEs with multiple Rx chains: it reports pairs of beams the UE can receive at the same time (e.g. for multi-TRP). Reports are L1 (fast, PHY) — distinct from L3/RRC mobility measurements. Beam indication (which beam PDCCH/PDSCH uses) is then signalled by TCI state (MAC CE activates, DCI selects — Ch.25).

Worked — sweep cost FR2, 64 SSB beams, SS burst within a 5 ms half-frame → full P1 sweep ≈ one burst period; P2 with 16 CSI-RS beams adds a few slots. The narrower the beam, the more beams to sweep and the longer alignment takes — which is why FR2 mobility (Ch.31) is a beam-sweep-latency problem, not a power problem.

Section 21.3Indicate and recover (previews)

Two stages get their own chapters but belong on the map now. Beam indication: once the gNB knows the best beam, it must tell the UE which beam to assume for receiving PDCCH and PDSCH — done via a TCI state (Transmission Configuration Indicator), which links the data to a reference signal whose beam/QCL properties the UE already knows (Chapter 25). Beam failure recovery: if the serving beam degrades (the UE's BFD‑RS drops below threshold for N consecutive checks), the UE declares beam failure, searches a configured set of candidate beams, and signals recovery (often via a dedicated PRACH) so the gNB switches it to a good beam fast (Chapter 30). Indication keeps the beam known; recovery rescues it when lost.

Section 21.4Where the rules live (3GPP map)

Stage3GPP home (NR)
Beam management procedures (P1/P2/P3), L1-RSRP/SINR reportingTS 38.214 §5.1, TS 38.213 §6
SSB / CSI-RS signals & repetitionTS 38.211 §7.4 (Ch.10, 19)
Beam indication (TCI states, QCL)TS 38.214 §5.1.5, TS 38.331 (Ch.25)
Beam failure detection & recovery (BFD-RS, candidates, BFR)TS 38.213 §6, TS 38.321 (Ch.30)
The core idea
Beam life cycle = sweep → measure → report → indicate → track → recover. P1 (SSB, coarse) → P2 (CSI-RS rep=off, gNB Tx refine, CRI) → P3 (CSI-RS rep=on, UE Rx refine). Report = L1-RSRP of best N beams. Indicate = TCI (Ch.25). Recover = BFD/BFR (Ch.30).

Section 21.5KPIs & a field note

MetricKPI fingerprintMeaning
Best-beam distributionwhich SSB/CSI-RS beams serve most userscoverage & planning
Beam switch rateswitches/sec per UEmobility / beam width vs speed
Beam failure / recovery rateBFR events; recovery latencyblockage & tracking health (Ch.30)
L1-RSRP report qualityreport drop, stale best-beamtracking loop health

Field note: "Throughput dips and brief stalls whenever users walk around a corner." The narrow serving beam loses the user faster than the tracking loop re‑aligns. Levers: speed up beam tracking (more frequent P2/P3, shorter CSI‑RS periodicity), widen the serving beam slightly for mobile UEs (trade gain for robustness), and tune beam‑failure thresholds so recovery triggers promptly. The beam was fine; the cadence of the life cycle was too slow for the user's motion. (Mobility & failure: Chapters 29–31.)

Section 21.6If they put you on the spot

"Walk the beam management life cycle."
Sweep (gNB transmits beams via SSB/CSI‑RS) → measure (UE measures L1‑RSRP) → report (best N beams) → indicate (gNB signals the beam via a TCI state) → track (ongoing P2/P3 refinement) → recover (beam failure detection + recovery if the beam is lost). Then repeat.
"Difference between P1, P2, P3?"
P1: SSB‑based coarse acquisition (wide gNB beams). P2: CSI‑RS with repetition=off — gNB sweeps narrow Tx beams, UE reports best CRI (refines gNB Tx beam). P3: CSI‑RS with repetition=on — fixed Tx beam, UE refines its own Rx beam.
"How does the UE report beams, and how is one indicated?"
It reports L1‑RSRP (or L1‑SINR) of the best up to 4 beams (CRI/SSBRI), optionally group‑based for multi‑Rx UEs. The gNB indicates which beam to use for PDCCH/PDSCH via a TCI state (MAC CE activates, DCI selects).
"Why is beam management harder at FR2?"
Beams are far narrower (more beams to sweep, tighter alignment), and analog/hybrid beamforming sweeps beams in time. So acquisition/tracking is a sweep‑latency challenge, and mobility/blockage cause frequent failures and recoveries.

Section 21.7What to carry out of this chapter

  • Beam management is a continuous loop: sweep → measure → report → indicate → track → recover.
  • P1 (SSB, coarse) → P2 (CSI‑RS rep=off, gNB Tx refine, CRI) → P3 (CSI‑RS rep=on, UE Rx refine).
  • Report = L1‑RSRP/SINR of best up to 4 beams (group‑based for multi‑Rx).
  • Indicate via TCI (Ch.25); recover via BFD/BFR (Ch.30).
  • Narrow beams + mobility make the loop's cadence the key engineering parameter.

In closing21.8 · Keeping the blessing pointed

Narrow beams give massive MIMO its gain and its capacity, but they're useless if they're not pointed at the user — and users never hold still. Beam management is the discipline that keeps the beam aligned through motion and blockage: a perpetual sweep‑measure‑report‑indicate‑track loop with a recovery safety net, implemented by the coarse‑to‑fine P1/P2/P3 procedures. We've mapped the whole cycle; the next chapters drill in.

Chapter 22 — SSB‑Based Beam Management starts at the beginning of the loop: the SS burst set, SSB indices, beam sweeping for cell search and initial access — how a UE goes from cold to coarsely beamed before any CSI‑RS refinement happens.

— end of Chapter 21 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eight — NR Beam Management
CHAPTER TWENTY-TWO

SSB-Based
Beam Management

"Before a beam can be refined, the UE has to find one in the dark. The SSB sweep is that first light."

Beam management (Chapter 21) begins at P1 — and P1 is the SSB. A UE waking up cold knows nothing: not the cell, not the timing, not which direction it's in. The cell solves this by sweeping a set of SSBs, each in a different beam, across the whole sector. The UE finds the strongest, and in doing so acquires the cell and a coarse beam at once. This chapter details that first‑light process: the SS burst set, SSB indices, sweeping, and how it underpins initial access.

ObjectivesWhat you'll walk away knowing

  • Explain the SS burst set: multiple SSBs, each a beam, swept in time (Lmax = 4 / 8 / 64 by band) and the SSB time positions (Case A–E).
  • Explain how the UE uses SSB index + SSB‑RSRP to acquire the cell and a coarse beam in a single process.
  • Place P1 in the P1/P2/P3 life cycle: why SSB is the only stage that works from cold, and how beam correspondence carries it into RACH.
  • Plan an SSB beam grid — count vs width vs sweep latency, elevation tiers, and ssb-PositionsInBurst.
  • Use the SMTC and SSB periodicity to trade measurement overhead against re‑acquisition latency.
  • See SSB's triple role — access, the QCL anchor, and the mobility yardstick — and troubleshoot coverage gaps and slow re‑acquisition.

Section 22.1The SS burst set — beams in time

The cell doesn't send one SSB; it sends a burst set of up to Lmax SSBs within a 5 ms half‑frame, each transmitted in a different beam direction (Chapter 10). Analog/hybrid radios (Chapter 13) can only point one beam at a time, so the beams are swept sequentially in time — SSB index 0 in beam 0, index 1 in beam 1, and so on. The number of beams scales with frequency: low bands need few (wide cells), mmWave needs many (pencil beams).

SS burst set: L_max SSBs, each a beam, swept in time time (within 5 ms half-frame) → SSB0SSB1SSB2SSB3 each SSB → a different beam direction L_max = 4 (≤3 GHz) · 8 (3–6 GHz) · 64 (FR2)
Figure 22.1 · The cell sweeps a set of SSBs, one beam each, across the sector
How to read this picture Time runs left to right within a 5 ms half‑frame. The cell transmits SSB0, SSB1, SSB2… each in a different beam direction (the fan above), one after another — because an analog/hybrid radio can only point one beam at a time (Chapter 13). The number of SSB beams, Lmax, grows with frequency: 4 below 3 GHz, 8 in mid‑band, up to 64 at FR2 where beams are pencil‑thin and you need many to cover the sector. A UE listens across the sweep and notes which SSB came in strongest — that index is its coarse beam.
The SSB index the UE reports IS the beam direction gNB SSB #5 strongest SSB #2SSB #3 UE reports SSBRI #5 → gNB knows which beam to keep serving (QCL anchor)
Figure 22.5 · The SSB index is the beam handle
How to read this picture Because each SSB is sent in a known beam direction, the index of the strongest SSB is effectively the name of the user's best coarse beam. When the UE reports SSB #5, the gNB knows precisely which beam to keep pointing — and that SSB becomes the QCL 'anchor' (Chapter 25) that later CSI-RS and data beams are tied to. So the humble SSB index is not just for access; it is the first link in the chain of beam identifiers that runs through all of beam management.
SSB occupies 4 symbols × 240 subcarriers (20 RB) in the grid PSS PBCH SSS PBCH PBCH (+ DM-RS) → 4 OFDM symbols (time) · 20 RB (frequency)
Figure 22.3 · The SSB block: PSS/SSS/PBCH packed into 4 symbols × 20 RB
How to read this picture The SSB is a compact tile on the grid — PSS in the first symbol, SSS and PBCH interleaved, with PBCH‑DMRS spread across. Knowing its exact footprint (4 symbols × 240 subcarriers) matters for scheduling around it and for measuring SSB‑RSRP on the SSS/PBCH‑DMRS REs.
SSB periodicity & the SMTC measurement window burstburstburst period (5/10/20/40/80/160 ms) SMTC window default 20 ms for initial access; UE measures SSBs inside the SMTC window
Figure 22.4 · SSB periodicity and the SMTC measurement window
How to read this picture SSBs repeat at a configured period (20 ms by default for access). The SMTC tells the UE when to wake and measure SSBs for mobility — a longer period saves UE power but slows re‑acquisition, the trade behind the FR2 sweep latency.

Section 22.2Finding the cell and a beam at once

As the UE scans, it detects PSS then SSS (timing + cell ID, Chapter 10), decodes PBCH, and — crucially — measures the SSB‑RSRP of each beam. The strongest SSB index is the UE's coarse serving beam. So one process accomplishes cell search, synchronization, system‑info acquisition, and coarse beam selection. The chosen SSB index also tells the UE which PRACH resources to use (Chapter 23) — so the very first uplink message already carries beam information.

UE measures SSB-RSRP per beam → picks the strongest SSB0 (-98) SSB1 (-85) ★ SSB2 (-101) UE best SSB index = 1 → coarse beam + RACH resource
Figure 22.2 · The strongest SSB beam becomes the coarse serving beam
How to read this picture The UE hears several SSB beams and measures each one's SSB‑RSRP (numbers in dBm). SSB1 is strongest (★), so the UE selects SSB index 1 as its coarse beam. That single measurement does a lot: it identifies the cell (PSS/SSS), delivers system info (PBCH), and picks the beam — and because PRACH resources are tied to SSB index (Chapter 23), the UE's first uplink access attempt automatically tells the gNB which beam it's in. Coarse, but enough to start; CSI‑RS (Chapter 24) refines it.
▸ Advanced · 3GPP deep-dive — SSB burst set parameters
L_max 4 (FR1 ≤3 GHz) | 8 (FR1 3–6 GHz) | 64 (FR2) # max SSB beams in burst set ssb-PositionsInBurst bitmap of actually-transmitted SSBs # MIB/SIB1 SMTC SS/PBCH Measurement Timing Configuration (period, offset, duration) SSB periodicity {5,10,20,40,80,160} ms (default 20 ms for initial access) SSB-RSRP measured on SSS + PBCH-DMRS REs → L1/L3 beam & cell metric

The SSB index is carried implicitly (PBCH-DMRS sequence + PBCH payload bits for FR2's 64 indices). ssb-PositionsInBurst lets an operator transmit only some beams (e.g. omit sky‑pointing beams). The SMTC window tells the UE when to measure SSBs for mobility. SSB‑RSRP is the L1 input to P1 beam selection and the L3 input to handover.

Worked — sweep period FR2, 64 SSBs, 20 ms period → the full beam sweep repeats every 20 ms. A UE turning a corner may wait up to ~20 ms to re-acquire the best SSB beam — a real latency at the start of the beam life cycle, which CSI-RS refinement (faster) then takes over.

Section 22.3Where SSB sits in the beam life cycle (P1)

It helps to keep the whole life cycle (Chapter 21) in view. Beam management has three stages — P1 (acquire), P2 (refine the gNB's transmit beam), P3 (refine the UE's receive beam). SSB is P1, and P1 is special: it is the only stage that has to work with no prior connection at all. The UE is cold — no timing, no security, no idea which way to point — so the reference signal it leans on must be broadcast, periodic, and self‑describing. That is exactly what SSB is, and why P1 cannot use the on‑demand, UE‑specific CSI‑RS that P2/P3 rely on.

P1 actually trains both ends at once. The gNB sweeps its transmit beams (one SSB per beam); meanwhile the UE, hearing the sweep repeat burst after burst, can cycle through its own receive beams and learn which Rx beam hears the cell best. So by the end of P1 there is already a rough transmit‑beam/receive‑beam pair — coarse, but enough to exchange the first messages. At FR2 this leans on beam correspondence: the UE assumes the receive beam that best heard an SSB is also the right transmit beam to answer on, so its PRACH (Chapter 23) goes back up the same path.

Section 22.4Planning the SSB beam grid

Choosing the SSB beam set is a real planning decision, not a default. The operator picks how many beams L (up to Lmax) and how wide each is, so that together they tile the sector. The trade is the same one that runs through all of massive MIMO: more beams means each is narrower — more gain and finer selection — but the sweep takes longer and costs more always‑on overhead. Fewer, wider beams sweep fast and cost little but leave less gain and risk gaps between them.

Two refinements matter in the field. First, elevation: a single horizontal fan of beams serves a flat plaza fine but starves the upper floors of a high‑rise — those deployments need an elevation tier of SSB beams (the 3D idea from Chapter 6 applied to the coarse layer). Second, ssb-PositionsInBurst lets the operator transmit only a subset of the candidate SSBs — for example, omitting beams that would point at empty sky for a low, ground‑serving cell, saving overhead and interference. The bitmap is signalled so the UE knows which beams to expect.

Worked — beam grid A mid‑band cell with L = 8 SSB beams covering a 120° azimuth sector tiles roughly 120/8 = 15° per beam. If users complain of a weak strip at one bearing, check whether it falls on a beam edge (15° crossover, where SSB‑RSRP dips) or on a beam that was switched off in ssb-PositionsInBurst — two very different fixes.

Section 22.5SMTC, periodicity and the sweep-latency trade

SSB does not run continuously; it repeats on a configured period — one of {5, 10, 20, 40, 80, 160} ms, with 20 ms the default for initial access. The SMTC (SS/PBCH Measurement Timing Configuration) then tells a connected UE when to wake and measure SSBs for mobility, so it doesn't have to listen all the time. Together these set the fundamental cadence of the coarse beam layer.

The trade is overhead and UE battery against responsiveness. A long period (say 80 ms) is light on the air and kind to the UE's battery, but the full beam sweep only refreshes every 80 ms — so a user whose best beam changes (rounding a corner, a blocker passing at FR2) can wait that long to re‑acquire. A short period reacts fast but spends more overhead and power. This is precisely why beam management does not stop at SSB: the per‑burst‑set latency is too coarse for a moving FR2 user, so CSI‑RS refinement (Chapter 24), which can be configured far more frequently or aperiodically, takes over once connected.

Section 22.6SSB's other two jobs: QCL anchor and mobility yardstick

Acquisition is only SSB's first job. Once chosen, the serving SSB becomes the QCL anchor (Chapter 25) for everything that follows: the CSI‑RS, PDCCH and PDSCH the gNB later configures are declared quasi‑co‑located with that SSB, which is how the UE knows their timing, frequency and — at FR2 — their spatial receive beam before it has measured them. The coarse beam you found in the dark literally points the antenna for the finer signals to come.

SSB is also the mobility yardstick. SSB‑RSRP and SSB‑SINR feed the L3 measurement reports that drive cell‑level handover, and the per‑beam SSB‑RSRP feeds L1 reporting for beam‑level decisions. So the same little block is at once the way in (access), the compass (QCL anchor), and the ruler (mobility metric) — three roles worth keeping distinct when you read a measurement configuration.

▸ Advanced · 3GPP deep-dive — SSB time positions & L1-RSRP reporting
Case A 15 kHz SCS — first symbols {2,8}+14n # FR1 Case B/C 30 kHz SCS — {4,8,16,20}/{2,8}+14n # FR1 Case D/E 120 / 240 kHz SCS — many positions # FR2, up to 64 SSBs L1-RSRP report nrofReportedRS <= 4, ssb-Index-RSRP, groupBasedBeamReporting QCL from SSB Type C (avg delay, Doppler) + Type D (spatial Rx) -> CSI-RS/PDCCH

The SSB candidate positions within the half‑frame follow standardised Cases A–E keyed to subcarrier spacing — that's how the UE knows where to look without being told. For connected‑mode beam reporting, the UE returns up to 4 beams (SSB or CSI‑RS indices) with their L1‑RSRP; groupBasedBeamReporting asks for beams the UE can receive simultaneously (useful for multi‑TRP). And the SSB→CSI‑RS QCL link (Type C + Type D) is what carries the coarse spatial assumption into the refinement stage.

Worked — report size With nrofReportedRS = 4 the UE reports its 4 strongest SSB beams + RSRPs each reporting instance. The gNB uses #1 as the serving beam and keeps #2–#4 as ready candidates for fast switching or beam‑failure recovery (Chapter 30) — so a slightly larger report buys quicker recovery at a small uplink cost.

Section 22.7Troubleshooting SSB-based beam management

Coarse‑layer problems are some of the most satisfying to fix because they are geometric and repeatable. Walk the table.

SymptomLikely causeCheck / fix
Weak strip at one azimuthGap between SSB beams, or beam off in positions bitmapCheck beam‑edge crossover vs ssb-PositionsInBurst; re‑plan grid
High‑rise upper floors poorNo elevation SSB beamsAdd an elevation tier / 3D SSB beam set (Ch 6)
Slow recovery after blockage (FR2)SSB period too longShorten period, or lean on CSI‑RS BM + beam‑failure recovery (Ch 30)
UE camps on a weak beam / flapsOverlapping beams, SSB‑RSRP tiesTune beam overlap & cell/beam offsets; widen hysteresis
Initial‑access failures at edgeSSB‑RSRP below access thresholdCoverage/power problem — SSB beamforming gain, tilt, power, site

The recurring discriminator: a planning fault (grid geometry, positions bitmap, elevation) is fixed once and stays fixed; a coverage fault (RSRP too low) is a link‑budget problem. SSB beam planning is the coarse layer beneath every CSI‑RS refinement, so a gap here can never be recovered downstream — get it right first.

Section 22.83GPP map, KPIs & field note

Concept3GPP home
SSB structure, L_max, positions, periodicityTS 38.213 §4, TS 38.211 §7.4.3
SSB-RSRP measurement, SMTCTS 38.215, TS 38.331
SSB → RACH associationTS 38.213 §8 (Ch.23)

KPIs: best‑SSB‑beam distribution (coverage/planning), SSB‑RSRP CDF, coverage holes between beams. Field note: "Users in a thin azimuth band have poor coverage." Likely a gap between SSB beams or an omitted beam in ssb-PositionsInBurst — check the SSB beam grid covers all served directions (and elevation, for high‑rise). SSB beam planning is the coarse layer beneath all CSI‑RS refinement.

Interview · Takeaways · Summary

"What is the SS burst set and why swept?"
A set of up to Lmax SSBs (4/8/64 by band) within a 5 ms half‑frame, each in a different beam, swept in time because analog/hybrid radios point one beam at a time. The UE finds the strongest → coarse beam + cell acquisition.
"How does SSB selection feed the rest of beam management?"
The best SSB index is the P1 coarse beam and selects the PRACH resource (so Msg1 conveys the beam). It then becomes the QCL anchor for later CSI‑RS/PDCCH/PDSCH, and CSI‑RS refines it (P2/P3, Chapter 24).
"Why is P1 the only stage that uses SSB and not CSI‑RS?"
P1 must work from cold — no connection, timing or security yet. CSI‑RS is UE‑specific and on‑demand, so it can't reach an unconnected UE. SSB is broadcast, periodic and self‑describing, so it's the only signal that can bootstrap the first beam.
"What sets how fast a UE can re‑acquire its best SSB beam?"
The SSB periodicity (full sweep refreshes once per period; 20 ms default). A long period saves overhead/battery but slows re‑acquisition after blockage — which is why connected‑mode beam tracking moves to the faster CSI‑RS and beam‑failure recovery.
"What is ssb-PositionsInBurst for?"
A bitmap of which candidate SSBs are actually transmitted. It lets an operator omit beams (e.g. sky‑pointing ones for a ground cell) to save overhead/interference, and tells the UE which beams to expect in the sweep.
"A thin azimuth band has poor coverage — SSB problem or coverage problem?"
Check geometry first: is the band on a beam‑edge crossover, or on a beam disabled in the positions bitmap? That's a planning fix. If SSB‑RSRP is simply low everywhere there, it's a link‑budget/coverage problem (tilt, power, site) — not a beam‑grid fault.
  • SSB burst set = beams swept in time; Lmax = 4/8/64 by band, at standardised time positions (Cases A–E).
  • P1 is the only cold‑start stage; it trains a coarse Tx/Rx beam pair and, via beam correspondence, carries into RACH.
  • UE picks strongest SSB‑RSRP → cell + coarse beam in one step; the index ties to the RACH resource.
  • SSB beam planning (count, width, elevation, ssb-PositionsInBurst) is the coarse coverage layer beneath all CSI‑RS refinement — a gap here can't be recovered downstream.
  • SSB does triple duty: access, the QCL anchor for finer signals, and the mobility yardstick (SSB‑RSRP/SINR) for L1 beam + L3 handover.

SSB sweeping is the first light of the beam life cycle — coarse acquisition from cold. With a beam roughly chosen, the UE must now announce itself on the uplink in a way that preserves that beam. In Chapter 23 — PRACH and Beam Association, we'll see how SSB‑to‑RACH‑occasion mapping makes the very first random‑access message beam‑aware.

— end of Chapter 22 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eight — NR Beam Management
CHAPTER TWENTY-THREE

PRACH and
Beam Association

"The UE's first word to the network already says which beam it's in — by where it knocks, not what it says."

The UE has a coarse beam from the SSB sweep (Chapter 22). Now it must announce itself on the uplink to start random access — but the gNB has many beams and doesn't yet know which one this UE sits in. NR solves this elegantly: it maps each SSB beam to specific PRACH resources. By choosing the RACH occasion (and/or preamble) tied to its best SSB, the UE's very first transmission tells the gNB its beam — implicitly, by where it knocks. This chapter covers SSB‑to‑RO mapping, beam‑based random access, and how the beam survives the access procedure.

ObjectivesWhat you'll walk away knowing

  • Explain SSB‑to‑RACH‑occasion (RO) mapping and how it conveys the UE's beam by where it transmits.
  • Walk the full 4‑step and 2‑step random‑access exchange — preamble, RAR, Msg3, contention resolution — with its RNTIs and windows.
  • Understand beam correspondence: the assumption that lets the gNB beamform the RAR back, and what happens when it fails.
  • Distinguish CBRA vs CFRA and why handover and beam‑failure recovery use the contention‑free path.
  • Dimension RACH for many beams with ssb-perRACH-Occasion, msg1-FDM and the association period — the FR2 64‑beam problem.
  • Follow power ramping and mid‑access beam reselection, and troubleshoot per‑beam RACH failures.

Section 23.1SSB-to-RO mapping — beam by location

The gNB configures a set of RACH occasions (ROs) — time/frequency slots where the UE may send a PRACH preamble — and associates each SSB beam with one or more ROs (and/or a subset of preambles). The UE, having chosen its best SSB, transmits its preamble on the RO mapped to that SSB. When the gNB detects a preamble on a given RO, it immediately knows which beam direction the UE is in — without any explicit signalling. The beam is encoded in the choice of resource.

each SSB beam → its own PRACH occasion(s) SSB0SSB1SSB2 RO 0RO 1RO 2 UE on SSB1 → sends preamble on RO 1 gNB detects RO 1→ knows UE is in beam 1
Figure 23.1 · The RACH occasion the UE uses encodes which SSB beam it selected
How to read this picture Each SSB beam is mapped to its own PRACH occasion (RO). A UE that chose SSB1 sends its preamble on RO 1. When the gNB detects energy on RO 1, it instantly infers "this UE is in beam direction 1" — the beam is conveyed by which resource the UE knocks on, with no extra bits. This is why initial access in NR is beam‑aware from the very first uplink symbol: the SSB‑to‑RO association turns resource choice into beam signalling.
Contention-based vs contention-free RACH CBRAUE picks a preamble at random→ collisions possible, 4-stepinitial access CFRAgNB assigns a dedicated preamble→ no collision, fasthandover & beam-failure recovery
Figure 23.4 · Contention-based vs contention-free RACH
How to read this picture Random access comes in two flavours. CBRA (contention-based) has the UE pick a preamble at random, so two UEs can collide and must resolve it — fine for first-time access where the network doesn't yet know the UE. CFRA (contention-free) has the gNB hand the UE a dedicated preamble in advance, guaranteeing no collision and a fast completion — which is exactly why handover and beam-failure recovery (Chapter 30) use CFRA: in those moments you cannot afford the delay of a contention resolution.
4-step RACH, all beamed (Msg1 conveys the beam) UE gNB Msg1 · preamble on SSB-tied RO ↑ Msg2 · RAR (beamed back) ↓ Msg3 · RRC request ↑ Msg1's RO encodes the beam → gNB beamforms Msg2/Msg4 back (beam correspondence)
Figure 23.2 · Beam-based 4-step random access
How to read this picture Random access stays beam‑aware throughout: Msg1's RACH occasion tells the gNB the UE's beam, so the RAR (Msg2) and contention resolution (Msg4) are beamed back in that direction. 2‑step RACH compresses this but keeps the same SSB‑to‑resource beam association.
ssb-perRACH-Occasion: trade RO capacity vs beam count <1: one SSB → many ROs >1: many SSBs → one RO FR2's 64 SSBs drive RO dimensioning (with msg1-FDM placing ROs in frequency)
Figure 23.3 · SSB-to-RO ratio sets RACH capacity per beam
How to read this picture The ssb-perRACH-Occasion ratio decides how SSB beams map to RACH occasions: below 1 each beam gets multiple ROs (more access capacity per beam); above 1 several beams share an RO (preambles tell them apart). With 64 FR2 beams this directly sizes the RACH resource budget.

Section 23.2Beam-based random access

The four‑step RACH flow becomes beam‑aware: Msg1 (preamble) on the SSB‑associated RO tells the gNB the UE's beam; the gNB beamforms Msg2 (Random Access Response) back in that same beam; Msg3/Msg4 continue beamed. (Two‑step RACH compresses Msg1+Msg3 into MsgA and Msg2+Msg4 into MsgB, but the SSB‑to‑resource beam association is the same.) The key property enabling this is beam correspondence: the gNB (and ideally the UE) can transmit in the same direction it best receives — so "heard you on beam 1" implies "I'll talk back on beam 1."

▸ Advanced · 3GPP deep-dive — SSB↔RO association & RACH config
ssb-perRACH-OccasionAndCB-PreamblesPerSSB N ∈ {1/8, 1/4, 1/2, 1, 2, 4, 8, 16} # SSBs per RO (or ROs per SSB if <1) + CB preambles per SSB # contention-based preamble split RACH-ConfigCommon prach-ConfigurationIndex, msg1-FDM {1,2,4,8}, msg1-FrequencyStart rsrp-ThresholdSSB min SSB-RSRP to select an SSB for RACH ra-ssb-OccasionMaskIndex restrict ROs (CFRA)

If ssb-perRACH-Occasion < 1, each SSB maps to multiple ROs (more capacity per beam); if >1, several SSBs share one RO (preambles distinguish them). msg1-FDM places several ROs in frequency in the same slot. Contention-free RACH (CFRA) (e.g., for handover or beam-failure recovery, Ch.30) gives the UE a dedicated preamble/RO tied to a target beam. rsrp-ThresholdSSB stops the UE from selecting a too-weak beam.

Worked — RO budget at FR2 64 SSBs, ssb-perRACH-Occasion=1 → need 64 ROs per association period to cover all beams; with msg1-FDM=8, 8 ROs fit per slot → 8 slots to cycle all beams. The beam count drives RACH resource dimensioning — a real FR2 capacity-planning input.

Section 23.4Inside the access exchange — messages, windows, RNTIs

It's worth walking the exchange message by message, because the beam rides along the whole way and several field problems hide in the windows and identifiers. In 4‑step RACH: Msg1 is the preamble on the SSB‑tied RO; from the time/frequency of that RO the UE derives a RA‑RNTI, the temporary identity the gNB will use to address the response. The gNB replies with Msg2, the Random Access Response, scrambled by that RA‑RNTI and sent inside a timer window (ra-ResponseWindow); the RAR carries the timing advance, an uplink grant, and a TC‑RNTI. The UE then sends Msg3 (its RRC request) on the granted PUSCH, and the gNB closes with Msg4, contention resolution, which confirms this UE won the preamble and promotes the TC‑RNTI to a real C‑RNTI.

2‑step RACH compresses this: MsgA bundles the preamble and a PUSCH payload (what was Msg1+Msg3), and MsgB bundles the response (Msg2+Msg4). It cuts a round‑trip of latency — valuable in a beamed FR2 cell where each round trip can include a beam sweep — but the SSB‑to‑resource beam association is identical. Whichever variant, the crucial point for this book is that every one of these messages is beamed: Msg1's RO told the gNB the direction, so RAR, Msg3‑grant scheduling and Msg4 all stay in that beam pair.

Section 23.5Beam correspondence — the load-bearing assumption

The whole beamed‑access trick rests on one assumption: that a device can transmit in the direction it best receives. That is beam correspondence. The gNB needs it to answer "I heard your preamble on beam 1, so I'll send the RAR on beam 1." A well‑behaved FR2 UE needs it too: it heard SSB‑k best on a particular receive beam, so it transmits its preamble on the corresponding transmit beam, confident the gNB's matching beam will catch it.

When correspondence is good, access is fast and clean. When it is poor — a UE whose transmit and receive beam patterns don't line up — the preamble may leave in a slightly wrong direction and miss the gNB's receive beam, showing up as beam‑specific access failures even though the downlink looked fine. 3GPP makes beam correspondence a UE capability, and where it can't be assumed the UE must fall back to sweeping its own transmit beams across repeated PRACH attempts until one gets through — slower, but robust. Recognising a correspondence problem (uplink access fails while downlink SSB‑RSRP is strong) saves a lot of misdirected troubleshooting.

Section 23.6Dimensioning RACH for many beams

On a 4‑beam low‑band cell, RACH dimensioning is barely a thought. On a 64‑beam FR2 cell it becomes a real budget, because every beam needs enough access opportunity. The lever is ssb-perRACH-Occasion: set it below 1 and each SSB beam gets several ROs (lots of access capacity per beam, but many ROs consumed); set it above 1 and several beams share one RO, distinguished by which preambles each is allotted (frugal, but less capacity per beam). msg1-FDM then lets you place up to 8 ROs side by side in frequency within a slot, so you can cover more beams per unit time, and the association period sets how often the full beam‑to‑RO cycle repeats.

The art is matching access capacity to traffic per direction, not spreading it evenly. A beam covering a busy street needs more ROs (or its own preamble pool) than a beam pointing at a wall. Over‑provision and you waste uplink resource on empty beams; under‑provision a hot beam and you get preamble collisions and access delay exactly where the users are. This per‑beam thinking is what separates FR2 RACH planning from the cell‑level habits of LTE.

▸ Advanced · 3GPP deep-dive — 2-step RACH & RAR identifiers
RA-RNTI = f(symbol, slot, RO freq index, UL carrier) # addresses the RAR ra-ResponseWindow window to receive Msg2/MsgB (slots) 2-step MsgA = preamble + PUSCH ; MsgB = RAR + contention res msgA-PUSCH separate config; fallback MsgA->4-step if MsgB absent powerRampingStep / preambleTransMax ramp size & max attempts

The RA‑RNTI is computed from the RO's own time/frequency coordinates — so the UE and gNB independently agree on it with no signalling. If the ra-ResponseWindow expires with no RAR, the UE ramps power and retries (up to preambleTransMax), and may reselect a stronger SSB beam. 2‑step RACH defines a fallback: if the gNB only decodes the MsgA preamble (not its PUSCH), it can answer with a fallback RAR that drops the UE back to the 4‑step flow — robustness without losing the beam association.

Worked — access latency At FR2, 4‑step access can cost two beam round‑trips (Msg1→Msg2, Msg3→Msg4); 2‑step folds it to roughly one (MsgA→MsgB). On a 64‑beam cell where each leg may wait for the right beam occasion, halving the round‑trips is a meaningful cut in connection‑setup latency — the reason 2‑step matters most exactly where beams are narrowest.

Section 23.7Power ramping and beam reselection during access

Random access is not one shot — it is a controlled, escalating knock. The UE sends its first preamble at a power computed from the measured path loss and a target receive level. If no RAR arrives within the window, it assumes it wasn't heard, steps the power up by powerRampingStep, and tries again — repeating until it succeeds or hits preambleTransMax attempts, at which point it declares the attempt failed and may move on. This ramp is why a UE at the edge eventually gets in even if its first, conservative attempt was too quiet.

Crucially for this book, the UE may also reselect its SSB beam between attempts. If the beam it chose has faded (it turned, or a blocker arrived) it can pick the next‑best SSB above rsrp-ThresholdSSB and knock on that beam's RO instead. So access has its own little beam‑management loop baked in: ramp power, and if the beam went bad, switch beams. This is the embryo of the full beam‑failure recovery machinery you'll meet in Chapter 30 — same instinct, applied before the connection even exists.

Section 23.8Troubleshooting RACH & beam association

RACH problems are often beam problems in disguise. Split them by where they cluster.

SymptomLikely causeCheck / fix
Access fails on specific SSB beamsThose beams congested (collisions) or weakPer‑beam RACH load: add ROs (lower ssb-perRACH-Occasion) or fix coverage
UL access fails but DL SSB‑RSRP strongPoor UE beam correspondenceUE must sweep Tx beams; check UE capability — not a network fault
High preamble collision rateToo few preambles/ROs per beam vs loadEnlarge preamble pool, lower SSB‑per‑RO, add msg1-FDM
RAR (Msg2) timeoutsra-ResponseWindow too short, or gNB Rx beam missWiden window; verify RO→Rx‑beam mapping
Edge UEs need many attemptsPower ramping from too low a startTune target level & powerRampingStep; check preambleTransMax

The single most useful split, again: a capability issue (beam correspondence — tied to the device, same everywhere) versus a resource/coverage issue (RO budget, preamble pool, RSRP — varies by beam and load). Get that right and most RACH tickets resolve quickly.

Section 23.93GPP map, KPIs & field note

Concept3GPP home
SSB-to-RO mapping, RACH config, beam-based RATS 38.213 §8, TS 38.211 §6.3.3
RACH-ConfigCommon / DedicatedTS 38.331
CFRA for beam failure recoveryTS 38.213 §6 (Ch.30)

KPIs: RACH success rate per SSB beam, Msg2 (RAR) latency, preamble collision rate, per‑beam RACH load. Field note: "Random‑access failures concentrate on certain SSB beams." Either those beams cover high‑traffic directions and their ROs are congested (collisions) — add ROs per SSB (lower ssb-perRACH-Occasion) — or the beam is weak and users fall below rsrp-ThresholdSSB. Beam‑level RACH dimensioning matters as much as cell‑level.

Interview · Takeaways · Summary

"How does the UE's first uplink message convey its beam?"
Via SSB‑to‑RO mapping: each SSB beam is associated with specific PRACH occasions/preambles. The UE sends Msg1 on the RO tied to its best SSB, so the gNB infers the beam from where the preamble arrives — no explicit signalling.
"What is beam correspondence?"
The ability to transmit in the same direction one best receives. It lets the gNB beamform Msg2/RAR back in the beam it detected the preamble on, and lets the UE point its Tx where it heard the strongest SSB. If a UE lacks it, it must sweep its Tx beams across PRACH attempts.
"Walk the 4‑step RACH and where the beam lives."
Msg1 preamble on the SSB‑tied RO (→ RA‑RNTI, conveys the beam); Msg2 RAR within ra‑ResponseWindow (TA + grant + TC‑RNTI, beamed back); Msg3 RRC request on PUSCH; Msg4 contention resolution (→ C‑RNTI). The beam pair set by Msg1's RO carries through all four.
"4‑step vs 2‑step RACH — when and why?"
2‑step folds Msg1+Msg3 into MsgA and Msg2+Msg4 into MsgB, saving ~one round‑trip — valuable at FR2 where each leg may wait for a beam occasion. It keeps the same SSB‑to‑resource beam association and can fall back to 4‑step if only the MsgA preamble is decoded.
"How does ssb-perRACH-Occasion affect capacity?"
<1: each SSB gets multiple ROs (more access capacity per beam). >1: several SSBs share an RO, split by preambles (frugal, less per beam). With 64 FR2 beams it directly sizes the RACH budget — provision hot beams more than empty ones.
"Access fails on one beam but downlink looks fine — diagnosis?"
Two candidates: that beam's ROs are congested (collisions on a busy direction) → add ROs/preambles; or poor UE beam correspondence so the preamble leaves mis‑pointed → UE‑capability issue, expect Tx‑beam sweeping. Strong DL SSB‑RSRP + failing UL access points at correspondence.
  • SSB‑to‑RO mapping encodes the UE's beam in its choice of RACH resource — beam by location, no extra bits.
  • The full exchange (4‑step Msg1–4 with RA‑/TC‑/C‑RNTI and the RAR window, or 2‑step MsgA/MsgB) stays beamed end to end.
  • Beam correspondence is the load‑bearing assumption; without it the UE sweeps Tx beams during access.
  • CBRA for first access, CFRA (dedicated preamble) for handover & beam‑failure recovery.
  • ssb-perRACH-Occasion + msg1-FDM + association period dimension RACH per beam — critical at FR2 (64 beams); match capacity to traffic per direction.

The UE is now connected and beamed, coarsely. The remaining job is precision: turning that wide SSB beam into a tight, tracked serving beam. In Chapter 24 — CSI‑RS Based Beam Refinement, we detail the fine beam training — CSI‑RS sweeps, CRI reporting, and the P2/P3 refinement — that sharpens and maintains the beam in connected mode.

— end of Chapter 23 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eight — NR Beam Management
CHAPTER TWENTY-FOUR

CSI-RS Based
Beam Refinement

"SSB gets you in the right neighbourhood. CSI-RS gets you to the right door."

The SSB sweep (Chapter 22) gave the UE a coarse beam — one of a handful of wide directions. But massive‑MIMO gain lives in narrow beams, far tighter than any SSB. The job of refining that coarse beam into a precise, tracked serving beam — and then keeping it aligned as the user moves — belongs to CSI‑RS, in connected mode. This chapter details the fine beam training: the CSI‑RS beam sweep, CRI reporting, and the P2 (gNB Tx) and P3 (UE Rx) refinement procedures that sharpen the link and maintain it.

ObjectivesWhat you'll walk away knowing

  • Explain how narrow CSI‑RS beams refine the wide SSB beam, and how P1→P2→P3 chain in connected mode.
  • Walk CRI reporting in depth: cri-RSRP vs cri-SINR, group‑based reporting, and report timing.
  • Distinguish P2 (gNB Tx refinement) and P3 (UE Rx refinement) via the repetition flag, and why both are needed at FR2.
  • Choose periodic / semi‑persistent / aperiodic refinement and weigh the overhead‑vs‑tracking trade.
  • Understand hierarchical (coarse‑to‑fine) beam books and how a tracking RS (TRS) keeps time/frequency aligned alongside.
  • Connect refinement cadence to mobility, and troubleshoot sawtooth SINR and CRI instability.

Section 24.1From wide SSB to narrow CSI-RS

Within the coverage of the chosen SSB beam, the gNB configures several narrower CSI‑RS beams and sweeps them (Chapter 19). The UE measures each and reports the strongest as a CRI (CSI‑RS Resource Indicator). The result is a serving beam far tighter than the SSB — more array gain, higher SINR, but also more sensitive to pointing. This coarse‑to‑fine handoff (SSB → CSI‑RS) is the heart of NR downlink beam refinement.

coarse SSB beam → narrow CSI-RS beams → best CRI wide SSB beam (coarse) best (CRI) narrow CSI-RS beams inside the SSB beam; UE reports strongest CRI → tight serving beam
Figure 24.1 · CSI-RS sweeps narrow beams inside the coarse SSB beam; the UE reports the best
How to read this picture The light fan is the wide SSB beam the UE acquired during access. Inside it, the gNB now sweeps several narrow CSI‑RS beams (thin lines) and the UE measures each, reporting the strongest as a CRI. The selected beam is much tighter than the SSB — more gain and SINR, but it must be kept precisely pointed. This is the connected‑mode refinement that turns "roughly toward the user" into "locked on" — and it repeats continuously to track the user as they move.
P3: gNB Tx beam fixed, UE sweeps its Rx beams (repetition=ON) fixed Tx beam UE tries Rx beamskeeps the best P3 refines the UE side — essential at FR2 where the UE's beam is narrow too
Figure 24.2 · P3 — refining the UE's receive beam against a fixed Tx beam
How to read this picture After P2 fixes the gNB's transmit beam, P3 holds it steady (CSI‑RS repetition=on) while the UE cycles through its own receive beams and keeps the best. At FR2 both ends are narrow, so aligning the UE's Rx beam is as important as the gNB's Tx beam.
refinement period must beat the beam-dwell time CSI-RS refinement user crosses beams pedestrian: 100s of ms · vehicle/FR2: every few ms (else beam lags → sawtooth)
Figure 24.3 · Match refinement cadence to mobility, or the beam lags
How to read this picture The CSI‑RS refinement period sets how fast the serving beam re‑aligns. If it's slower than the user's beam‑dwell time, the tight beam keeps trailing the user and SINR sawtooths — so fast/FR2 users need much shorter (or aperiodic) refinement than pedestrians.

Section 24.2P2 and P3 — sharpen both ends

Refinement sharpens both sides of the link. P2 (CSI‑RS repetition=off): the gNB sweeps different transmit beams; the UE reports the best CRI → the gNB's Tx beam is refined. P3 (CSI‑RS repetition=on): the gNB holds its Tx beam fixed while the UE tries its own receive beams → the UE's Rx beam is refined (no report needed; the UE just learns its best Rx setting). Together they align a tight Tx beam to a tight Rx beam — essential at FR2 where both ends are narrow.

▸ Advanced · 3GPP deep-dive — CSI-RS for beam management
NZP-CSI-RS-ResourceSet for BM: repetition = OFF → P2: different Tx beams, report cri-RSRP (best CRI) repetition = ON → P3: same Tx beam, UE sweeps Rx beams (refine Rx) report (CSI-ReportConfig): reportQuantity = cri-RSRP | cri-SINR(R16) nrofReportedRS ≤ 4 ; periodic / semi-persistent / aperiodic resource 1–2 ports per beam (BM), narrow beam per resource trigger aperiodic via DCI for on-demand refinement (mobility)

BM CSI-RS resources are typically 1–2 ports (you're measuring a beam, not a MIMO channel). The gNB picks the new serving beam from the reported CRI and indicates it via TCI (Ch.25). Refinement cadence is the key knob: periodic CSI-RS gives steady tracking; aperiodic triggers on-demand for fast UEs. Faster refinement = better tracking but more overhead.

Worked — tracking vs mobility A pedestrian (3 km/h) needs refinement every ~100s of ms; a vehicle (120 km/h) at FR2 may need it every few ms (coherence time ~0.3 ms at 28 GHz). If the CSI-RS BM period exceeds the beam-dwell time, the beam lags the user → SINR sawtooth and eventual failure (Ch.30/31). Match BM periodicity to the served mobility.

Section 24.3The connected-mode refinement loop

Step back and see the loop whole. Access (Chapter 23) leaves the UE on a coarse SSB beam. The moment it is connected, the gNB can configure UE‑specific CSI‑RS and the refinement loop begins: P2 sharpens the gNB's transmit beam, P3 sharpens the UE's receive beam, and the resulting tight pair is then indicated to the UE (Chapter 25) and used for data. Crucially, the loop does not run once — it runs continuously, re‑measuring and re‑pointing, because the user keeps moving. SSB acquisition is a one‑off; CSI‑RS refinement is a heartbeat.

The ordering matters. You generally refine the gNB's transmit beam first (P2) because that's where most of the array gain lives and it needs the UE only to report, not to sweep. Then, with a good fixed transmit beam to listen to, the UE refines its own receive beam (P3). At FR1 the UE's beam is broad enough that P3 is often skipped; at FR2, where the UE itself is directional, P3 is essential — a perfectly pointed gNB beam is wasted if the UE's narrow receive beam is looking the wrong way. The two procedures are the same CSI‑RS machinery with the repetition flag flipped, which is why they feel like one mechanism.

Section 24.4CRI reporting, in depth

The report the UE sends back is small but carries the whole decision. Its core is the CRI — the index of the CSI‑RS resource (beam) the UE liked best — paired with a measured quality. Classic NR reports cri-RSRP (received power of the beam); Release 16 added cri-SINR, which is often the better metric because the strongest beam by raw power is not always the strongest by signal‑to‑interference — in an interference‑limited cell a slightly weaker but cleaner beam can carry more. Choosing the right report quantity is a real tuning decision.

Two more levers shape the report. nrofReportedRS (up to 4) lets the UE return not just the best beam but a ranked shortlist — the runners‑up become ready candidates for fast switching and beam‑failure recovery (Chapter 30). And group‑based beam reporting asks the UE for beams it can receive at the same time with two different receive panels — the enabler for multi‑TRP, where the UE is served by two transmission points at once. So a CRI report can mean "this one beam," "these four candidates," or "this pair I can hold simultaneously," depending on how it's configured.

▸ Advanced · 3GPP deep-dive — L1-SINR, group-based reporting & TRS
reportQuantity cri-RSRP | cri-SINR (Rel-16) | ssb-Index-RSRP nrofReportedRS 1..4 # ranked beam shortlist groupBasedBeamReporting enabled -> 2 beams the UE can Rx simultaneously L1-SINR needs an interference measurement resource (CSI-IM / NZP-IMR) TRS = NZP-CSI-RS for tracking (trs-Info): 2 slots x 2 RS, time/freq sync

L1‑SINR needs an interference reference (CSI‑IM or a configured NZP interference resource) so the UE can divide signal by interference+noise, not just measure power. Group‑based reporting underpins multi‑TRP beam pairs. And running quietly alongside beam refinement is the TRS (tracking reference signal — a special CSI‑RS with trs-Info): it keeps the UE's time and frequency synchronisation tight so that the beam measurements themselves stay accurate. Beam refinement assumes good sync; the TRS provides it.

Worked — RSRP vs SINR pick Beam A: RSRP −80 dBm but sitting in a neighbour's interference (SINR 6 dB). Beam B: RSRP −84 dBm but clean (SINR 14 dB). By cri-RSRP the UE picks A and gets a poor link; by cri-SINR it picks B and carries far more. In interference‑limited cells, configure SINR‑based reporting.

Section 24.5How often to refine — the overhead trade

The single biggest knob in beam refinement is not the beam shapes — it's how often you refine. NR offers three timings (the same family as Chapter 19). Periodic CSI‑RS gives steady, predictable tracking but burns overhead whether the user moves or not. Semi‑persistent is periodic that the gNB switches on and off with a MAC CE, so the cost is paid only while a UE actually needs tracking. Aperiodic is a single sweep triggered by DCI exactly when the scheduler wants fresh beam info — minimum overhead, maximum responsiveness, ideal for bursty or fast users.

The right choice follows the user. A stationary fixed‑wireless CPE barely needs refinement at all — a slow periodic or occasional aperiodic sweep suffices. A pedestrian wants a modest periodic cadence. A fast vehicle at FR2 needs frequent or aperiodic refinement because its beam‑dwell time is milliseconds. Spend refinement overhead where the channel is changing, and save it where it isn't — a cell that refines every UE at the fast rate wastes a large fraction of its resources sounding beams that haven't moved.

Section 24.6Hierarchical beam books — coarse to fine in practice

How does the gNB avoid sweeping hundreds of narrow beams every refinement? With a hierarchical beam book: a small set of wide beams to find the rough direction, then a set of narrow beams only within the winning wide beam. SSB is effectively the top of this hierarchy; CSI‑RS refinement is the next level or two down. Rather than test every pencil beam in the sector, the gNB tests a handful of wide beams, then a handful of narrow ones inside the winner — turning an order‑N search into roughly a log‑N one.

This is also where machine learning is starting to help (Chapter 40): instead of sweeping even the narrow set, a model can predict the best narrow beam from a sparse measurement of a few wide ones, cutting the sweep further. Either way, the design principle is the same one that runs through the whole book — don't measure everything when structure lets you measure cleverly. A well‑designed beam book is the difference between refinement that scales to 64 beams and refinement that drowns in its own overhead.

Section 24.7Troubleshooting CSI-RS beam refinement

Refinement problems show up as unstable or lagging beams. Localise by symptom.

SymptomLikely causeCheck / fix
Narrow‑beam SINR sawtooths (moving UE)Refinement slower than beam‑dwell timeShorten CSI‑RS BM period / trigger aperiodic; or widen serving beam
CRI flaps between beamsOverlapping beams, RSRP ties, no hysteresisUse cri-SINR; add beam‑switch hysteresis; check beam overlap
Good gNB beam but UE still weak (FR2)P3 skipped — UE Rx beam mis‑alignedEnable P3 (repetition=on) so UE refines its Rx beam
Picks a strong‑power but poor‑throughput beamReporting cri-RSRP in an interference‑limited cellSwitch to cri-SINR with a CSI‑IM resource
Refinement overhead too highFast periodic CSI‑RS on slow/stationary UEsMove slow UEs to semi‑persistent/aperiodic; reserve fast rate for movers

The discriminator here is speed vs gain. When a moving user's narrow beam keeps failing, the instinct is to widen the beam (less gain) — but often the real fix is to refine faster (keep the gain, chase the user). Reach for cadence before you sacrifice beamforming gain.

Section 24.83GPP map, KPIs & field note

Concept3GPP home
CSI-RS beam management (P2/P3), repetitionTS 38.214 §5.1, TS 38.211 §7.4
CRI / L1-RSRP / L1-SINR reportingTS 38.214 §5.2.1
Beam indication (TCI) of the refined beamTS 38.214 §5.1.5 (Ch.25)

KPIs: CRI stability, beam refinement gain (SINR after vs before), beam switch rate, refinement report drop. Field note: "Narrow‑beam SINR sawtooths for moving users." The CSI‑RS refinement cadence is slower than the user's beam dwell — the tight beam keeps lagging. Shorten CSI‑RS BM periodicity / trigger aperiodic refinement for fast UEs, or widen the serving beam to trade gain for robustness. The refinement loop's speed, not the beam's gain, is the limiter.

Interview · Takeaways · Summary

"How does CSI-RS refine the SSB beam?"
The gNB sweeps narrower CSI‑RS beams within the chosen SSB beam; the UE measures them and reports the best CRI, giving a tight serving beam. P2 (repetition=off) refines the gNB Tx beam; P3 (repetition=on) refines the UE Rx beam.
"P2 vs P3?"
P2 (repetition=off): different Tx beams swept, UE reports best CRI → gNB Tx refinement. P3 (repetition=on): fixed Tx beam, UE sweeps its own Rx beams → UE Rx refinement. Same CSI‑RS machinery, flag flipped; together they align both narrow ends, essential at FR2.
"cri-RSRP or cri-SINR — which and why?"
RSRP picks the strongest‑power beam; SINR (Rel‑16) picks the strongest net beam. In interference‑limited cells the highest‑power beam may sit in a neighbour's interference, so cri-SINR (with a CSI‑IM interference resource) chooses a cleaner, higher‑throughput beam.
"What is group‑based beam reporting for?"
It asks the UE to report two beams it can receive simultaneously (two panels). That's the enabler for multi‑TRP, where the UE is served by two transmission points at once.
"How do you keep refinement overhead sane on a big cell?"
Match cadence to mobility (aperiodic/semi‑persistent for slow UEs, fast periodic only for movers) and use a hierarchical beam book — wide beams to find the region, narrow beams only inside the winner — so the sweep is log‑like, not exhaustive.
"A fast user's narrow‑beam SINR sawtooths — widen the beam?"
Try cadence first. The sawtooth means refinement is slower than the beam‑dwell time, so shorten the CSI‑RS BM period or trigger aperiodic refinement — keep the gain and chase the user. Widening the beam (losing gain) is the last resort.
  • CSI‑RS turns the coarse SSB beam into a tight, continuously tracked serving beam via CRI reporting.
  • P2 (rep=off) refines gNB Tx; P3 (rep=on) refines UE Rx — both needed at FR2.
  • Report cri-RSRP or cri-SINR; return up to 4 candidates; group‑based reporting enables multi‑TRP.
  • Pick refinement timing (periodic/SP/aperiodic) by mobility; a hierarchical beam book + TRS keep it efficient and accurate.
  • Refinement cadence must beat the beam‑dwell time, or narrow beams lag the user (SINR sawtooth → failure). Fix speed before sacrificing gain.

The beam is now tight and tracked. But for the UE to actually receive PDCCH and PDSCH on that beam, the gNB must tell it which beam to assume — and tie it to channel properties the UE can rely on. That indication mechanism is the subject of Chapter 25 — Beam Indication, TCI and QCL: TCI states, QCL types, and how MAC CE and DCI point the UE's receiver at the right beam.

— end of Chapter 24 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eight — NR Beam Management
CHAPTER TWENTY-FIVE

Beam Indication,
TCI and QCL

"The gNB never says ‘use beam 7.’ It says ‘assume this channel behaves like that reference signal.’ That indirection is QCL."

Beam management found the best beam (Chapters 22–24). Now the gNB must tell the UE which beam to receive PDCCH and PDSCH with — and it does so through a beautifully indirect mechanism. Instead of "point your receiver at angle θ," NR says "this channel is quasi‑co‑located (QCL) with that reference signal" — meaning "assume it has the same beam and large‑scale properties as a signal you've already measured." The bundle of such assumptions is a TCI state. This chapter explains TCI, the four QCL types (especially Type D = the beam), and how MAC CE and DCI deliver the indication.

ObjectivesWhat you'll walk away knowing

  • Explain a TCI state as a QCL association between a target channel and a source RS.
  • Know the four QCL types A/B/C/D and that Type D = spatial Rx (the beam).
  • Walk the full indication pipeline: RRC configures the list, MAC CE activates a subset, DCI selects one.
  • Distinguish PDCCH (per‑CORESET, MAC CE) from PDSCH indication, and know the default beam rule.
  • Understand beam application time (timeDurationForQCL) and why it caps how fast beams can switch.
  • See Rel‑17 unified TCI and multi‑TRP indication, and troubleshoot post‑switch BLER spikes.

Section 25.1TCI = "behaves like this reference signal"

A TCI state links a target (e.g., PDSCH) to one or two source reference signals with a QCL relationship. The UE, having measured the source RS, already knows its beam direction and large‑scale channel properties — so it applies the same to the target. The crucial part for beams is the QCL Type D source: it tells the UE which receive beam to use. So "TCI state #k" effectively means "receive this channel with the same beam you used for CSI‑RS resource #k."

TCI state: target channel ← QCL → source reference signal PDSCH/PDCCH(target) TCI state #kQCL assoc. CSI-RS / SSB(source, measured) "receive the target with the same beam/properties as the source" — QCL Type D = the beam
Figure 25.1 · A TCI state tells the UE to receive a channel like a reference signal it already knows
How to read this picture Read right to left. The UE has already measured a source reference signal (a CSI‑RS beam or SSB) — it knows that signal's beam direction and channel statistics. A TCI state then declares the target channel (PDCCH/PDSCH) quasi‑co‑located with that source — so the UE receives the target using the same beam and assumptions. The gNB never transmits an angle; it transmits a pointer to a known reference signal. The QCL Type D part of that pointer is literally "use this beam," which is how the refined beam from Chapter 24 actually gets applied to data reception.
QCL types — which channel properties one RS lends another typeshared propertiestypical use ADoppler shift+spread, delay spread+meantracking RS BDoppler shift + spreadCSI-RS for tracking CDoppler shift + average delaycoarse timing/freq Dspatial Rx parameter (the beam!)FR2 beam indication QCL-Type D is the one that says "receive this with the same beam" — the heart of beam indication
Figure 25.5 · The four QCL types
How to read this picture Quasi-co-location (QCL) tells the UE that it may borrow channel properties measured on one reference signal to receive another. The four types differ in which properties: A and B share Doppler/delay statistics (for tracking), C shares coarse timing and frequency, and — crucially — Type D shares the spatial receive parameter, i.e. 'use the same beam'. Type D is the one that makes beam indication work at FR2: when the gNB says a PDSCH is QCL-Type-D with a given SSB/CSI-RS, the UE knows exactly which receive beam to point. Memorise this table; QCL questions are a beam-management interview staple.
MAC CE activates ≤8 TCI states · DCI (3 bits) picks one configured list(up to 128 TCI) MAC CEactivates ≤8 DCI 3-bit fieldpicks 1 per PDSCH two-stage signalling: slow MAC-CE shortlist + fast per-slot DCI selection
Figure 25.3 · Two-stage beam indication: MAC CE shortlists, DCI selects
How to read this picture A large list of TCI states is configured by RRC; MAC CE activates a working subset of up to 8; then a 3‑bit DCI field selects one per PDSCH for fast, per‑slot beam switching. This split keeps signalling cheap while allowing dynamic beam changes.
PDCCH beam (per-CORESET, MAC CE) vs PDSCH beam (DCI/follow) PDCCHTCI per CORESETset by MAC CE PDSCHDCI TCI field, orfollows PDCCH (short offset) control beam is semi-static; data beam can switch dynamically per grant
Figure 25.4 · Control vs data beam indication differ
How to read this picture PDCCH's beam is set semi‑statically per CORESET (MAC CE), while PDSCH's beam can change dynamically via the DCI TCI field — or simply follow the PDCCH beam when the scheduling offset is too short to apply a new one (timeDurationForQCL).

Section 25.2The four QCL types

QCL says "these two signals share certain large‑scale properties, so an estimate of one helps receive the other." Four types specify which properties:

QCL typeShared propertiesUse
Type ADoppler shift, Doppler spread, average delay, delay spreadfull large‑scale (from TRS)
Type BDoppler shift, Doppler spreadfrequency/time tracking
Type Caverage delay, Doppler shiftcoarse (SSB‑based)
Type DSpatial Rx parameter (the beam)which Rx beam to use

A TCI state usually carries two QCL references: one for the large‑scale params (Type A, from a TRS) and one for the beam (Type D, from a CSI‑RS/SSB). Type D is the one that matters for beam indication — it's how "the beam" is signalled. (At FR1 with wide beams, Type D may be absent; at FR2 it's essential.)

▸ Advanced · 3GPP deep-dive — TCI-State & indication signalling
TCI-State (TS 38.331; procedures TS 38.214 §5.1.5): qcl-Type1: { referenceSignal: SSB|CSI-RS , qcl-Type: typeA|B|C|D } qcl-Type2: { referenceSignal , qcl-Type } (often typeD for beam) PDCCH beam per-CORESET TCI, activated by MAC CE (TCI-StatesPDCCH) PDSCH beam up to 8 active TCI states (MAC CE from list) ; DCI "TCI" field (3 bits) selects if tci-PresentInDCI=off & offset < timeDurationForQCL → PDSCH follows PDCCH's beam Unified TCI (R17) common DL/UL TCI (joint or separate), reduces signalling

The split is: MAC CE activates a working subset of TCI states; DCI (3-bit field) picks one per PDSCH for fast, dynamic beam switching. timeDurationForQCL is the minimum time the UE needs to apply a new Type-D beam (it must physically re-point its Rx). R17 unified TCI streamlines the per-channel patchwork into one indication for DL and UL.

Worked — beam switch latency A DCI TCI change to a new Type-D beam takes effect only after timeDurationForQCL (e.g., a few-to-tens of µs depending on UE capability); if the scheduling offset is shorter, the UE keeps the old/default beam. This bounds how fast you can switch beams per-slot — a real FR2 mobility constraint (Ch.31).

Section 25.3The indication pipeline: RRC → MAC CE → DCI

Beam indication is deliberately built as a three‑stage funnel, and understanding why explains a lot of NR's signalling design. At the top, RRC configures a large pool of TCI states — up to 128 — once, slowly, when the UE is set up. That pool is far too big to point into with a few DCI bits every slot, and most of it is irrelevant to a UE at any given moment. So the middle stage, a MAC CE, activates a working subset of up to 8 of those states. Finally the bottom stage, a 3‑bit DCI field, selects one of those 8 per PDSCH — fast enough to change every slot.

The reason for three stages rather than one is the classic trade between flexibility and signalling cost. You want a huge catalogue of possible beams (RRC), but you cannot afford to name any of 128 with per‑slot signalling. So you keep a small, recently relevant shortlist alive (MAC CE, updated on the timescale of seconds) and spend only 3 cheap bits per grant to choose within it (DCI). It is the same coarse‑slow / fine‑fast pattern you saw in CSI reporting and codebooks — a recurring NR design instinct worth recognising.

Section 25.4PDCCH, PDSCH and the default beam

Control and data are indicated differently, for a good reason: the UE has to decode PDCCH before it can read any DCI, so PDCCH's own beam cannot be set by DCI — it would be circular. Instead, each CORESET (the search space where PDCCH lives) is given a TCI semi‑statically by MAC CE. The control beam therefore changes slowly and deliberately. PDSCH, by contrast, is scheduled by a DCI that has already been decoded, so it can carry a fresh TCI selection per grant — dynamic, per‑slot data beams.

But what beam does PDSCH use when the gap between the scheduling DCI and the data is too short to apply a new Type‑D beam? The standard defines a default beam: the UE falls back to the QCL assumption of the CORESET with the lowest ID in the latest monitored slot — effectively "receive the data with the same beam as the control channel." This is the "PDSCH follows PDCCH" mode, and it is not an edge case: for low‑latency scheduling with tiny offsets it is the normal behaviour. Knowing the default‑beam rule is essential, because a surprising amount of real PDSCH simply inherits the control beam.

Section 25.5Beam application time — the switch-latency wall

Pointing a receiver is not free at FR2. When the UE is told to adopt a new Type‑D beam, it must physically re‑steer its antenna — change phase‑shifter settings, settle — and that takes time. 3GPP captures this as timeDurationForQCL (and related beamSwitchTiming), a UE‑reported capability typically in the tens of microseconds. The hard rule: if the scheduling offset between the TCI‑bearing DCI and the PDSCH is shorter than this duration, the UE cannot have applied the new beam yet, so it uses the old or default beam instead.

This creates a real ceiling on how fast beams can switch, and it is the root of a classic field symptom: PDSCH BLER spiking immediately after a beam switch. The gNB told the UE to switch, but scheduled the data too soon for the UE to re‑point, so the first transmissions land on the wrong beam. The fix is timing, not power — give the UE enough offset after a TCI change, or accept the default‑beam mode for short offsets. This switch‑latency wall is also why high‑mobility FR2 (Chapter 31) is so demanding: the channel changes on a timescale uncomfortably close to how fast the UE can re‑aim.

Section 25.6Unified TCI (Rel-17) and multi-TRP

The per‑channel patchwork above — separate TCI handling for PDCCH, PDSCH, and a parallel set of mechanisms for uplink — grew unwieldy. Release 17 introduced the unified (common) TCI framework: a single indicated TCI that applies across downlink channels and, in the "joint" mode, to the uplink too (a "separate" mode keeps DL and UL TCIs distinct when their beams differ). One indication, less signalling, and a cleaner mental model — the beam becomes a property of the UE's link rather than of each channel separately.

Indication also has to cope with multi‑TRP, where two transmission points serve one UE. There the UE needs two active beams at once, so two TCI states are indicated together, one per TRP — which is exactly why group‑based beam reporting (Chapter 24) existed to find a pair of simultaneously‑receivable beams in the first place. Unified TCI and multi‑TRP indication are where beam management is heading: fewer, broader indications that describe a whole link or a coordinated pair, rather than per‑channel pointers.

▸ Advanced · 3GPP deep-dive — default beam & unified TCI (Rel-17)
default PDSCH beam QCL of CORESET with lowest ID in latest monitored slot applies when offset < timeDurationForQCL OR tci-PresentInDCI = off beamSwitchTiming UE capability {14,28,48,224,336} symbols (reported) unified TCI (R17) jointTCI (DL+UL common) | separate DL/UL TCI indicated TCI applies to PDSCH/PDCCH/PUSCH/PUCCH/SRS by rule mTRP two active TCI states indicated together (one per TRP)

The default beam rule (lowest‑ID CORESET QCL) is what the UE uses whenever it can't apply an explicit new beam in time — a frequent case in low‑latency scheduling. beamSwitchTiming tells the gNB how many symbols the UE needs to re‑point. Unified TCI replaces the per‑channel mess with one indication governing the whole link; multi‑TRP carries two such states for the two serving points.

Worked — default vs explicit A URLLC grant with a 2‑symbol offset and a UE needing 28 symbols to switch: the explicit TCI cannot apply, so the UE uses the default (lowest‑CORESET) beam. If the scheduler assumed the new beam, the data lands mis‑pointed → BLER spike. For tight‑offset traffic, design around the default beam rather than fighting it.

Section 25.7Troubleshooting beam indication

Indication faults are timing and pointer faults — the beam quality may be perfect while the indication goes wrong. Localise by symptom.

SymptomLikely causeCheck / fix
PDSCH BLER spikes right after a beam switchData scheduled before timeDurationForQCL elapsedIncrease offset after TCI change, or rely on default‑beam mode
UE seems to ignore the indicated beamOffset < switch time → default beam usedCheck beamSwitchTiming; lengthen offset; verify tci-PresentInDCI
PDCCH unreliable after mobilityCORESET TCI stale (MAC CE not updated)Update per‑CORESET TCI via MAC CE to the current beam
No Type‑D applied (FR1 works, FR2 fails)TCI lacks a Type‑D source RSEnsure TCI carries a Type‑D (CSI‑RS/SSB) reference at FR2
mTRP UE drops one streamOnly one TCI active / wrong beam pairIndicate two TCI states; check group‑based report (Ch 24)

The discriminator: separate an indication‑timing fault (BLER only right after switches, clears once settled — fix offsets) from a beam‑quality fault (persistently low SINR regardless of switching — that's refinement/coverage, Chapters 24/37). Beam indication problems are almost always about when, not which.

Section 25.83GPP map, KPIs & field note

Concept3GPP home
TCI states, QCL types, beam indicationTS 38.214 §5.1.5
TCI-State / CORESET / MAC CE / DCI fieldsTS 38.331, TS 38.321, TS 38.212
Unified TCI (R17)TS 38.214 (R17)

KPIs: TCI switch rate, beam application latency, PDCCH/PDSCH beam mismatch (BLER spikes after switch). Field note: "PDSCH BLER spikes briefly after every beam switch." The new Type‑D beam needs timeDurationForQCL to apply; if DCI schedules data too soon after the TCI change, the UE receives with the wrong/default beam. Increase the scheduling offset after TCI updates, or use the "PDSCH follows PDCCH beam" mode for short offsets. Beam indication timing, not beam quality, is the culprit.

Interview · Takeaways · Summary

"What is a TCI state and QCL Type D?"
A TCI state associates a target channel with source RS(s) via QCL — the UE assumes the target shares the source's properties. QCL Type D shares the spatial Rx parameter, i.e. tells the UE which receive beam to use. It's how the beam is indicated.
"How are PDCCH and PDSCH beams indicated?"
PDCCH: a TCI per CORESET, activated semi‑statically by MAC CE (it must, since the UE decodes PDCCH before any DCI). PDSCH: MAC CE activates up to 8 TCI states, and a 3‑bit DCI TCI field selects one per transmission for fast switching — or PDSCH follows the lowest‑ID CORESET's beam (the default beam) for short offsets.
"Why a three‑stage RRC→MAC CE→DCI funnel?"
Flexibility vs cost. RRC holds a big pool (≤128) but is slow; you can't name 128 with per‑slot bits. MAC CE keeps a relevant shortlist (≤8) alive on a seconds timescale; a 3‑bit DCI then picks within it every slot. Coarse‑slow + fine‑fast.
"What is the default beam and when is it used?"
The QCL assumption of the lowest‑ID CORESET in the latest monitored slot. The UE falls back to it whenever the scheduling offset is shorter than timeDurationForQCL (or tci-PresentInDCI=off) — common for low‑latency traffic, so PDSCH often just inherits the control beam.
"PDSCH BLER spikes after every beam switch — why?"
The UE needs timeDurationForQCL/beamSwitchTiming to physically re‑point. If data is scheduled sooner, it lands on the old/default beam → a brief BLER spike that clears once settled. It's an indication‑timing problem, not beam quality — lengthen the offset after a TCI change.
"What did Rel‑17 unified TCI change?"
It replaced the per‑channel TCI patchwork with one common indication governing DL (and, in joint mode, UL) channels — less signalling, a cleaner model. Multi‑TRP indicates two TCI states together, one per transmission point.
  • A TCI state = QCL association (target ↔ source RS); the gNB indicates a beam by pointing to a known RS, not an angle.
  • QCL Type D = the beam (spatial Rx); Types A/B/C carry large‑scale time/frequency properties.
  • Indication is a funnel: RRC pool (≤128) → MAC CE activates (≤8) → DCI selects (3 bits) per PDSCH.
  • PDCCH beam is per‑CORESET (MAC CE); PDSCH can switch per‑grant or fall back to the default beam (lowest‑ID CORESET) for short offsets.
  • New Type‑D beams need timeDurationForQCL to apply — the switch‑latency wall behind post‑switch BLER spikes; Rel‑17 unified TCI streamlines it all.

That completes Part 8 — the full downlink beam life cycle, from SSB acquisition to TCI indication. But beams aren't only downlink. The uplink has its own MIMO and beamforming, driven by SRS. Part 9 opens with Chapter 26 — Uplink MIMO and Beamforming: codebook vs non‑codebook UL, PUSCH beamforming, and the SRI that points the uplink beam.

— end of Chapter 25 · end of Part 8 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Nine — Uplink Beamforming and SRS
CHAPTER TWENTY-SIX

Uplink MIMO
and Beamforming

"On the downlink the gNB beamforms for the UE. On the uplink the UE beamforms — but the gNB still calls the shots."

Everything so far has been downlink‑centric. But the uplink also does MIMO and beamforming — with a twist: the transmitter is now the power‑ and antenna‑limited UE, and the gNB, which has the big array and the channel knowledge, directs the UE's transmission. NR offers two ways to do this — codebook and non‑codebook uplink — both anchored on the SRS. This chapter covers UL transmission schemes, PUSCH beamforming, and how the gNB tells the UE which beam/precoder to use.

ObjectivesWhat you'll walk away knowing

  • Distinguish codebook (gNB signals TPMI/TRI) vs non‑codebook (UE forms beams, gNB picks via SRI) uplink, and when each is used.
  • Read the DCI 0_1 uplink grant: how the SRI and the "Precoding information and number of layers" field carry the precoder and rank.
  • Explain PUSCH beamforming and the role of SRS (usage=codebook/nonCodebook) as the anchor for both schemes.
  • Understand UE antenna‑coherence classes (non / partial / fully coherent) and how codebookSubset caps the usable TPMI set — the hidden ceiling on UL beamforming gain.
  • See why the uplink is power‑limited: PUSCH/SRS power control, power headroom (PHR), and how beamforming partly offsets the UE's low transmit power.
  • Know the UL limits (≤4 layers, nrofSRS-Ports ∈ {1,2,4}) and how to troubleshoot weak UL beamforming, stuck UL rank, and SRI/TPMI instability.

Section 26.1Codebook vs non-codebook uplink

Two philosophies, mirroring downlink precoding (Chapter 14). Codebook UL: the UE sends SRS; the gNB estimates the uplink channel, picks a precoder from the UL codebook, and signals it back as a TPMI (Transmit Precoding Matrix Indicator) + TRI (rank) in the DCI uplink grant. The UE applies it. Non‑codebook UL: the UE itself forms candidate beams (typically from the downlink CSI‑RS, exploiting reciprocity), sends SRS on each, and the gNB tells it which one to use via the SRI (SRS Resource Indicator). Codebook = gNB computes the precoder; non‑codebook = UE proposes beams, gNB selects.

CODEBOOK UL (TPMI/TRI) UE gNB SRS ↑ TPMI+TRI ↓ (DCI) gNB computes precoder from SRS, signals index NON-CODEBOOK UL (SRI) UE gNB SRS beams ↑ SRI ↓ (pick beam) UE forms beams (from DL CSI-RS), gNB selects one
Figure 26.1 · Codebook UL: gNB signals the precoder (TPMI). Non-codebook UL: gNB selects a UE-formed beam (SRI)
How to read this picture Both start with the UE sending SRS up (red). Left, codebook: the gNB estimates the UL channel from the SRS, picks a precoder from the UL codebook, and sends back the index — TPMI (which precoder) + TRI (rank) — in the DCI grant; the UE applies it. Right, non‑codebook: the UE forms its own candidate beams (often from the downlink CSI‑RS via reciprocity), sounds each with a separate SRS resource, and the gNB replies with an SRI picking the best one. Codebook = gNB computes the precoder; non‑codebook = UE proposes, gNB selects. Either way the gNB, with its big array and channel view, directs the UE.
UL beamforming: the UE applies the precoder, beams toward the gNB UE gNB precoder fromTPMI or SRI power-limited UE forms the beam; gNB tells it which precoder/beam to use
Figure 26.2 · Uplink beamforming — the UE transmits the beam, gNB-directed
How to read this picture On the uplink the power‑ and antenna‑limited UE applies the precoder and beams toward the gNB. The gNB still calls the shots — telling the UE which precoder (codebook TPMI) or which sounded beam (non‑codebook SRI) to use.
UL chain: codeword → ≤4 layers (vs ≤8 DL) codeword ≤ 4 layers DL allows up to 8; UL is capped at 4 UE coherence class limits which precoders (and hence rank) are usable
Figure 26.3 · The uplink caps at 4 layers, and UE coherence limits precoders
How to read this picture The uplink supports up to 4 layers (vs 8 downlink). On top of that, the UE's coherence capability (non/partial/fully‑coherent) restricts which TPMIs — and therefore which ranks and beamforming gains — it can actually use.
▸ Advanced · 3GPP deep-dive — UL precoding signalling (TS 38.214 §6.1)
txConfig codebook | nonCodebook codebook UL: DCI 0_1 carries SRI + "Precoding info & #layers" → TPMI + TRI codebookSubset: fullyAndPartialAndNonCoherent | partialAndNonCoherent | nonCoherent maxRank ≤ 4 ; nrofSRS-Ports {1,2,4} non-codebook UL: up to 4 SRS resources (1 port each), DCI SRI selects ≤4 → layers UE derives SRS precoders from associated NZP-CSI-RS (reciprocity)

Coherence classes matter: a "nonCoherent" UE can't maintain phase coherence across its PAs, so only antenna-selection precoders are allowed; "fullyCoherent" UEs can use full precoders. codebookSubset restricts the TPMI set to what the UE supports. UL caps at 4 layers (vs 8 DL). Non-codebook leans on DL/UL reciprocity (TDD); codebook works in FDD too.

Worked — coherence A 4-Tx UE that's only "partialAndNonCoherent" can coherently combine pairs of antennas but not all four → its TPMI set excludes fully-coherent rank-1 precoders, capping UL beamforming gain. Knowing UE coherence capability is essential when diagnosing weak UL beamforming.

Section 26.2Codebook uplink, in detail

Let me slow down on the codebook path, because it is the one you meet first in FDD and the one most field problems trace back to. The sequence is simple to state and easy to get wrong in practice: the UE transmits SRS configured with usage=codebook; the gNB measures the uplink channel on those SRS ports; it picks the best precoder from a standardised uplink codebook; and it signals that choice back inside the uplink grant. Nothing about the precoder is invented on the fly — both ends share the same printed codebook (TS 38.211 §6.3.1.5), so the gNB only has to send an index.

Two fields in DCI format 0_1 carry the decision. The SRI (SRS Resource Indicator) selects which SRS resource — i.e. which set of antenna ports — the precoder applies to. The "Precoding information and number of layers" field carries the TPMI (which precoder in the codebook) and, implicitly, the TRI (how many layers). Read an uplink grant and those are the bytes that decide your uplink MIMO.

The number of SRS ports the UE advertises — nrofSRS-Ports ∈ {1, 2, 4} — sets the size of the codebook. A 1‑port UE has nothing to precode (rank 1, no choice). A 2‑port UE chooses among a small set of rank‑1 and rank‑2 precoders. A 4‑port UE has the richest set, reaching rank 4. But here is the catch that trips up newcomers: the achievable subset of that codebook is gated by the UE's coherence class (Section 26.4). Two 4‑port UEs on the same cell can show very different uplink because one may use coherent precoders and the other may be restricted to antenna selection.

▸ Advanced · 3GPP deep-dive — UL codebook structure (TS 38.211 §6.3.1.5)
precoder W = uplink codebook entry indexed by TPMI, for given (ports, rank) 2-port rank-1: 6 entries (incl. antenna selection + co-phased); rank-2: 1–3 entries 4-port rank-1: up to 28 entries; rank-2/3/4: progressively fewer DFT-s-OFDM transform precoding ⇒ rank-1 only (single-layer waveform for coverage) CP-OFDM full rank set available

The codebook entries fall into families: pure antenna selection (one column non‑zero — usable by any UE), co‑phased combining (two or more ports driven with a fixed relative phase — needs coherence), and combinations for higher rank. When the waveform is DFT‑s‑OFDM (transform precoding, chosen for cell‑edge coverage) the uplink is restricted to rank 1 — you trade multiplexing for the lower peak‑to‑average power that buys range.

Worked — 2-port FDD UE A 2‑Tx FDD phone with codebookSubset=nonCoherent is offered only the two antenna‑selection rank‑1 precoders (TPMI 0 and 1) plus the rank‑2 identity. It can never co‑phase its two antennas, so it gets diversity/selection on the uplink but no coherent array gain — exactly the behaviour you'll see as "UL beamforming gain ≈ 0 dB" on such a UE.

Section 26.3Non-codebook uplink, in detail

The non‑codebook path moves the intelligence into the UE and, in practice, only shines in TDD, where reciprocity holds (Chapter 28). Here the UE does not wait to be handed a precoder. The gNB associates one of the UE's SRS resource sets with a downlink NZP‑CSI‑RS; the UE measures that CSI‑RS, and — because uplink and downlink share the band — it computes its own transmit precoders directly from the channel it just saw (conceptually, the strong right‑singular vectors of H). It applies one computed precoder per SRS resource, sounds up to four single‑port SRS resources, and lets the gNB judge them on the air.

The gNB then sends an SRI that selects up to four of those sounded resources — and the count of selected resources is the uplink rank. So in non‑codebook the UE proposes a basis of beams and the gNB simply ticks the ones to keep. There is no TPMI at all; the "precoder" lives implicitly in the SRS resources the UE built. This is why non‑codebook can out‑perform codebook on a rich TDD channel: the UE's self‑computed beams are full‑resolution, not quantised to a printed codebook.

The price is that it leans entirely on reciprocity, so it needs an accurate, recent downlink CSI‑RS and a calibrated radio (Chapter 28). In FDD, where the bands differ, the UE has no reciprocal channel to compute from — which is precisely why FDD uplink stays on the codebook path.

Section 26.4UE coherence classes — the hidden ceiling

If you remember one thing from this chapter for the field, make it this. A UE has several transmit chains, each with its own power amplifier, and those PAs do not automatically hold a stable relative phase. Coherent beamforming relies on exactly that relative phase being known and steady — so a UE that cannot guarantee it is forbidden from using precoders that depend on it. 3GPP captures this as the UE's antenna coherence capability, reported as a capability (TS 38.306) and enforced by the codebookSubset RRC restriction.

There are three classes, nested from weakest to strongest:

Coherence classWhat it can doUL beamforming gain
nonCoherentAntenna selection only — drive one port at a time≈ 0 dB (selection/diversity, no array gain)
partialAndNonCoherentCo‑phase pairs of ports, not all fourPartial (up to ~3 dB for a 4‑Tx UE)
fullyAndPartialAndNonCoherentCo‑phase all ports — full coherent precodersFull (up to ~6 dB for a 4‑Tx UE)

The gNB must respect whatever the UE reports — it cannot grant a fully‑coherent TPMI to a non‑coherent UE. So when an operator sees "UL beamforming isn't helping on this device model", the answer is very often printed in the UE's capability, not in the network. This is the single most common uplink‑MIMO support ticket, and it is usually closed as "working as designed for that UE class."

Section 26.5Power, headroom and the power-limited UE

The downlink has a luxury the uplink never will: a mains‑powered base station with a big amplifier behind every element. The UE has a battery, a thermal limit, and regulatory caps (typically 23 dBm total for a Power Class 3 phone). That asymmetry is why, in almost every real network, the uplink is the coverage bottleneck — the link breaks in the uplink direction first. Uplink beamforming matters precisely because it is one of the few ways to claw back gain when you cannot simply turn the power up.

NR controls uplink power with a mix of open‑loop and closed‑loop terms: a target receive level P0, a path‑loss compensation factor alpha (0–1, how fully the UE pays back its path loss), plus TPC commands in DCI that nudge it up and down. The UE reports its Power Headroom (PHR) — how much transmit power it has left — so the scheduler knows whether it can afford a higher MCS or more bandwidth. When the UE is "power‑limited" (PHR near zero) the gNB has no room to push, and that is when beamforming and lower‑rank, robust transmission earn their keep.

Two more practical drains: MPR/A‑MPR (maximum power reduction) means the UE must back its power off for certain modulations and band edges to stay within spectral masks — so the nominal 23 dBm is rarely all available. And SRS has its own power control: if SRS is starved, the gNB's channel estimate (the anchor for both uplink schemes) degrades, quietly hurting the very beamforming you are trying to improve.

▸ Advanced · 3GPP deep-dive — PUSCH power control (TS 38.213 §7.1)
P_PUSCH = min{ P_CMAX , P0 + 10·log10(2^μ · M_RB) + α·PL + Δ_TF + f(TPC) } [dBm] P_CMAX ≤ 23 dBm (PC3) minus MPR/A-MPR back-off PHR = P_CMAX − P_PUSCH # headroom reported to gNB α 0…1 (1 = full path-loss compensation, cell-edge fairness vs capacity)
Worked — power-limited edge A cell‑edge UE with PL = 130 dB, P0 = −90 dBm, α = 1, on M_RB = 50 PRB (μ=1): the path‑loss term alone wants 130 dB of compensation, so P_PUSCH pins to P_CMAX (~23 dBm) and PHR ≈ 0. The scheduler therefore cannot add bandwidth or MCS — the only levers left are a more robust precoder (rank‑1), DFT‑s‑OFDM for lower back‑off, and whatever coherent UL beamforming the UE's class allows. This is the uplink coverage wall in one number.

Section 26.6Troubleshooting uplink MIMO & beamforming

Uplink problems look alike on a dashboard — low UL throughput — but the causes split cleanly once you know where to look. Walk this table top to bottom.

SymptomLikely causeCheck / fix
UL beamforming gain ≈ 0 on a UE modelUE is nonCoherent / partialAndNonCoherentRead UE coherence capability; expect selection‑only gain — not a network fault
UL rank stuck at 1Low UL SINR, power‑limited, or DFT‑s‑OFDM in useCheck PHR & PL; switch to CP‑OFDM if power allows; verify SRS quality
SRI / TPMI flappingSRS period too slow vs mobility, or stale reciprocityShorten SRS period / use aperiodic SRS; recheck TDD calibration (Ch 28)
Non‑codebook UL underperformsReciprocity broken — bad/old CSI‑RS or uncalibrated radioVerify CSI‑RS association & antenna calibration; fall back to codebook
Good UL SINR but poor UL coveragePower‑limited UE (PHR≈0), MPR back‑offLower rank, DFT‑s‑OFDM, fewer PRBs; this is link budget, not MIMO

The discriminator that saves the most time: separate a capability limit (coherence class — same on every cell, tied to the device) from a radio limit (SINR, power, SRS, calibration — varies by location and time). The first is closed as "by design"; the second is a real network action.

Section 26.73GPP map, KPIs & field note

Concept3GPP home
UL codebook/non-codebook, TPMI/TRI/SRI, PUSCH precodingTS 38.214 §6.1
UL codebook entries (per ports/rank)TS 38.211 §6.3.1.5
DCI 0_1 fields (SRI, precoding info & #layers)TS 38.212 §7.3.1.1
SRS configuration (the anchor for both schemes)TS 38.211 §6.4.1.4 (Ch.27)
UE coherence capability, codebookSubsetTS 38.306, TS 38.331
PUSCH/SRS power control, PHRTS 38.213 §7.1, §7.3

KPIs: UL rank distribution, PUSCH SINR/BLER, SRI/TPMI stability, UL throughput. Field note: "UL beamforming gain is weaker than expected on some UEs." Check the UE's coherence class — a non/partial‑coherent UE can't use full‑rank coherent precoders, limiting UL gain regardless of the gNB. Also verify SRS coverage (the anchor). It's often a UE‑capability limit, not a network fault.

Interview · Takeaways · Summary

"Codebook vs non-codebook UL?"
Codebook: gNB estimates the UL channel from SRS, signals a TPMI (precoder) + TRI (rank) in DCI; UE applies it — works in FDD. Non‑codebook: UE forms beams (from DL CSI‑RS via reciprocity), sounds them, gNB picks via SRI — TDD‑oriented.
"Why do UE coherence classes matter?"
They limit which UL precoders a UE can use: nonCoherent UEs can only do antenna selection; partial/full allow more. codebookSubset restricts TPMI accordingly, bounding achievable UL beamforming gain — often the real reason "UL beamforming doesn't help" on a given device.
"Which DCI fields carry the UL precoder and rank?"
In DCI format 0_1: the SRI picks the SRS resource (antenna ports), and the "Precoding information and number of layers" field carries the TPMI (precoder) and TRI (rank). Non‑codebook uses the SRI alone — the number of selected SRS resources is the rank.
"Why is non-codebook UL essentially a TDD feature?"
The UE computes its own precoders from a downlink CSI‑RS using channel reciprocity. Reciprocity only holds when UL and DL share the band — i.e. TDD. In FDD the bands differ, there's no reciprocal channel to compute from, so FDD stays on the codebook path.
"Why does the uplink cap at 4 layers when the downlink allows 8?"
A UE has far fewer transmit antennas and a tight power/thermal budget than a gNB, so more than 4 streams is rarely useful or feasible. The cap keeps codebooks and signalling small for the realistic UE antenna counts (≤4 ports).
"UL throughput is poor but UL SINR looks fine — where do you look?"
Power, not MIMO. Check PHR: a power‑limited UE (PHR≈0) can't be given more bandwidth or MCS. Consider rank‑1, DFT‑s‑OFDM (lower MPR back‑off → more usable power), and confirm the UE isn't capped by its coherence class. It's a link‑budget problem.
  • UL MIMO comes in two flavours: codebook (gNB computes the precoder, signals TPMI/TRI in DCI 0_1 — FDD‑friendly) and non‑codebook (UE computes beams from DL CSI‑RS via reciprocity, gNB selects with SRI — TDD).
  • Both schemes are anchored entirely on the SRS; nrofSRS-Ports ∈ {1,2,4} sizes the codebook, and the UL caps at 4 layers.
  • UE coherence class (non / partial / fully coherent) is the hidden ceiling on UL beamforming gain — a UE capability the gNB must respect via codebookSubset.
  • The uplink is power‑limited: PUSCH/SRS power control, PHR and MPR shape what's possible; beamforming and robust low‑rank transmission are how you fight the uplink coverage wall.
  • When debugging, split a capability limit (coherence — device‑fixed) from a radio limit (SINR/power/SRS/calibration — location‑varying).

Both UL schemes rest entirely on one signal — the SRS — which sounds the uplink and, in TDD, the downlink too. Chapter 27 — SRS‑Based Beam Management details SRS resource sets, antenna switching, and how SRS unlocks reciprocity‑based beamforming.

— end of Chapter 26 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Nine — Uplink Beamforming and SRS
CHAPTER TWENTY-SEVEN

SRS-Based
Beam Management

"One uplink pilot does triple duty: sounds the uplink, steers the uplink, and — in TDD — hands the downlink its beam for free."

The SRS (Sounding Reference Signal) is the uplink's most versatile pilot. It sounds the uplink channel for UL scheduling and UL MIMO (Chapter 26); it supports antenna switching so a UE can reveal its full channel; and — the big one — in TDD it lets the gNB compute the downlink beam directly via reciprocity, skipping codebook feedback. This chapter covers SRS resource sets, its usages, antenna switching, and the reciprocity it unlocks (with the calibration caveat that Chapter 28 resolves).

ObjectivesWhat you'll walk away knowing

  • Know the SRS usages: beamManagement, codebook, nonCodebook, antennaSwitching.
  • Choose SRS resource types — periodic / semi‑persistent / aperiodic — and trigger them.
  • Explain the comb, cyclic shifts and how many SRS multiplex on the same symbols.
  • Explain antenna switching (1T2R, 1T4R…) and why a Tx‑limited UE needs it.
  • See why SRS coverage is the uplink‑pilot bottleneck behind cell‑edge reciprocity, and how power control + frequency hopping help.
  • Trace reciprocity in practice — SRS → DL precoder — and troubleshoot stale/weak sounding.

Section 27.1One pilot, four jobs

An SRS resource set is configured with a usage that defines its job: beamManagement (sweep UL beams), codebook (gNB picks TPMI), nonCodebook (UE‑formed beams, gNB picks SRI), or antennaSwitching (sound each antenna in turn). The same physical signal, four roles. For massive MIMO the most valuable is the implicit one: by sounding the uplink, the SRS lets the gNB learn the channel — and in TDD that channel is the downlink channel too.

SRS usage: one uplink pilot, four jobs beamManagementcodebooknonCodebookantennaSwitching TDD reciprocity → DL beam for free
Figure 27.1 · SRS serves beam management, codebook/non-codebook UL, antenna switching — and unlocks DL reciprocity
How to read this picture The four boxes are the configured SRS usages — the role you assign a resource set. beamManagement sweeps uplink beams; codebook/nonCodebook feed UL precoding (Chapter 26); antennaSwitching sounds each UE antenna in turn. The arrow to the bottom box is the quiet superpower: because TDD uplink and downlink share the frequency, the channel the gNB measures from any SRS is also the downlink channel — so it computes the DL beam directly, no codebook PMI needed. One uplink pilot, and the downlink beamforming comes along for free (subject to calibration, Chapter 28).
SRS comb: interleave users on alternate subcarriers comb-2: user A on even subcarriers (blue), user B on odd (red) — same symbols
Figure 27.3 · SRS comb structure multiplexes sounders
How to read this picture SRS uses a comb structure — a user transmits on every Kth subcarrier (comb-2 or comb-4), leaving the gaps for other users. This frequency interleaving lets several UEs sound the channel in the same OFDM symbols without colliding, multiplying sounding capacity. Combined with cyclic shifts and the antenna-switching hopping of Figure 27.2, the comb is how a cell sounds many uplinks cheaply — vital because reciprocity-based massive MIMO lives or dies on getting fresh SRS from every served user.
One signal, three jobs — the SRS usage field usage = codebook gNB picks TPMI from UL channel CB uplink (Ch 26) usage = nonCodebook UE-formed beams, gNB picks via SRI non-CB uplink usage = beamMgmt UE sweeps Tx beams, gNB measures best UL beam training
Figure 27.4 · The SRS usage field selects one of three jobs
How to read this picture The same physical SRS does three different jobs depending on the configured usage. codebook — the gNB sounds the UL channel and hands back a TPMI. nonCodebook — the UE forms its own candidate beams and the gNB selects one with an SRI. beamManagement — the UE sweeps its transmit beams so the gNB can find the UE's best UL pointing direction. One signal, three configured behaviours — set per SRS resource set.
SRS antenna switching — sound more Rx than the UE can Tx (1T4R) UE 4 Rx, 1 Tx SRS hops across Rx chains over time gNB → full DL channel known by reciprocity
Figure 27.2 · 1T4R antenna switching — sound all UE antennas with one transmitter
How to read this picture A cheap UE may have four receive antennas but only one transmit chain. SRS antenna switching (1T4R) lets it sound each antenna in turn — the single transmitter hops across the four antenna ports over consecutive SRS occasions. The gNB stitches the results into the full uplink channel, and by TDD reciprocity (Chapter 28) that is also the downlink channel — so it can precode all four downlink layers even though the UE can only transmit on one antenna at a time.

Section 27.2Antenna switching and reciprocity

Antenna switching exists because many UEs have more receive antennas than transmit chains (e.g., 4 Rx, 1 Tx). To let the gNB learn the full downlink channel for reciprocity, the UE sounds each antenna in turn over successive SRS transmissions — "1T4R" means one Tx chain cycling through four antennas. Once the gNB has the full channel, TDD reciprocity gives it the DL precoder directly (MRT/ZF, Chapter 12). The one catch — the over‑the‑air channel is reciprocal but the RF chains are not — is exactly what Chapter 28 (calibration) addresses.

▸ Advanced · 3GPP deep-dive — SRS-Config & antenna switching
SRS-ResourceSet usage {beamManagement|codebook|nonCodebook|antennaSwitching} SRS-Resource nrofSRS-Ports {1,2,4}, resourceType {periodic|semiPersistent|aperiodic}, transmissionComb {n2|n4}, resourceMapping {nrofSymbols 1/2/4}, freqHopping antenna switching modes 1T2R | 1T4R | 2T4R | 1T1R | 2T2R | 4T4R # Tx-chains T, Rx-antennas R aperiodic triggered via DCI (aperiodicSRS-ResourceTrigger)

comb-N interleaves SRS on every N-th subcarrier so N UEs (or antennas) multiplex on the same symbols. The number of SRS symbols and switching mode set how long full-channel sounding takes — and its period sets DL reciprocity-beam freshness (stale SRS → stale DL beam, the mobility failure mode of Ch.2/31). Aperiodic SRS gives on-demand fresh sounding for fast UEs.

Worked — sounding latency 1T4R antenna switching needs ≥4 SRS occasions to sound all antennas; with a 5-slot SRS period that's ~12.5 ms (μ=1) to refresh the full channel. At vehicular speed the channel decorrelates faster → reciprocity DL beams lag → shorten SRS period or fall back to codebook PMI.

Section 27.3Resource types and triggering

Like CSI‑RS, SRS comes in three timings, and the choice shapes both overhead and freshness. Periodic SRS sounds on a fixed schedule — simple, predictable, but it spends uplink resource whether the channel is moving or not. Semi‑persistent SRS is periodic that a MAC CE switches on and off, so you pay only while a UE is actively scheduled. Aperiodic SRS is a single sounding triggered by a DCI field exactly when the gNB wants fresh channel knowledge — the lowest overhead and the best fit for bursty or fast users.

For reciprocity‑based massive MIMO this choice is more consequential than it looks, because the SRS is the downlink beam's source of truth. Sound too rarely and the downlink precoder is computed from a stale channel; sound too often and you burn scarce uplink resource on UEs that haven't moved. A common, effective pattern is a slow periodic SRS for baseline tracking plus aperiodic SRS triggered just before a big downlink grant, so the precoder is freshest exactly when it carries the most data.

Section 27.4The comb and cyclic shifts — sounding many users cheaply

SRS would be ruinously expensive if every UE needed its own symbols, so NR multiplexes them along three axes at once. The comb places a UE's SRS on every Nth subcarrier (comb‑2 or comb‑4), leaving the gaps for others — so 2 or 4 UEs share the same symbols in frequency. On top of that, cyclic shifts of the base sequence let several more UEs share even the same comb because their shifted sequences are mutually orthogonal. The two combine multiplicatively: comb‑4 with 12 cyclic shifts is 48 orthogonal soundings on one set of symbols.

This multiplexing is what makes reciprocity practical at scale. A massive‑MIMO cell must sound every served UE often enough to keep its downlink precoder fresh — and without the comb/cyclic‑shift trick the uplink would drown in pilots. When you plan SRS capacity, you are really budgeting how many users you can keep "reciprocity‑fresh" simultaneously, and the comb × cyclic‑shift product is the number that sets it.

▸ Advanced · 3GPP deep-dive — SRS capacity & frequency hopping
comb n2 (every 2nd SC) | n4 (every 4th SC) # frequency-domain multiplexing cyclicShift up to 8 (comb-2) / 12 (comb-4) # code-domain multiplexing capacity combN x cyclicShifts orthogonal soundings per symbol set freqHopping b-SRS, b-hop -> narrowband SRS hops to cover wide BW over time SRS power P0_SRS, alpha_SRS, p-SRS-Offset (own power control)

Frequency hopping lets a power‑limited UE sound a wide bandwidth in pieces: instead of one weak wideband SRS, it sends a stronger narrowband SRS that hops across the band over several occasions, concentrating power for better SINR per chunk. SRS has its own power control (separate from PUSCH) — starve it and the channel estimate that feeds reciprocity degrades, quietly hurting downlink beams.

Worked — sounding capacity comb‑4 with 12 cyclic shifts = 4 × 12 = 48 orthogonal SRS on one symbol set. A cell needing to keep 200 active UEs reciprocity‑fresh thus needs ~⌈200/48⌉ = 5 SRS symbol sets per sounding period — a direct input to UL overhead budgeting.

Section 27.5SRS coverage — the uplink-pilot bottleneck

Here is the uncomfortable truth behind reciprocity: the downlink beam is only as good as an uplink pilot, and the uplink is the weak direction. At the cell edge the UE is power‑limited (Chapter 26), so its SRS arrives faint; the gNB's channel estimate is then noisy, and a noisy channel estimate makes a poor downlink precoder. So a downlink problem — "reciprocity beams are weak at the edge" — has its root cause in an uplink signal. This catches people out because they look downstream (the DL beam) instead of upstream (the SRS).

The defences are the ones above, applied with coverage in mind: give SRS its own, adequate power control; use frequency hopping so a power‑limited UE concentrates energy into narrowband chunks for a usable per‑chunk SINR; and shorten the period only where mobility demands it (more soundings cost power the edge UE may not have). Where SRS simply cannot be made strong enough, the honest fallback is codebook‑based downlink (Type I/II PMI feedback), which does not depend on a strong uplink pilot — trading reciprocity's precision for robustness at the edge.

Section 27.6From SRS to downlink precoder

Let me close the loop end to end, because it is the heart of TDD massive MIMO. The UE sends SRS; the gNB estimates the uplink channel H on every PRB across all its antennas; by reciprocity that is the downlink channel (after calibration, Chapter 28); the gNB then computes the downlink precoder directly from H — MRT for maximum signal, ZF or regularised ZF to null other paired users (Chapter 14) — per PRB, at full resolution. No codebook, no PMI quantisation, no feedback round‑trip. That full‑resolution, per‑PRB precoder is exactly why reciprocity beats codebook for high‑order MIMO.

The whole edifice rests on two freshness conditions: the SRS must be recent relative to how fast the channel changes (the mobility limit, Chapters 2/31), and the radio must be calibrated so the measured uplink chain matches the downlink chain (Chapter 28). Break either and the directly‑computed precoder points slightly wrong. So when reciprocity underperforms, the diagnosis is almost always one of three things — stale SRS, weak SRS, or uncalibrated chains — which is exactly what the troubleshooting table below sorts out.

Section 27.7Troubleshooting SRS & reciprocity

SRS problems usually surface as downlink symptoms, which is what makes them tricky. Trace upstream.

SymptomLikely causeCheck / fix
Reciprocity DL beams weak at cell edgeSRS power‑limited → noisy channel estimateSRS power control, frequency hopping; fall back to codebook DL at edge
Reciprocity DL beams lag for moving UEsSRS period > channel coherence timeShorten period / use aperiodic SRS before big grants (Ch 31)
Reciprocity beams point slightly off everywhereTx/Rx chains uncalibratedRun/verify reciprocity calibration (Ch 28)
SRS capacity exhausted (many users)Too few comb/cyclic‑shift resourcesIncrease comb‑N × cyclic shifts / add SRS symbol sets
Full‑channel sounding too slow (cheap UE)1T4R antenna switching needs ≥4 occasionsShorten SRS period; accept lower DL rank if Tx‑limited

The discriminator runs three ways here: weak SRS (edge/power — a coverage fix), stale SRS (mobility — a cadence fix), or biased SRS (calibration — Chapter 28). All three present as poor downlink beams, but the cure is completely different — so always trace a reciprocity complaint back to the uplink pilot first.

Section 27.83GPP map, KPIs & field note

Concept3GPP home
SRS signal, comb, mappingTS 38.211 §6.4.1.4
SRS-Config, usages, antenna switching, triggerTS 38.331, TS 38.214 §6.2
Reciprocity-based DL precodingTS 38.214 (implementation), Ch.28 (calibration)

KPIs: SRS coverage/SINR, SRS period vs mobility, reciprocity DL‑beam accuracy, UL channel‑estimate quality. Field note: "Reciprocity DL beams degrade at cell edge." The SRS (uplink) is weaker than the downlink at the edge (UE power‑limited), so the gNB's channel estimate is noisy → poor DL beams. Boost SRS power/coverage, shorten period for mobility, and verify calibration (Ch.28). A downlink problem rooted in an uplink pilot.

Interview · Takeaways · Summary

"What are the SRS usages?"
beamManagement (UL beam sweep), codebook (gNB TPMI selection), nonCodebook (UE beams + SRI), antennaSwitching (sound each antenna in turn). The same SRS also enables TDD DL reciprocity.
"Why antenna switching?"
Many UEs have more Rx antennas than Tx chains; antenna switching (e.g., 1T4R) sounds each antenna in turn so the gNB learns the full channel for reciprocity‑based DL beamforming.
"How does SRS multiplex many users cheaply?"
Two axes at once: the comb puts a UE on every N‑th subcarrier (comb‑2/4), and cyclic shifts of the base sequence give orthogonal soundings on the same comb. comb‑4 × 12 shifts = 48 orthogonal SRS per symbol set — the budget for how many users you can keep reciprocity‑fresh.
"Periodic vs aperiodic SRS — when?"
Periodic for steady baseline tracking; aperiodic (DCI‑triggered) for on‑demand freshness before a big downlink grant or for fast UEs. A slow‑periodic + aperiodic‑on‑demand mix keeps the reciprocity precoder fresh exactly when it matters without wasting uplink resource.
"Why do reciprocity DL beams degrade at the cell edge?"
The DL beam is computed from an uplink SRS, and the uplink is power‑limited at the edge. Faint SRS → noisy channel estimate → poor DL precoder. Fixes: SRS power control, frequency hopping, or fall back to codebook DL where SRS can't be made strong enough.
"Reciprocity beams point slightly off everywhere — cause?"
Usually uncalibrated Tx/Rx chains: the air channel is reciprocal but the radios' chains are not, so the measured uplink channel is a biased copy of the downlink one. Run reciprocity calibration (Chapter 28). If it's only fast UEs, it's stale SRS instead.
  • SRS does four jobs (beam mgmt, codebook, non‑codebook, antenna switching) and unlocks TDD reciprocity — the engine of TDD massive MIMO.
  • Resource types (periodic/SP/aperiodic) trade overhead vs freshness; the SRS is the downlink beam's source of truth.
  • Comb × cyclic shifts multiplex many soundings per symbol set; that product budgets how many users stay reciprocity‑fresh.
  • Antenna switching (1T2R/1T4R) reveals the full channel from a Tx‑limited UE.
  • Reciprocity fails three ways — weak SRS (edge), stale SRS (mobility), biased SRS (calibration, Ch 28); all look like poor DL beams but need different fixes.

Reciprocity is the engine of TDD massive MIMO — but it rests on an assumption we've flagged repeatedly: that the channel is the same both ways. It is, over the air — but the radios' own Tx/Rx chains are not. Chapter 28 — Calibration and Reciprocity confronts that gap: RF‑chain mismatch, calibration, and what happens to your beams when it's wrong.

— end of Chapter 27 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Nine — Uplink Beamforming and SRS
CHAPTER TWENTY-EIGHT

Calibration and
Reciprocity

"The air is reciprocal. The radio is not. Calibration is how you make the radio honest."

Reciprocity is TDD massive MIMO's superpower: sound the uplink with SRS, reuse the channel for the downlink, skip codebook feedback (Chapters 27, 14). But it rests on an assumption that's only half true. The over‑the‑air channel really is reciprocal — same path, same frequency. The radio hardware is not: the transmit chain (PA, filters) and the receive chain (LNA, filters) have different amplitude/phase responses, and they differ from antenna to antenna. So the measured uplink channel ≠ the true downlink channel until you remove that mismatch. Reciprocity calibration is how. This chapter explains the gap and the fix.

ObjectivesWhat you'll walk away knowing

  • State precisely what is reciprocal (the air) and what isn't (the RF chains).
  • Explain why uncalibrated reciprocity mis‑points beams and breaks MU‑MIMO nulls.
  • Understand how reciprocity calibration actually works — relative vs absolute, the reference transceiver, OTA self‑calibration.
  • Know why calibration drifts (temperature, ageing, faulty branches) and must be repeated.
  • Decide between reciprocity and codebook downlink, and understand partial reciprocity.
  • See why MU‑MIMO is far more calibration‑sensitive than SU, and troubleshoot calibration faults.

Section 28.1What's reciprocal, what isn't

The propagation channel between two antennas is the same in both directions (at the same frequency). But the signal also passes through the gNB's and UE's RF chains, which are not the same on transmit and receive. So the uplink the gNB measures is (gNB‑Rx chain) × (air) × (UE‑Tx chain), while the downlink it wants is (gNB‑Tx chain) × (air) × (UE‑Rx chain). The air cancels; the chain mismatch does not. Worse, each antenna's chain differs, so the mismatch is a per‑antenna error that warps the beam.

air reciprocal · Tx/Rx chains differ → calibration needed gNBTx≠Rx chain UETx≠Rx chain downlink: gNB-Tx × air × UE-Rx uplink: gNB-Rx × air × UE-Tx the air cancels; the chain mismatch (Tx vs Rx, per antenna) does not → must be calibrated out
Figure 28.1 · Reciprocity holds over the air, but the radios' Tx and Rx chains differ
How to read this picture The downlink (blue) and uplink (red) traverse the same air, so that part is identical both ways. But each direction also passes through a different RF chain: the gNB transmits through its Tx chain but received the SRS through its Rx chain; likewise the UE. Those chains have different gain/phase — and per antenna. So the uplink channel the gNB measured is not the downlink channel it needs; the difference is the Tx/Rx chain mismatch. Since the mismatch varies antenna‑to‑antenna, using the raw uplink estimate as a DL precoder warps the beam. Reciprocity calibration measures and removes that per‑antenna mismatch so the estimate becomes usable for DL beamforming.

TDD reciprocity: the air is symmetric, the RF chains are not gNB UE Tx chain ≠ Rx chain downlink H uplink Hᵀ — same air channel air channel reciprocal · but each Tx/Rx chain adds its own gain & phase → must calibrate
Figure 28.2 · The downlink channel is the transpose of the uplink — for the air only
How to read this picture In TDD the uplink and downlink share the same frequency, so the air channel is reciprocal — the downlink matrix is the transpose of the uplink one. That is what lets the gNB learn the downlink from an uplink SRS. But each transmit and receive RF chain adds its own gain and phase that are not reciprocal. Unless those chain differences are measured and removed — reciprocity calibration — the estimated downlink channel is wrong and the beams point slightly off.
Calibration estimates per-chain correction coefficients UNCALIBRATED beams scatter → wrong direction, low SINR CALIBRATED coherent beam → points where intended
Figure 28.3 · Before and after reciprocity calibration
How to read this picture On the left the per-antenna phases are uncorrected, so the array's contributions add up in the wrong direction — the beam scatters and gain collapses. On the right the calibration coefficients have aligned every chain to a common reference; the contributions add coherently and the beam points exactly where the precoder intended. This is why a massive-MIMO cell runs periodic over-the-air calibration — drift in temperature or ageing slowly re-introduces the mismatch.
▸ Advanced · 3GPP deep-dive — the reciprocity calibration model
over-the-air H_air(DL) = H_air(UL)ᵀ # true reciprocity measured Ĥ_UL = R_gNB · H_air · T_UE # includes chains wanted H_DL = T_gNB · H_airᵀ · R_UE calibration C = T_gNB · R_gNB⁻¹ (per-antenna diagonal) → H_DL ≈ C · Ĥ_ULᵀ · (UE term)

Practically, only the gNB-side relative calibration matters for beamforming (the UE term is common across the gNB's antennas and folds into a scalar). The gNB estimates C — the per-antenna Tx-vs-Rx mismatch — via internal/over-the-air calibration (antenna-to-antenna reference measurements), periodically (drift with temperature/ageing). Apply C and the SRS-derived precoder points correctly; skip it and the beam mis-points and MU nulls land wrong.

Worked — error impact An uncalibrated per-antenna phase error of ~30° RMS across a 64-element array can cost several dB of beamforming gain and badly degrade MU-MIMO nulling (interference floor rises). Calibration brings residual error to a few degrees → near-ideal reciprocity beams. This is why reciprocity-based TDD requires a working calibration routine.

Section 28.2How calibration actually works

The good news is that you don't have to calibrate the absolute response of every chain — only the relative differences between the gNB's antennas. Why? Because beamforming cares about the phase relationship across the array, not any common factor. A gain or phase term that is identical on every antenna just scales the whole beam; it's the antenna‑to‑antenna differences that steer it wrong. And the UE‑side term turns out to be common across all the gNB's antennas, so it folds into a single scalar and doesn't affect the beam direction at all. The upshot: a massive‑MIMO cell needs only gNB‑side relative calibration, which is a far more tractable problem than absolute calibration.

How does the gNB measure those relative differences? Through a built‑in calibration network. A reference path — often a dedicated reference transceiver coupled to all antenna elements through a coupling network, or antenna‑to‑antenna measurements where one element transmits and the others receive — lets the radio compare each chain against a common reference. From those measurements it computes a per‑antenna correction coefficient (the diagonal matrix C from the deep‑dive) that maps the measured uplink chain onto the wanted downlink chain. Some radios do this fully over the air (OTA self‑calibration) using mutual coupling between elements; others use an internal coupling board. Either way the output is the same: a set of correction coefficients the gNB applies before turning an SRS estimate into a downlink precoder.

Section 28.3Why calibration drifts — and must be repeated

Calibration is not a one‑time factory step; it is a maintenance routine, because the very things it corrects keep changing. RF components are temperature‑sensitive: amplifier gain and filter phase shift as the radio heats through the day and as traffic load varies, so a calibration done cold is wrong by mid‑afternoon. Components also age, drifting slowly over months. And a faulty branch — a failed PA, a loose connector — abruptly breaks the assumption that all chains are healthy, corrupting the whole array's beam, not just one element's.

This is why a reciprocity‑based cell runs calibration periodically and why calibration status deserves an alarm. When beams silently degrade "after a hot afternoon" or "since a branch failed", the air didn't change — the radio drifted out of calibration. A healthy deployment treats a calibration failure or a rising residual‑error metric as an actionable fault, because everything downstream (downlink beamforming gain, MU‑MIMO isolation) quietly depends on it staying fresh.

Section 28.4Reciprocity or codebook? Choosing the downlink path

Calibration is the price of admission for reciprocity, so it's worth being clear about when you pay it and when you don't. Reciprocity (calibrated TDD) gives the gNB a full‑resolution, per‑PRB downlink channel from a single SRS — the best precoding accuracy and the lowest feedback overhead, which is why high‑order TDD massive MIMO is built on it. But it demands three things: TDD (shared band), a fresh SRS (mobility limit), and working calibration (this chapter). Lose any one and reciprocity degrades.

The codebook path (Type I/II PMI feedback, Chapters 18–20) asks none of those: it works in FDD, tolerates a stale or weak uplink, and needs no calibration — at the cost of quantised, lower‑resolution precoding and uplink feedback overhead. Real networks often run both and switch: reciprocity for well‑calibrated, low‑mobility, good‑SRS users, codebook as the robust fallback at the cell edge or for fast movers. There is even partial reciprocity — using the uplink to learn the channel's angles/long‑term statistics (which are more robust) while taking the fast‑fading detail from codebook feedback. Knowing which path a cell is using for a given UE is the first question when its downlink underperforms.

Section 28.5Why MU-MIMO is the real calibration test

Single‑user beamforming is forgiving of small calibration errors: a few degrees of residual phase error nudges the beam slightly off boresight and costs a fraction of a dB — usually invisible. MU‑MIMO is not forgiving at all. MU‑MIMO works by placing precise nulls toward the other paired users (zero‑forcing, Chapter 14), and a null is a delicate thing — it requires the array's contributions to cancel almost perfectly in a specific direction. Calibration error that merely dents an SU beam can completely fill in an MU null, so the interference the gNB thought it had cancelled comes flooding back.

That asymmetry makes MU‑MIMO the sensitive indicator of calibration health. The classic field signature is a cell whose single‑user throughput looks fine but whose MU‑MIMO gains have quietly evaporated — the inter‑user interference floor has risen because the nulls no longer land. So when MU‑MIMO "stops working" (Chapter 35), calibration belongs near the top of the suspect list, even when SU performance gives no hint of a problem. The nulls fail long before the beams do.

▸ Advanced · 3GPP deep-dive — calibration architecture & partial reciprocity
relative cal only gNB antenna-to-antenna differences matter (UE term -> scalar) methods reference-transceiver + coupling network | OTA mutual-coupling self-cal coefficient C = diag(c_1..c_N), c_i = T_i / R_i (per antenna) partial reciprocity use UL for angles/long-term stats; codebook for fast fading AAS conformance TS 38.104 / TR 37.842 (OTA requirements)

3GPP standardises the over‑the‑air requirements (TS 38.104, TR 37.842) but leaves the calibration mechanism to the vendor — it's an implementation matter inside the radio. Partial reciprocity is a pragmatic middle ground used in FDD and at the edge: the uplink reveals robust spatial statistics (dominant angles) even when full fast‑fading reciprocity isn't available, and codebook feedback fills in the rest.

Worked — SU vs MU sensitivity Residual phase error 10° RMS: an SU beam loses ~0.1–0.3 dB (negligible), but an MU null degrades from ~−25 dB to ~−13 dB — a 12 dB rise in the interference a paired user sees. Same error, ~invisible to SU, ruinous to MU. That's why MU‑MIMO is the calibration canary.

Section 28.6Troubleshooting calibration & reciprocity

Calibration faults masquerade as beam‑quality or MU faults. Trace them by their signatures.

SymptomLikely causeCheck / fix
MU‑MIMO gains vanish, SU looks fineCalibration error filling MU nullsCheck calibration status/residual error; recalibrate
Reciprocity DL gain drops below codebookLost/incorrect calibrationVerify calibration alarm; fall back to codebook until fixed
Beams degrade through a hot afternoonThermal drift of RF chainsMore frequent recalibration; check thermal management
Sudden array‑wide beam corruptionFaulty branch (PA/connector)Branch diagnostics; replace; recalibrate
Edge reciprocity poor despite calibrationWeak SRS, not calibrationThat's Chapter 27 (SRS coverage) — different root cause

The key discriminator: a calibration fault hits the whole array and shows up first in MU‑MIMO (nulls fail) while SU still works; an SRS fault (Chapter 27) is per‑UE and tracks coverage/mobility. Both produce "poor reciprocity beams", but one lives in the radio and one in the uplink pilot.

Section 28.73GPP map, KPIs & field note

Concepthome
Reciprocity-based precoding (uses calibrated channel)TS 38.214 (implementation)
AAS calibration, OTA conformanceTS 38.104, TR 37.842 (vendor calibration internal)
SRS sounding (the input)TS 38.211 §6.4.1.4 (Ch.27)

KPIs: reciprocity DL‑beam SINR vs codebook, MU inter‑user interference floor, calibration status/alarms, beamforming gain. Field note: "Reciprocity beams degraded after a hot afternoon / lost a branch." RF‑chain responses drift with temperature and ageing, and a faulty branch breaks calibration — so periodic re‑calibration is mandatory and a calibration alarm should trigger investigation. Symptoms: rising MU interference floor, DL beamforming gain dropping below codebook. The air didn't change; the radio drifted.

Interview · Takeaways · Summary

"What exactly is and isn't reciprocal in TDD?"
The over‑the‑air channel is reciprocal (same path/frequency). The Tx and Rx RF chains are not — they differ, per antenna. So the measured UL channel ≠ the true DL channel until the per‑antenna Tx/Rx mismatch is calibrated out.
"What does uncalibrated reciprocity do to beams?"
The per‑antenna chain mismatch warps the precoder, mis‑pointing the beam and mis‑placing MU‑MIMO nulls — costing beamforming gain and raising the inter‑user interference floor. Calibration (estimating C = T·R⁻¹) restores near‑ideal beams.
"Why only gNB‑side relative calibration?"
Beamforming depends on phase differences across the array, not absolute response. A term common to all antennas just scales the beam; the UE term is common across the gNB's antennas so it folds into a scalar. Only the antenna‑to‑antenna (relative) gNB mismatch steers the beam wrong, so that's all you must calibrate.
"Why must calibration be repeated?"
The RF chains drift: amplifier gain and filter phase change with temperature and load through the day, components age over months, and a faulty branch breaks it abruptly. So calibration is a periodic maintenance routine with an alarm, not a one‑time factory step.
"Why is MU‑MIMO so much more calibration‑sensitive than SU?"
SU only needs the beam roughly pointed (a few degrees of error ≈ tenths of a dB). MU needs precise nulls on the other users; small calibration error fills those nulls, so the cancelled interference returns. MU gains can vanish while SU still looks fine — calibration is the MU canary.
"Reciprocity or codebook — how do you choose?"
Reciprocity (calibrated TDD, fresh SRS) gives full‑resolution per‑PRB precoding with low overhead — best for low‑mobility, well‑calibrated users. Codebook (PMI) works in FDD, needs no calibration, tolerates weak/stale uplink — the robust fallback for edge/fast UEs. Many cells run both and switch; partial reciprocity blends them.
  • Reciprocity is over‑the‑air only; Tx/Rx chains differ per antenna and must be calibrated.
  • Only gNB‑side relative calibration matters; a reference transceiver / OTA self‑calibration estimates per‑antenna coefficients C.
  • Calibration drifts (temperature, ageing, faulty branch) → periodic recalibration + alarms are mandatory.
  • MU‑MIMO is the sensitive test: small calibration error fills nulls and raises the interference floor while SU still looks fine.
  • Choose reciprocity vs codebook per UE; partial reciprocity (UL angles + codebook detail) bridges the two.

That completes Part 9 — uplink MIMO, SRS, and the calibration that makes reciprocity trustworthy. We've now built the full transmit/receive beam system. Part 10 stress‑tests it against the real world's hardest enemy: motion. Chapter 29 — Beam Mobility opens it, covering beam switching, tracking, and intra‑ vs inter‑cell beam mobility.

— end of Chapter 28 · end of Part 9 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Ten — Mobility, Failure and Optimization
CHAPTER TWENTY-NINE

Beam Mobility

"Switching beams within a cell should be invisible and instant. Switching cells is a bigger, slower deal. Know which is which."

A user moving through a cell drifts out of one beam and into the next. Keeping them served means beam mobility: tracking the best beam and switching to it as they move. Crucially, NR separates two scales — switching beams within a cell (fast, L1, a TCI update) versus switching cells (slower, L3, a handover). Confusing them is a classic source of mis‑tuned mobility. This chapter covers beam switching, tracking, and intra‑ vs inter‑cell beam mobility.

ObjectivesWhat you'll walk away knowing

  • Explain beam tracking and intra‑cell beam switching (L1, TCI update — fast).
  • Configure the L1‑RSRP measurement loop and use hysteresis to avoid beam ping‑pong.
  • Distinguish intra‑cell switching from inter‑cell handover (L3 RRC, RRM events A3/A5).
  • Understand conditional handover (CHO) and Rel‑17 L1/L2‑triggered mobility (LTM).
  • Diagnose ping‑pong and too‑late/too‑early handover, and tune TTT / hysteresis / CIO.
  • Troubleshoot excessive handovers and beam‑switch failures in a massive‑MIMO cell.

Section 29.1Two scales of mobility

As the UE moves, beam management's tracking loop (P2/P3, Chapter 24) keeps measuring candidate beams. When a different beam becomes best, the gNB switches the UE to it via a TCI update — a fast, L1/L2 (DCI/MAC‑CE) operation entirely within the cell; the UE never leaves. Only when the UE approaches a different cell does true handover kick in: an L3 RRC procedure driven by SSB‑RSRP measurements, much heavier and slower. Rule of thumb: same cell → beam switch (L1); new cell → handover (L3).

intra-cell beam switch (L1, fast) vs inter-cell handover (L3, slow) beam Abeam B A→B switch = TCI update (UE stays in cell) cell 2 approaching cell 2 → L3 handover
Figure 29.1 · Within a cell, switch beams (L1/TCI); between cells, hand over (L3/RRC)
How to read this picture The UE moves left to right. While it stays under one gNB, drifting from beam A to beam B is just a TCI update (Chapter 25) — an L1/L2 operation, fast and invisible, the UE never leaves the cell. Only when it nears a different cell (right, red) does a full L3 RRC handover trigger, driven by SSB‑RSRP measurements — heavier, slower, with signalling to the target cell. The engineering takeaway: most "mobility" inside a massive‑MIMO cell is cheap beam switching, and you should tune beam‑tracking cadence (not handover thresholds) to handle it. Reserve handover for actual cell changes.
The beam-switch timeline — measure, report, apply measure CSI-RS L1-RSRP report MAC-CE/DCI TCI new beam live total latency must be shorter than the beam-dwell time at the user's speed
Figure 29.3 · The latency budget of a beam switch
How to read this picture A beam switch is a small pipeline: the UE measures the candidate CSI-RS beams, sends an L1-RSRP report, the gNB issues a TCI update (MAC-CE or DCI), and the UE applies the new beam. Each step costs time, and the sum is the switch latency. For mobility to work, that total must be shorter than how long the user stays in a beam — which is why fast users need aperiodic reports and DCI-based (not MAC-CE) TCI updates. Reading this timeline tells you whether a cell's beam mobility can keep up with its users.
Two kinds of mobility — within a cell vs between cells gNB L1 beam switch (fast, no RRC) gNB2 L3 handover (RRC, slower)
Figure 29.4 · Beam-level (L1) switching vs cell-level (L3) handover
How to read this picture Moving inside one cell only changes which beam serves you — a fast Layer-1/Layer-2 beam switch driven by L1-RSRP reports and a MAC-CE/DCI TCI update, with no RRC signalling. Crossing into another cell is a full Layer-3 handover: measurement reports, an RRC reconfiguration, and a PRACH into the new cell. The art of beam mobility is keeping as much movement as possible in the cheap L1 domain and only triggering the expensive L3 handover when the user truly leaves the cell.
UE reports L1-RSRP per beam → gNB switches serving beam beam A beam B switch point (B overtakes A)
Figure 29.2 · The serving beam follows the strongest L1-RSRP
How to read this picture Each curve is one beam's measured L1-RSRP as the user moves. While beam A is strongest it serves; at the crossover the UE's report shows beam B is now stronger and the gNB switches the serving beam to B. Good beam mobility configures enough candidate beams and a fast enough reporting cadence that this switch happens before the old beam fades — otherwise SINR dips at every crossover.
▸ Advanced · 3GPP deep-dive — L1 beam switch vs L3 handover
intra-cell beam switch L1-RSRP report → MAC CE / DCI TCI update # ms-scale, no RRC inter-cell handover L3 RRM (SSB/CSI-RS RSRP, events A3/A5) → RRCReconfiguration # 10s of ms CHO Conditional Handover: target prepared in advance, UE executes on trigger L1/L2 mobility (R17 LTM) cell switch via L1/L2 (faster than L3) for intra-DU

Intra-cell beam switching reuses the beam-management machinery (P2/P3 reports + TCI). Inter-cell handover is the classic L3 procedure on RRM measurements. R17 L1/L2-triggered mobility (LTM) blurs the line, enabling fast cell switches without full L3 — important when "beams" effectively act like mini-cells. Beam switch latency is bounded by timeDurationForQCL (Ch.25); handover latency by RRC + random access to the target.

Worked — cadence A pedestrian crossing a 64-beam FR2 sector may switch beams every few hundred ms (L1, trivial); a car may need switches every tens of ms; only when leaving the sector does an L3 handover (~tens of ms interruption) occur. Tune P2/P3 report periodicity to the beam-dwell time, not the handover timers.

Section 29.2Beam tracking — the loop that drives switching

A beam switch is only as good as the measurements behind it, so it's worth being precise about the loop. The gNB configures the UE to measure a set of candidate beams (CSI‑RS or SSB resources) and report their L1‑RSRP (or L1‑SINR) — periodically for steady tracking, or aperiodically when the gNB wants a fresh look. From those reports the gNB sees when a non‑serving beam has overtaken the serving one and issues the TCI update. The whole thing is the P2/P3 machinery of Chapter 24 used continuously, not the heavy L3 measurement framework.

The subtle art is avoiding ping‑pong — rapidly flipping between two beams of nearly equal strength, which wastes signalling and disturbs the link. The cure is the same hysteresis idea used in handover, applied at L1: don't switch the moment a rival beam is momentarily stronger; switch only when it is stronger by a margin, sustained for a short time. Configure too little hysteresis and the UE flaps between beams at every fade; too much and the serving beam lags the user. Tuning that margin against the served mobility is most of what "beam mobility optimisation" means in practice.

Section 29.3Inter-cell handover in the beam era

When the UE genuinely leaves the cell, the heavier L3 machinery takes over, and it works on cell‑level measurements rather than beam‑level ones. The UE is configured with RRM measurement objects and reporting events — most commonly A3 (a neighbour becomes better than the serving cell by an offset) and A5 (serving drops below one threshold while a neighbour rises above another). When an event fires, the UE sends a measurement report; the network decides, prepares the target, and sends an RRCReconfiguration with the handover command; the UE then does a (usually contention‑free) RACH into the target cell and resumes there.

The beam dimension reappears at both ends. The serving‑cell measurement is an aggregate over its beams (cell‑level RSRP derived from the best SSB beams), and on arrival in the target the UE immediately runs P1 — it picks the best SSB beam of the new cell and accesses on the associated RACH occasion (Chapter 23). So a handover is really "end beam management in cell A, start beam management in cell B," with an RRC procedure bridging them. Keeping that picture straight prevents the classic error of trying to fix a beam problem with handover parameters or vice versa.

Section 29.4Conditional handover — deciding early, executing late

Classic handover has a fragile moment: the UE must successfully receive the handover command from a serving cell that is, by definition, getting weaker — and at mmWave a blocker can drop that link before the command arrives, causing a "too‑late handover" failure. Conditional handover (CHO) fixes this by separating the decision from the execution. The network prepares one or more candidate target cells in advance, while the serving link is still healthy, and gives the UE an execution condition (e.g., an A3/A5‑like trigger). The UE then monitors locally and executes the handover the moment the condition is met — no need to receive a command at the worst possible time.

The benefit is robustness, especially for fast or blockage‑prone users where the serving link can collapse quickly. The cost is that targets are prepared speculatively (reserving some resources that may go unused) and the UE holds candidate configurations in advance. For massive‑MIMO mmWave layers, where links are narrow and blockage is abrupt, CHO has moved from a nice‑to‑have to a near‑necessity for reliable mobility.

Section 29.5L1/L2-triggered mobility (Rel-17 LTM)

There is a grey zone the original two‑scale model doesn't cover well: cells (or TRPs) that are physically close, often under the same distributed unit, where a full L3 handover is overkill but the UE genuinely must change cell. Release 17 introduced L1/L2‑triggered mobility (LTM) for exactly this. Candidate cells are pre‑configured; then an L1/L2 signal — much like a beam switch — triggers the cell change, skipping the slow RRC reconfiguration. The interruption drops from the tens of milliseconds of L3 handover toward the millisecond scale of a beam switch.

LTM matters because in dense massive‑MIMO and mmWave deployments the line between "a beam" and "a cell" blurs — a neighbouring TRP's beam may serve the user better, and you want to move to it as cheaply as you'd switch beams. LTM effectively extends fast, L1/L2 beam‑switching logic across the cell boundary for prepared candidates, reserving full L3 handover for genuine, unprepared cell changes. It is the clearest sign that NR mobility is converging toward "it's all beam management, at different scopes."

▸ Advanced · 3GPP deep-dive — RRM events, CHO & LTM
RRM events A1 (serv > thr) A2 (serv < thr) A3 (nbr > serv + off) A4 (nbr > thr) A5 (serv < t1 & nbr > t2) # TS 38.331 timeToTrigger (TTT) + hysteresis + cellIndividualOffset (CIO) # anti-ping-pong CHO condCfg: prepared target + execution condition (CondEvent A3/A5) LTM (R17) L1/L2 cell switch, candidate cells pre-configured, ms-scale interruption

TTT, hysteresis and CIO are the three knobs that trade ping‑pong against too‑late handover: longer TTT/hysteresis stops flapping but risks late HO; CIO biases toward/against specific neighbours (e.g. to load‑balance). CHO decouples preparation from execution for robustness; LTM brings beam‑switch‑speed cell changes for prepared intra‑DU candidates.

Worked — too-late HO at mmWave Serving FR2 link fading at ~2 dB/ms under blockage; an L3 HO needs ~40–60 ms to complete. The command may not survive the fade → radio‑link failure. CHO (pre‑prepared target, UE executes on trigger) or LTM (ms‑scale switch) closes this gap — which is why both are emphasised for FR2 mobility.

Section 29.6Ping-pong, too-late, too-early — tuning mobility

Mobility tuning lives between two failure modes, and naming them helps. Ping‑pong is handing over (or beam‑switching) back and forth between two near‑equal candidates — wasteful, and it hammers signalling. Too‑late handover is staying on a dying serving link until it fails before the change completes (the mmWave killer above). Too‑early handover is jumping to a neighbour that the UE immediately has to leave again. All three are tuned with the same small set of knobs: TTT (how long a condition must hold), hysteresis (the margin a rival must beat the serving link by), and CIO (a per‑neighbour bias).

The reason this chapter insists on the two‑scale distinction is that these knobs must be applied at the right scale. Intra‑cell beam flapping is fixed with L1 beam‑switch hysteresis, not handover timers; inter‑cell ping‑pong is fixed with TTT/hysteresis/CIO, not beam‑report cadence. The single most common real‑world misconfiguration is "excessive handovers" for users who never actually leave the cell — intra‑cell beam motion mistakenly being handled as L3 mobility. Diagnose the scale first, then reach for the matching knob.

Section 29.7Troubleshooting beam mobility

Mobility complaints split cleanly once you ask "which scale?".

SymptomLikely causeCheck / fix
Many handovers for users who stay in‑cellIntra‑cell beam motion handled as L3Move it to L1 beam switching (TCI); reserve HO for cell edges
Beam flaps between two beamsNo L1 beam‑switch hysteresisAdd switch margin + short dwell; check candidate overlap
Drops/RLF at FR2 under blockageToo‑late handover (command lost)Enable CHO / LTM; prepare targets early
Cell ping‑pongTTT/hysteresis too small, CIO mis‑setLengthen TTT/hysteresis; tune CIO for load/geometry
SINR dips at every beam crossoverBeam‑report cadence < beam‑dwell timeFaster/aperiodic L1‑RSRP reports (Ch 24)

The master discriminator, one more time: same cell → beam (L1) → cadence & switch‑hysteresis; new cell → handover (L3) → TTT/hysteresis/CIO, CHO/LTM. Get the scale right and the correct knob is obvious; get it wrong and you'll tune the parameter that can't fix the problem.

Section 29.83GPP map, KPIs & field note

Concepthome
Beam switching (TCI), L1 reportingTS 38.214 §5.1, TS 38.321
Handover, RRM events, CHO, LTM (R17)TS 38.331, TS 38.300

KPIs: beam switch rate, beam‑switch failure, handover rate/success, ping‑pong, interruption time. Field note: "Excessive handovers for users who never leave the cell." Likely intra‑cell beam changes mis‑configured as L3 mobility, or RRM thresholds too sensitive — ensure intra‑cell movement is handled by L1 beam switching (TCI) and reserve handover for true cell edges; consider CHO/LTM for borderline cases.

Interview · Takeaways · Summary

"Beam switch vs handover?"
Beam switch = intra‑cell, L1/L2 TCI update driven by L1‑RSRP, fast (~ms). Handover = inter‑cell, L3 RRC procedure on SSB‑RSRP measurements, slower (~tens of ms). Same cell → beam switch; new cell → handover.
"What is conditional handover / LTM?"
CHO prepares the target cell in advance so the UE executes the handover when a condition triggers — robust against losing the command on a fading link. R17 L1/L2‑triggered mobility (LTM) enables ms‑scale cell switching without full L3, for pre‑configured (often intra‑DU) candidates — useful when beams behave like mini‑cells.
"How do you stop beam ping‑pong?"
Apply hysteresis at L1: switch only when a rival beam beats the serving one by a margin sustained for a short time, not on a momentary fade. Too little → flapping; too much → the beam lags the user. It's the L1 analogue of handover TTT/hysteresis.
"Which RRM events drive handover, and what are TTT/CIO?"
Commonly A3 (neighbour > serving + offset) and A5 (serving < t1 & neighbour > t2). TTT = how long the condition must hold before reporting; hysteresis = the margin; CIO = a per‑neighbour bias (e.g. for load‑balancing). Together they trade ping‑pong against too‑late handover.
"Why is too‑late handover a mmWave problem specifically?"
FR2 links can fade several dB per millisecond under blockage, faster than an L3 handover (~tens of ms) can complete — so the handover command may not survive. CHO (decide early, execute on trigger) and LTM (ms‑scale switch) close that gap.
  • Intra‑cell beam switching = L1/L2 TCI update (fast); inter‑cell = L3 handover (slow). Same cell → beam; new cell → handover.
  • Beam switching rides the L1‑RSRP loop; use L1 hysteresis to stop beam ping‑pong.
  • Handover uses RRM events (A3/A5) + RRCReconfiguration + RACH to target; tune with TTT/hysteresis/CIO.
  • CHO (decide early/execute late) and R17 LTM (ms‑scale L1/L2 cell switch) robustify FR2 mobility against too‑late handover.
  • Diagnose the scale first — most "excessive handover" issues are intra‑cell beam motion mis‑handled as L3.

Tracking keeps the beam on the user when it can keep up. But beams fail — a hand, a wall, a fast turn drops the link before tracking reacts. Chapter 30 — Beam Failure Detection and Recovery covers the safety net: detecting failure and finding a new beam fast.

— end of Chapter 29 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Ten — Mobility, Failure and Optimization
CHAPTER THIRTY

Beam Failure Detection
and Recovery

"A narrow beam will fail. The question is whether the UE recovers in milliseconds — or drops the call."

Narrow beams fail: a hand covers the phone, a truck blocks the path, the user turns a corner faster than tracking reacts. When the serving beam dies, the UE can't even hear the control channel to be told a new beam — a deadlock. NR's Beam Failure Recovery (BFR) breaks it: the UE autonomously detects failure, finds a candidate beam from a pre‑configured set, and signals recovery (usually via a dedicated PRACH) so the gNB switches it fast. This chapter walks detection and recovery — the safety net under every narrow beam.

ObjectivesWhat you'll walk away knowing

  • Explain beam failure detection — the BFD‑RS set (q0) and the hypothetical‑PDCCH BLER threshold.
  • Understand the candidate beam set (q1): recovery only works if there is somewhere to go.
  • Walk the recovery flow and its two paths: SpCell CFRA‑PRACH vs SCell MAC‑CE BFR.
  • Know the timers/counters and how BFR relates to the RLF fallback (T310/N310/N311).
  • Tune detection speed vs false alarms for blockage‑prone FR2.
  • Troubleshoot BFR that keeps failing to RLF, and connect it to blockage (Chapter 32).

Section 30.1Detecting failure

The UE continuously monitors a set of BFD‑RS (beam‑failure‑detection reference signals — typically the serving CSI‑RS/SSB). Each time their quality falls below a threshold (hypothetical PDCCH BLER too high), the PHY signals a beam failure instance to MAC. If these accumulate to beamFailureInstanceMaxCount before a timer resets, the UE declares beam failure. It's a deliberate, debounced trigger — not a single bad measurement — so transient dips don't cause false recoveries.

detection: BFD-RS below threshold ×N → declare beam failure failure threshold (Qout) instances ×N BEAM FAILURE declared BFD-RS quality
Figure 30.1 · Failure is declared only after N consecutive below-threshold instances (debounced)
How to read this picture The blue line is the serving beam's quality (measured on the BFD‑RS). The red dashed line is the failure threshold (the point where hypothetical PDCCH reliability is too low). Each time the quality dips below it, the PHY flags a beam‑failure instance (red dots). Only after these reach beamFailureInstanceMaxCount within a timer window does the UE declare beam failure — a deliberate debounce so a single fade doesn't trigger a needless recovery. Tune the threshold/count to fire fast enough for real blockage but not on transient dips.

Beam failure → find a new beam → tell the gNB 1 · DETECTBFD-RS BLER > thresh, 2 · FINDscan candidate beams 3 · REQUESTPRACH on new beam 4 · RECOVERgNB responds, link restored counts on BFD-RS: when N consecutive hypothetical-PDCCH BLER exceed Q_out → beam failure instance recovery via contention-free PRACH mapped to the chosen candidate beam (CBD-RS)
Figure 30.2 · The four steps of beam failure recovery
How to read this picture When the serving beam is lost, recovery runs in four steps. Detect: the UE monitors the BFD-RS and counts beam-failure instances when the hypothetical PDCCH BLER stays above threshold; enough in a row trips the failure. Find: it scans the configured candidate beams for one above quality. Request: it sends a contention-free PRACH on the RACH occasion mapped to that beam. Recover: the gNB hears it, responds, and the link is re-pointed — all at L1, far faster than declaring radio-link failure and re-establishing.
Consecutive bad BFD-RS instances trip the failure timer Q_out N in a row above Q_out → failure instance isolated bad samples are ignored; only a run of them counts (avoids false alarms)
Figure 30.3 · Why detection counts a run of bad samples, not one
How to read this picture Each bar is one BFD-RS measurement; the dashed line is the out-of-sync threshold Q_out. A single bad sample (left) is just fading and is ignored. Only when N consecutive measurements exceed the threshold does the UE log a beam-failure instance, and only after the configured number of instances does it declare failure. This deliberate hysteresis stops momentary fades from triggering an unnecessary recovery while still reacting within milliseconds to a real blockage.

Section 30.2Recovering fast

On declaring failure, the UE searches a pre‑configured candidate beam set (CSI‑RS/SSB resources) for one above a quality threshold. Finding one, it sends a Beam Failure Recovery Request (BFRQ) — classically a contention‑free PRACH on resources tied to that candidate beam, so the gNB learns which new beam to use. The gNB responds (on the new beam's CORESET), and the link is restored — ideally within a few milliseconds, before higher layers notice. This is why the candidate set and dedicated PRACH are pre‑configured: there's no time to negotiate when the beam is already dead.

▸ Advanced · 3GPP deep-dive — BFD/BFR parameters (TS 38.213 §6, TS 38.321)
BFD-RS (q0) serving CSI-RS/SSB monitored for failure beamFailureInstanceMaxCount {1,2,3,4,5,6,8,10} # instances to declare failure beamFailureDetectionTimer resets the instance counter candidateBeamRSList (q1) beams the UE may recover to rsrp-ThresholdSSB / BFR min quality to pick a candidate BFRQ contention-free PRACH (PRACH-ResourceDedicatedBFR) on candidate-linked RO beamFailureRecoveryTimer + ra-ResponseWindow bound the recovery attempt SCell BFR (R16) MAC-CE based (no PRACH on SCell)

SpCell BFR uses the dedicated-PRACH path (fast, contention-free); SCell BFR (R16) reports via MAC CE since SCells may lack PRACH. If recovery fails (timer expires / max RA attempts), the UE declares radio link failure (RLF) → RRC re-establishment (slow, often a drop). So BFR is the fast inner loop; RLF is the costly fallback.

Worked — recovery budget Detection: e.g., maxCount=5 instances at one per ~10 ms ≈ 50 ms to declare; recovery: candidate scan + CFRA + response ≈ a few ms. Tighten maxCount/threshold for blockage-prone FR2 to detect faster — but not so tight that fades cause false BFR. FR2 mmWave (human/vehicle blockage) lives on this loop.

Section 30.2What counts as failure — BFD-RS and the hypothetical PDCCH

"Beam failure" needs a precise definition, and NR's is clever. The UE monitors a set of BFD‑RS (the q0 set — the reference signals quasi‑co‑located with the PDCCH it actually relies on). For each, the PHY computes not a raw RSRP but a hypothetical PDCCH BLER: "if I tried to decode my control channel on this beam right now, would the error rate be unacceptable?" When that hypothetical BLER exceeds the out‑of‑sync threshold Qout, the PHY raises a beam‑failure instance to MAC. The point of measuring against PDCCH specifically is that the real danger is losing the control channel — once you can't hear PDCCH, you can't be told anything, including which new beam to use. That is the deadlock BFR exists to break.

The BFD‑RS set can be configured explicitly, or determined implicitly from the PDCCH's own TCI (the UE just watches whatever the control channel is QCL'd with). Implicit is the common, low‑maintenance choice: the UE automatically tracks the right reference as the serving beam changes. Either way, the debounce logic of Figure 30.1 applies — a single bad instance is ignored; only a sustained run trips failure — so the trigger is tied to genuine, persistent loss of the control beam rather than momentary fading.

Section 30.3The candidate beam set — somewhere to go

Detection is only half the story; recovery is impossible if there is nowhere to recover to. So the gNB pre‑configures a candidate beam set (the q1 list — CSI‑RS and/or SSB resources) that the UE will scan the instant failure is declared, each with an associated recovery resource. When the serving beam dies, the UE looks through this list for a beam whose quality clears rsrp-ThresholdSSB and recovers onto it. The whole speed of BFR depends on this set being ready in advance — there is no time to negotiate candidates when the control channel is already gone.

The quality of the candidate set is the single biggest factor in whether BFR succeeds or collapses to RLF. A good set covers diverse directions — ideally including a reflected path (off a wall) that survives when the direct path is blocked (Chapter 32). A poor set lists only beams near the serving one, all of which a single blocker kills together, so recovery finds nothing and the UE drops. When BFR keeps failing in the field, the candidate set — not the detection timers — is usually the culprit: the UE detected failure fine, it just had nowhere to go.

Section 30.4Two recovery paths: SpCell PRACH and SCell MAC-CE

How the UE signals "I've failed, switch me to candidate beam k" depends on which cell failed. On the SpCell (PCell/PSCell) the classic path is a dedicated, contention‑free PRACH (the BFRQ) on resources tied to the chosen candidate beam — so the very act of which PRACH the UE sends tells the gNB which new beam to use, and the gNB replies on that beam's CORESET. It is fast because it is pre‑provisioned and collision‑free, reusing the SSB‑to‑RACH machinery of Chapter 23.

An SCell, though, may not have PRACH configured at all, so Release 16 added a MAC‑CE‑based SCell BFR: the UE reports the failure and its chosen candidate on another carrier's uplink via a MAC control element, rather than a PRACH. Release 17 went further with enhancements for multi‑TRP, where a UE served by two transmission points can lose one beam and recover it while the other keeps the link alive — partial failure rather than total. The throughline is that BFR has grown from a single PCell mechanism into a family covering carriers and TRPs, but the core idea is unchanged: a pre‑provisioned, fast, autonomous "switch me to a beam I can still hear."

Section 30.5The recovery budget and the RLF fallback

BFR is best understood as the fast inner loop of a two‑tier safety system, with radio‑link failure as the slow outer one. The recovery attempt is bounded by timers — beamFailureRecoveryTimer and the RAR window — and a maximum number of recovery attempts. If the UE recovers within them, the link is restored in a few milliseconds and higher layers never notice. If it does not — no candidate clears threshold, or the gNB never responds — the attempt expires and the UE falls through to the much costlier path.

That outer path is radio‑link failure (RLF), governed by the familiar T310 / N310 / N311 machinery: persistent out‑of‑sync indications start T310, and if it expires the UE declares RLF and must perform RRC re‑establishment — typically a visible interruption or an outright drop. The design intent is that BFR catches the common case (one beam blocked, another available) cheaply, so RLF is reserved for genuine loss of the cell. When you see RLF rates climbing on an FR2 layer, the right question is usually "why is BFR failing to catch these?" — because a healthy beam‑recovery loop should keep most blockage events from ever reaching RLF.

▸ Advanced · 3GPP deep-dive — implicit BFD-RS, SCell BFR & RLF interplay
q0 (BFD-RS) explicit list OR implicit = RS in PDCCH TCI states q1 (candidates) candidateBeamRSList + recoverySearchSpace / PRACH per beam SpCell BFR CFRA on PRACH-ResourceDedicatedBFR -> gNB responds on recovery CORESET SCell BFR (R16) BFR MAC-CE on another serving cell (no PRACH on SCell) RLF N310 out-of-sync -> T310 -> (N311 in-sync recovers) else RLF -> re-establishment mTRP BFR (R17) per-TRP failure detection & recovery

BFR (MAC/PHY, ms‑scale) and RLF (RRC, T310‑scale) are deliberately layered: BFR tries first and fast; RLF is the backstop. Implicit q0 keeps the BFD‑RS tracking the PDCCH beam automatically. SCell BFR uses MAC‑CE since SCells often lack PRACH. mTRP BFR recovers one TRP's beam while the other carries on — turning total failures into partial ones.

Worked — BFR catches it before RLF Blockage drops the serving beam; BFR declares failure in ~30–50 ms, finds a reflected candidate, recovers via CFRA in ~3 ms — T310 may have started but N311 in‑sync (on the new beam) stops it before RLF. Net: a brief glitch, no drop. Remove the reflected candidate and the same event runs T310 to expiry → RLF → re‑establishment → a visible drop. The candidate set decides which outcome you get.

Section 30.6Tuning BFR for blockage

BFR tuning is a balance between reacting fast and not crying wolf. The detection knobs — beamFailureInstanceMaxCount and the BFD threshold — set how quickly failure is declared. For a blockage‑prone FR2 layer you want this fast: a human or vehicle can kill a mmWave beam in tens of milliseconds, so a high maxCount that waits for many instances will declare failure too late, after the user has already suffered. But set it too aggressive and ordinary deep fades trigger needless recoveries, churning the link. The right point depends on the deployment's blockage statistics.

The other half of tuning is the candidate set, and it matters more. Fast detection is wasted if there is no good beam to recover to, so for blockage‑prone sites the highest‑value action is usually enriching the candidate set with spatially diverse beams — especially reflected paths that survive when the direct path is blocked. This is exactly where beam management meets the physical environment of Chapter 32; BFR is the mechanism, but blockage mitigation (reflectors, densification, multi‑TRP) is what gives BFR something to work with.

Section 30.7Troubleshooting beam failure recovery

BFR problems show up as drops or stutters on narrow‑beam layers. Split detection faults from recovery faults.

SymptomLikely causeCheck / fix
BFR keeps failing to RLF (drops)No good candidate beam to recover toEnrich candidate set (q1) with diverse/reflected beams (Ch 32)
Failure declared too late (user already stuttering)beamFailureInstanceMaxCount too highLower maxCount / tighten threshold for FR2 blockage
Needless recoveries on deep fadesDetection too aggressiveRaise maxCount slightly; rely on debounce
SCell beam loss not recoveredSCell has no PRACH; MAC‑CE BFR not enabledEnable R16 SCell BFR (MAC‑CE path)
FR2 users drop in crowdsBlockage faster than detect+recover, or candidates co‑blockedFaster detection + reflected candidates + densify (Ch 32)

The discriminator: a detection fault changes when failure is declared (timers/threshold); a recovery fault changes whether there's anywhere to go (candidate set). Most field drops are recovery faults — the UE detected failure fine but had no viable candidate — so look at q1 before you touch the detection counters.

Section 30.83GPP map, KPIs & field note

Concepthome
BFD/BFR procedure, candidate beams, BFRQTS 38.213 §6, TS 38.321
Dedicated PRACH for BFR (CFRA)TS 38.213 §8 (Ch.23)
RLF fallbackTS 38.331

KPIs: beam‑failure rate, BFR success rate, recovery latency, RLF rate, BFR‑per‑beam distribution. Field note: "FR2 users drop in crowds." Human/vehicle blockage kills the narrow beam faster than detection fires, or no good candidate exists. Levers: faster detection (lower maxCount), a richer/ better‑placed candidate beam set (often via reflected paths), and reflectors/densification to provide a backup beam. If BFR keeps failing to RLF, the candidate set is the problem. (Blockage: Chapter 32.)

Interview · Takeaways · Summary

"How is beam failure detected?"
The UE monitors BFD‑RS (serving CSI‑RS/SSB); each below‑threshold check is a beam‑failure instance, and reaching beamFailureInstanceMaxCount within the detection timer declares failure — debounced so transient fades don't trigger it.
"Walk beam failure recovery."
UE scans the pre‑configured candidate beam set (q1), picks one above threshold, sends a BFRQ (contention‑free PRACH on resources tied to that beam), and the gNB responds on the new beam's CORESET — restoring the link in a few ms. If it fails → RLF → RRC re‑establishment.
"Why is detection based on hypothetical PDCCH BLER, not RSRP?"
The real danger is losing the control channel — once PDCCH is undecodable the UE can't be told anything, including a new beam. Measuring hypothetical PDCCH BLER on the BFD‑RS directly captures "can I still hear control here?", which is exactly the deadlock BFR must pre‑empt.
"SpCell vs SCell BFR — what's different?"
SpCell uses a dedicated contention‑free PRACH (BFRQ) tied to the candidate beam. An SCell may have no PRACH, so R16 added MAC‑CE‑based SCell BFR — the UE reports failure + chosen candidate on another cell's uplink instead.
"How do BFR and RLF relate?"
BFR is the fast inner loop (MAC/PHY, ms‑scale); RLF is the slow backstop (RRC, T310/N310/N311). BFR tries first; if it can't recover within its timers/attempts, the UE falls through to RLF → re‑establishment. Healthy BFR keeps most blockage events from ever reaching RLF.
"BFR keeps failing to RLF — where do you look first?"
The candidate set (q1), not the detection timers. The UE usually detected failure fine but had no viable beam to recover to. Add spatially diverse candidates, especially reflected paths that survive when the direct path is blocked (Ch 32).
  • Detection: BFD‑RS (q0) hypothetical‑PDCCH BLER > Qout × N instances → declare failure (debounced); q0 can be implicit from the PDCCH TCI.
  • Recovery: scan the candidate set (q1) → BFRQ (SpCell CFRA‑PRACH, or SCell MAC‑CE) → gNB response, in a few ms.
  • BFR is the fast inner loop; RLF (T310/N310/N311) is the costly backstop — keep events out of it.
  • The candidate set decides success: diverse/reflected beams turn drops into glitches.
  • FR2 blockage is the main driver — tune detection speed and enrich candidates (Chapter 32).

BFR rescues a beam that fails once. But some users fail beams continuously — those moving fast enough that tracking and recovery can't keep up. Chapter 31 — High‑Speed Mobility Beam Challenges tackles that regime: Doppler, tracking delay, and high‑speed‑train beam handling.

— end of Chapter 30 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Ten — Mobility, Failure and Optimization
CHAPTER THIRTY-ONE

High-Speed Mobility
Beam Challenges

"At 300 km/h the beam you aim is already pointing at the past."

Beam tracking (Chapter 24) and recovery (Chapter 30) assume the user moves slower than the loop reacts. On a high‑speed train, they don't. Two effects compound: Doppler shrinks the coherence time below the feedback delay (CSI/SRS arrives already stale — the ageing of Chapter 2), and the narrow beam sweeps past the user faster than tracking can re‑aim. The beam you compute points where the user was. This chapter covers the high‑speed regime — the physics, and the deployment tricks that tame it.

ObjectivesWhat you'll walk away knowing

  • Explain why high speed × high band breaks the tracking loop (coherence time < feedback delay).
  • Separate the two compounding effects: CSI/SRS ageing and narrow‑beam pointing lag.
  • Understand Doppler in depth — shift vs spread, inter‑carrier interference, and why subcarrier spacing matters.
  • Know the deployment fixes: track‑aligned beams, RRH/HST‑SFN, Doppler pre‑compensation.
  • Handle high mobility when geometry isn't controllable (wider beams, lower rank, faster CSI, robust MCS).
  • Troubleshoot "throughput craters while RSRP looks fine" on fast lines.

Section 31.1The beam points at the past

The tracking loop measures the channel at time t and applies the result at t+Δ (report + processing + scheduling delay). If the coherence time (Chapter 2) is shorter than Δ, the channel has already changed — the precoder, rank, and beam are stale on arrival. For a narrow beam this is literal misalignment: the beam centre lands behind the moving user, costing SINR (the −3 dB‑per‑half‑beamwidth penalty of Chapter 12) and eventually triggering failure/recovery (Chapter 30) over and over.

tracking lag → beam aimed where the UE was UE was here UE is here now misalignment = SINR loss → failure loop
Figure 31.1 · At high speed the beam lags the user, mis-pointing and losing SINR
How to read this picture The gNB measured the channel and aimed its narrow beam at where the UE was when the report was generated (blue cone, "UE was here"). But by the time that beam is applied, the fast‑moving UE has moved on ("UE is here now", red). The beam centre now trails the user, so they sit on the beam's edge or outside it — SINR drops (Chapter 12's −3 dB/half‑beamwidth), and if the lag is bad enough the link fails and recovery (Chapter 30) fires, repeatedly. The narrower the beam and the faster the user (and the higher the band, via Doppler), the worse this gets. Fixing it is less about power than about latency and deployment geometry.
High-speed-train deployment: RRUs aimed along the track train RRUs point along the rail so the dominant Doppler is a predictable ± shift the UE can pre-compensate
Figure 31.3 · High-speed-train deployment geometry
How to read this picture Dedicated HST networks tame Doppler with geometry. Remote radio units are mounted beside the track and aimed along it, so the train approaches one RRU and recedes from the next almost head-on. That makes the Doppler a large but predictable ± frequency shift rather than a random spread — and a known shift can be pre-compensated. Combined with overlapping cells transmitting as one (single-frequency network) at the handover point, this is how 350+ km/h service stays reliable where an ordinary macro layout would collapse.
The faster the user, the shorter the beam dwell time pedestrian 3 km/h stay in one beam for seconds HST 350 km/h cross beams in milliseconds
Figure 31.4 · Beam dwell time collapses at high speed
How to read this picture A pedestrian sits inside one narrow beam for seconds, so the beam-management loop has all the time it needs. A 350 km/h train crosses the same beam footprint in milliseconds, so the gNB must predict and pre-switch beams faster than it can measure-then-react. This is why high-speed scenarios lean on wider beams, Doppler-robust reference signals, and trajectory prediction rather than the slow measure-report-switch loop that works for pedestrians.
Speed → Doppler shift → tighter tracking needed frequency → low speed: narrow high speed: broadened & shifted f_D = (v/c)·f_c · at 350 km/h, 3.5 GHz → ~1.1 kHz
Figure 31.2 · Doppler broadens and shifts the received spectrum
How to read this picture Movement shifts every received tone by the Doppler frequency f_D = (v/c)·f_c — about 1.1 kHz for a 350 km/h train at 3.5 GHz, and proportionally worse at FR2. The spectrum smears, channel estimates age within an OFDM symbol, and the precoder the gNB computed a moment ago is already stale. High-speed designs therefore use denser DM-RS/PT-RS for phase tracking and a higher subcarrier spacing so the symbol is short relative to how fast the channel changes.
▸ Advanced · 3GPP deep-dive — the high-speed regime & HST features
Doppler f_d = (v/c)·f_c → coherence time T_c ≈ 1/(2 f_d) 300 km/h @ 3.5 GHz: f_d ≈ 970 Hz → T_c ≈ 0.5 ms 300 km/h @ 28 GHz : f_d ≈ 7.8 kHz → T_c ≈ 0.06 ms tracking lag Δ report + Z processing + scheduling ≈ 1–2 ms → Δ ≫ T_c → stale CSI deployment fixes: unidirectional beams along the track (UE direction known) RRH / HST-SFN: combine cells along track into one SFN area (no handover storm) Doppler pre/post-compensation (large, predictable shift) more additional DM-RS (Ch.10), shorter CSI/SRS period, lower rank for robustness

Because a train's direction is known and constrained, deployments cheat: beams are pre-pointed along the rail, RRHs are strung beside the track and combined (SFN) so the UE stays in one "cell" through many radios, and the large Doppler shift (predictable for a known velocity) is pre-compensated. 3GPP added HST demodulation requirements and (R16/R17) enhancements for high-speed scenarios up to 500 km/h.

Worked — why FR2 HST is brutal At 28 GHz/300 km/h, T_c ≈ 60 µs but the beam-switch + CSI loop is ~ms — orders of magnitude too slow. Hence FR2 high-speed rail relies on very predictable geometry (track-aligned beams, dense RRHs) rather than reactive tracking; pure closed-loop beam tracking simply can't keep up.

Section 31.2Two effects, compounding

It's worth separating the two distinct things that go wrong at speed, because they have different fixes and people conflate them. The first is CSI/SRS ageing (Chapter 2): the channel decorrelates within the measure‑report‑apply delay, so the precoder and rank the gNB computes are for a channel that no longer exists. The second is beam pointing lag: the narrow serving beam's direction is recomputed too slowly, so its centre trails behind the moving user. The first hurts even a wide beam (the precoding is wrong); the second is specific to narrow beams (the aim is wrong).

They compound viciously at high band. Doppler — and therefore ageing — scales with carrier frequency, so the same train is far harder at 28 GHz than at 3.5 GHz; and beams are narrower at high band, so pointing lag bites harder too. The result is the signature high‑speed failure: throughput collapses while RSRP (a slow average that doesn't see the staleness) still looks healthy. Recognising it as two latency problems, not a coverage problem, is the first step — no amount of extra power fixes a beam that points at the past.

Section 31.3Doppler in depth — shift, spread and ICI

Doppler shows up in two forms, and the distinction drives the fix. A single dominant path (the line‑of‑sight to a track‑side radio) produces a Doppler shift — the whole spectrum slides by fD = (v/c)·fc. That is annoying but predictable for a known velocity, and therefore correctable: estimate it and rotate it out. Many paths arriving from different angles produce a Doppler spread — a smearing rather than a shift — which is far harder because there's no single offset to remove. The whole point of track‑aligned HST deployment (next section) is to turn a nasty spread into a clean, removable shift.

OFDM has a specific vulnerability here: Doppler that approaches a fraction of the subcarrier spacing breaks the orthogonality between subcarriers, producing inter‑carrier interference (ICI) — energy leaking from each tone into its neighbours, a noise floor that no power can overcome. This is why subcarrier spacing is a high‑speed design lever: a wider SCS (higher numerology) makes fD a smaller fraction of the tone spacing, so the same Doppler causes proportionally less ICI. Combined with denser DM‑RS and PT‑RS for phase tracking (Chapter 10), choosing the numerology is part of how NR is made Doppler‑robust.

Section 31.4HST-SFN and track-aligned deployment

The cleverest high‑speed engineering exploits a fact ordinary cells can't: a train's path is known and one‑dimensional. Three tricks follow. First, track‑aligned beams — radios are mounted beside the rail and pre‑pointed along it, so the train approaches one radio and recedes from the next almost head‑on, turning Doppler into a clean ± shift the network can pre‑compensate (rather than a messy spread). Second, the UE's direction is essentially known, so there's little need for reactive beam search — the serving beam is determined by position on the track.

Third, and most powerful, HST‑SFN: strings of remote radios along the track transmit the same signal as a single‑frequency network, so the UE sees one continuous "cell" spanning many radios and rarely hands over — eliminating the handover storm that 350 km/h would otherwise cause. Release 16/17 added explicit support for this, including handling the case where the UE receives two strong paths with opposite Doppler shifts (one radio ahead, one behind) — the network signals the relevant frequency offsets so the UE can compensate both. This is the regime where deployment geometry, not closed‑loop tracking, does the heavy lifting.

▸ Advanced · 3GPP deep-dive — SCS vs ICI & HST-SFN compensation
ICI grows with (f_D / SCS) ; wider SCS (higher mu) -> less ICI 300 km/h @ 28 GHz: f_D ~7.8 kHz vs 120 kHz SCS -> ~6.5% (manageable) 300 km/h @ 28 GHz vs 15 kHz SCS -> ~52% (broken) -> FR2 needs wide SCS HST-SFN (R16/17) UE assisted with per-RS Doppler/freq offsets two-segment / opposite-Doppler handling near the SFN midpoint robustness levers additional DM-RS positions, PT-RS, lower rank, shorter CSI period

The ratio fD/SCS governs ICI — which is precisely why FR2 (huge fD) pairs with wide subcarrier spacing. For HST‑SFN, the network tells the UE the expected frequency offsets of the dominant paths so it can pre‑rotate them out, including the awkward midpoint where it hears two radios with equal‑and‑opposite Doppler.

Worked — SCS picks itself 300 km/h at 28 GHz gives fD ≈ 7.8 kHz. Against 15 kHz SCS that's ~52% of a tone — orthogonality destroyed. Against 120 kHz SCS it's ~6.5% — tolerable. The Doppler doesn't choose the numerology politely; at FR2 high speed, wide SCS is mandatory, not optional.

Section 31.5When you can't control the geometry

Track‑aligned HST deployments are a luxury you only get on dedicated rail corridors. On an ordinary macro network serving a fast motorway or a regional train on a normal cell layout, you can't pre‑point beams along the path — so the fixes shift from geometry to robustness. The instinct is to give up some peak performance for resilience: use wider beams (less gain, but they don't need re‑aiming as often and tolerate pointing lag), drop to lower rank (rank‑1 is far more robust to stale CSI than rank‑4), and pick more conservative MCS so the inevitable BLER from ageing doesn't cause retransmission storms.

On the signalling side, shorten the CSI/SRS period (or trigger them aperiodically) so estimates are as fresh as possible, add DM‑RS positions for better intra‑slot tracking, and lean more on SSB‑based (wide‑beam, robust) operation than on tight CSI‑RS refinement that can't keep up. None of this matches the performance of a purpose‑built HST‑SFN line, but it keeps a fast user connected and usable on infrastructure that wasn't designed for them — which is the realistic goal in the general case.

Section 31.6Troubleshooting high-speed performance

High‑speed faults have a tell: metrics that average slowly (RSRP) look fine while metrics that depend on freshness (throughput, BLER) collapse. Diagnose accordingly.

SymptomLikely causeCheck / fix
Throughput craters, RSRP fine, on a fast lineCSI ageing + beam pointing lagShorter CSI/SRS period, lower rank, wider beam; it's latency not coverage
High BLER that worsens with speedDoppler/ICI breaking orthogonalityWider SCS (higher μ), more DM‑RS/PT‑RS positions
Handover storm / drops at speedMany cell crossings on a normal layoutHST‑SFN combining; CHO/LTM (Ch 29); track‑aligned RRHs
Repeated beam‑failure/recovery cyclingNarrow beam can't track the userWider serving beam; track‑aligned pre‑pointed beams
Poor service at SFN midpointTwo paths, opposite Doppler shiftsEnable HST‑SFN dual‑offset compensation (R16/17)

The master tell, once more: at high speed, slow‑averaged KPIs lie. RSRP looking healthy while throughput dies is the fingerprint of staleness, not weak coverage — so reach for latency and geometry levers, never just power or tilt.

Section 31.73GPP map, KPIs & field note

Concepthome
HST demod requirements, DopplerTS 38.101-4, TS 38.104
CSI/SRS periodicity, DM-RS additional positionsTS 38.214, TS 38.211 (Ch.10)
SFN / mobility enhancements (R16/R17)TS 38.300, TS 38.331

KPIs: throughput vs speed, beam‑switch/failure rate vs speed, CSI age, BLER vs Doppler. Field note: "Throughput craters on the express line though RSRP is fine." Classic CSI ageing + beam lag: RSRP (slow average) looks healthy while the precoder/beam are stale. Levers: shorter CSI/SRS periodicity, more additional DM‑RS symbols, lower rank for robustness, and — the real fix — track‑aligned beam/RRH deployment with Doppler pre‑compensation. It's a latency/geometry problem, not a coverage one.

Interview · Takeaways · Summary

"Why does high speed break beam tracking?"
Doppler shrinks the coherence time below the measure‑report‑apply delay, so CSI/precoder/beam are stale on arrival; the narrow beam then mis‑points (lags the user), losing SINR and triggering repeated failure/recovery. Worse at higher bands (Doppler ∝ f_c).
"How is high-speed rail handled in practice?"
Exploit the known, constrained geometry: track‑aligned (unidirectional) beams, RRHs strung along the track combined as an SFN area (no handover storm), Doppler pre‑compensation, plus shorter CSI/SRS periods, more DM‑RS, and lower rank for robustness.
"Doppler shift vs Doppler spread — why does it matter?"
A single dominant path gives a shift (predictable, removable for a known velocity); many paths give a spread (smearing, hard to remove). Track‑aligned deployment deliberately converts spread into a clean shift so it can be pre‑compensated.
"How does Doppler cause ICI, and what's the lever?"
When fD is a non‑trivial fraction of the subcarrier spacing it breaks subcarrier orthogonality, leaking energy between tones (ICI) — an irreducible noise floor. The lever is wider SCS (higher numerology): it shrinks fD/SCS, which is why FR2 high‑speed needs wide SCS.
"What is HST‑SFN and the opposite‑Doppler problem?"
Radios along the track transmit the same signal as one single‑frequency network, so the UE rarely hands over. Near the midpoint it hears two radios with equal‑and‑opposite Doppler shifts; R16/17 lets the network signal the offsets so the UE compensates both.
"Fast user on a normal macro layout (no track‑aligned RRHs) — what do you do?"
Trade peak for robustness: wider beams (tolerate pointing lag), lower rank (robust to stale CSI), conservative MCS, shorter/aperiodic CSI‑SRS, more DM‑RS, and lean on SSB‑based wide‑beam operation. Goal is keep‑connected‑and‑usable, not peak rate.
  • High speed × high band → coherence time < feedback delay → two compounding faults: stale CSI (wrong precoder) and beam pointing lag (wrong aim).
  • Doppler is a shift (removable) or a spread (hard); track‑aligned geometry turns spread into shift; wide SCS limits ICI.
  • Symptom: throughput collapses while RSRP looks fine — staleness, not coverage.
  • Controlled geometry: track‑aligned beams, RRH/HST‑SFN, Doppler pre‑compensation. Uncontrolled: wider beams, lower rank, faster CSI, robust MCS.
  • It's a latency/geometry problem — power and tilt don't fix a beam that points at the past.

Speed is one beam killer; blockage is the other — and at mmWave it's constant. Chapter 32 — Blockage and mmWave Beam Problems closes Part 10: human/building blockage, FR2 propagation, reflected paths, and backup‑beam strategy.

— end of Chapter 31 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Ten — Mobility, Failure and Optimization
CHAPTER THIRTY-TWO

Blockage and
mmWave Beam Problems

"At mmWave, a human hand is a wall. Survival means having a second way around."

At FR2, the pencil beam that gives you gigabits is fragile: a body, a bus, or a building edge can drop it 20–40 dB in milliseconds. mmWave doesn't diffract around obstacles the way low bands do — it's nearly optical. So blockage isn't an edge case; it's the dominant impairment, and the only defence is beam diversity: keeping a backup beam (often via a reflected path) ready to switch to. This chapter covers human/building blockage, FR2 propagation, reflected paths, and backup‑beam strategy — closing Part 10.

ObjectivesWhat you'll walk away knowing

  • Explain human and building blockage at FR2 and its fast, deep onset.
  • Understand FR2 propagation — high path loss, sparse multipath, penetration, foliage/rain, O₂ absorption.
  • Distinguish the three kinds of blockage (self/dynamic/static) and their different mitigations.
  • Contrast reactive recovery vs proactive prediction (sensing, sub‑6 prediction, ML).
  • Use multi‑TRP and RIS to manufacture spatial diversity against blockage.
  • Troubleshoot FR2 cells that drop users in foot traffic.

Section 32.1Blockage at mmWave

mmWave wavelengths are millimetres; obstacles that low bands flow around become solid walls. A human body attenuates a 28 GHz beam by ~20–35 dB and a building by far more — and because the user holds the phone, self‑blockage (hand/head) is constant. Onset is fast (a hand moves in tens of ms), so the link can collapse before the failure/recovery loop (Chapter 30) reacts. The defining FR2 design problem: the strong direct path is also the easiest to block.

direct mmWave beam blocked → link collapses blocker (body/bus) UE (lost) ~20–35 dB drop in ms — faster than recovery reacts
Figure 32.1 · A blocker on the direct mmWave path drops the link deeply and fast
How to read this picture The gNB's narrow beam runs straight to the UE — until a blocker (a person, a bus, a wall edge) steps into the path. At mmWave the beam can't bend around it (millimetre waves are near‑optical), so the signal drops 20–35 dB almost instantly (red ✕). The link can collapse before beam‑failure detection even fires. This is why FR2 can't rely on the direct path alone — and why the next section's backup beam (a pre‑measured reflected path) is essential for survival.

Predict the blockage, switch before the signal drops time → would-be drop predict → switch now backup beam holds the link
Figure 32.3 · Proactive beam switching beats reactive recovery
How to read this picture Reactive recovery waits for the signal to collapse (red dashed) before finding a new beam — a visible glitch. Proactive schemes use sensors or learned prediction to anticipate the blockage and switch to a pre-measured backup beam before the drop happens (green), so the user never sees it. Whether driven by camera/radar sensing or by an ML model trained on beam histories (Chapter 40), prediction is what turns mmWave from fragile to dependable — the difference between recovering from an outage and never having one.
mmWave beams are easily blocked — three flavours self / handthe body holding the UEblocks its own beam~20-40 dB loss dynamica person/vehicle crossesthe beam pathsudden, transient staticwalls, foliage, glasspermanent shadowplan around it
Figure 32.4 · Three kinds of blockage at mmWave
How to read this picture mmWave beams behave almost like light — anything opaque casts a deep shadow. Self/hand blockage is the user's own body around the device, costing 20-40 dB. Dynamic blockage is a person or vehicle crossing the path — sudden and transient. Static blockage is fixed geometry: walls, foliage, glass. The mitigations differ: dynamic blockage is beaten by keeping a second beam ready to swap to, static blockage by site planning, and self-blockage by multiple antenna panels around the device.
Keep a backup beam — swap instantly when one is blocked gNB beam A — blocked ✗ person beam B (reflected) — kept as backup ✓ UE
Figure 32.2 · Multi-beam diversity rides through blockage
How to read this picture Because a single mmWave beam can vanish in milliseconds, robust links keep a second beam — often a reflected path off a wall — pre-measured and ready. When the direct beam A is blocked by a passing person, the gNB switches to backup beam B without waiting to re-discover it. The cost is sounding and tracking more beams than you strictly need; the payoff is that a momentary blockage becomes a glitch instead of a dropped session.

Section 32.2Backup beams & reflected paths

The escape is beam diversity: keep more than one viable beam, so when the direct one blocks, you switch to a backup — typically a reflected path off a wall or building (weaker, but not blocked by the same obstacle). The candidate beam set in BFR (Chapter 30) is exactly this backup pool, and good FR2 design deliberately includes reflected‑path beams in it. Beyond that: multi‑TRP (two transmission points so a body can't block both at once) and emerging RIS (reconfigurable reflecting surfaces, Chapter 42) that create controllable backup paths.

direct blocked → switch to reflected backup beam direct (blocked ✕) wall (reflector) reflected backup beam UE (kept) candidate beam set (Ch.30) should include reflected-path beams
Figure 32.5 · When the direct path blocks, a pre-measured reflected beam keeps the link alive
How to read this picture The direct beam is blocked (red dashed ✕). But the gNB also has a reflected‑path beam bouncing off a wall to reach the UE from another angle — weaker, but not behind the same obstacle. Because that beam was already in the UE's candidate set (Chapter 30), recovery switches to it fast and the link survives. Good FR2 planning deliberately seeds the candidate set with such reflected beams, and adds multi‑TRP (two sites, so one body can't block both) and eventually RIS (Chapter 42) to manufacture backup paths. mmWave reliability is a beam‑diversity problem.
▸ Advanced · 3GPP deep-dive — blockage, beam diversity & multi-TRP
blockage loss human ~20–35 dB · onset ~tens of ms · building ≫ FR2 channel sparse multipath (few clusters), high path loss → few viable beams backup candidateBeamRSList (Ch.30) should include reflected-path beams multi-TRP TS 38.214: 2 TCI states / 2 CORESETPoolIndex → spatial diversity vs blockage RIS reconfigurable intelligent surface (study/6G, Ch.42) → engineered reflection

Because FR2 multipath is sparse, there may be only 1–2 usable beams — so losing the direct one is catastrophic unless a backup was pre-identified. Multi-TRP (two physical transmission points serving one UE) is the standardized robustness tool: a blocker rarely shadows both TRPs at once, so the UE keeps one link. This is why FR2 deployments densify and place TRPs for angular diversity, not just coverage.

Worked — why FR1 shrugs At 3.5 GHz, diffraction + richer multipath mean a body costs only a few dB and alternative paths abound — blockage is a nuisance. At 28 GHz the same body costs 25+ dB with few alternatives — blockage is existential. Same person, opposite consequence: the band, not the obstacle, decides.

Section 32.3FR2 propagation — why mmWave is near-optical

To understand blockage you have to understand the propagation behind it. At millimetre wavelengths the radio behaves much more like light than the forgiving low‑band signals engineers grew up with. Free‑space path loss rises with frequency, so a 28 GHz link starts ~18 dB down on a 3.5 GHz one before anything else — which is exactly why FR2 needs the huge array gain of massive MIMO just to close the link. Penetration loss is brutal: modern low‑emissivity glass can cost 20–40 dB, so an outdoor FR2 cell barely serves indoors at all. And the multipath is sparse — only a handful of significant clusters (TR 38.901), versus the rich scattering of sub‑6 — so there simply aren't many alternative paths to fall back on.

Two more effects shape FR2 planning. Foliage and rain attenuate strongly (a tree in leaf or heavy rain adds many dB), making links seasonal and weather‑dependent in a way low bands never are. And at 60 GHz specifically, oxygen absorption adds ~15 dB/km — irrelevant for a 150 m cell but a hard ceiling on range. The cumulative picture: FR2 links are short, directional, easily shadowed, and starved of alternative paths. Every blockage problem in this chapter is really a consequence of this near‑optical propagation, and every fix is about manufacturing the alternative paths that nature didn't provide.

Section 32.4The three kinds of blockage — and three different fixes

"Blockage" is really three distinct problems that happen to share a symptom, and conflating them leads to the wrong fix. Self/hand blockage is the user's own body and hand around the device — it is persistent (the hand stays there) and costs 20–40 dB. Its fix lives in the UE: multiple antenna panels around the phone so that when one faces the hand, another faces the gNB. There's little the network can do about a hand on a panel.

Dynamic blockage is a person or vehicle crossing the beam path — sudden and transient (hundreds of ms), the classic "someone walked between you and the cell." Its fix is the network's: a pre‑measured backup beam to swap to for the duration, or proactive prediction (next section). Static blockage is fixed geometry — a wall, a pillar, dense foliage — casting a permanent shadow. Its fix is planning: place TRPs, reflectors, or RIS so the shadowed region is covered by another path from the start. Self → UE design; dynamic → backup beams; static → site planning. Naming which one you face is half the battle.

Section 32.5Proactive avoidance — switching before the drop

Beam‑failure recovery (Chapter 30) is fundamentally reactive: it waits for the beam to fail, then scrambles to a backup — a visible glitch. At FR2, where blockage is the norm rather than the exception, the ambition is to switch before the drop happens, so the user never sees it. That requires predicting the blockage, and there are several ways to do it.

One is sensing: a camera or radar at the cell watches for a person about to cross the beam and triggers a pre‑emptive switch — part of the integrated‑sensing‑and‑communication (ISAC) direction of 6G (Chapter 42). Another is sub‑6 prediction: a co‑located low‑band link, which the same blocker barely affects, gives early warning of a fade about to hit the FR2 beam. A third, increasingly important, is machine learning (Chapter 40): a model trained on beam‑quality histories learns the signature of an impending block and pre‑switches. All three turn the reactive recovery loop into a proactive one — the single biggest lever for making mmWave feel dependable rather than flaky.

Section 32.6Multi-TRP and RIS — manufacturing diversity

If nature won't provide alternative paths, the network builds them. Multi‑TRP is the standardised tool: serve one UE from two physically separated transmission points at once, so a single blocker — which can only shadow one line of sight — cannot kill both links. The UE holds two TCI states (two beams, one per TRP, Chapter 25) and rides through a block on whichever survives. This is why FR2 deployments densify and place TRPs for angular diversity, not merely for coverage: two TRPs that happen to be nearly collinear with a user offer little blockage protection, while two at a wide angular separation are robust.

The emerging tool is the RIS (reconfigurable intelligent surface, Chapter 42): a panel of tunable elements that turns a wall into a steerable mirror, manufacturing a controllable reflected path exactly where you need one — bouncing a beam around a known static blocker without a powered relay. Where multi‑TRP adds a second source, RIS adds a second path. Both attack the same root cause: FR2's lack of natural alternative routes. The future of mmWave reliability is less about stronger beams and more about always having another way around — which is the through‑line of this entire chapter.

▸ Advanced · 3GPP deep-dive — FR2 propagation numbers & multi-TRP schemes
FSPL +~18 dB going 3.5 -> 28 GHz (same distance) penetration low-e glass 20-40 dB · brick/concrete much more O2 absorption ~15 dB/km at 60 GHz · rain: several dB at FR2 FR2 multipath sparse: few clusters (TR 38.901) -> few viable beams multi-TRP SDM / FDM / TDM schemes; 2 CORESETPoolIndex; 2 TCI states URLLC mTRP PDSCH repetition across TRPs (scheme 2a/2b) for reliability

FR2 multi‑TRP comes in flavours: SDM/FDM/TDM spread layers/frequency/time across the two TRPs, and for reliability PDSCH repetition sends the same data via both — so a blocker on one path is covered by the other. Two CORESETPoolIndex values let even the control channel come from either TRP, so blockage of one doesn't cost the UE its scheduling.

Worked — angular diversity matters Two TRPs 5° apart (as seen from the UE): a body blocks the ~10° beam to both → no help. Two TRPs 90° apart: a body blocks at most one line of sight → the other carries the link. Same two TRPs, wildly different blockage robustness — placement, not count, is what buys diversity.

Section 32.7Troubleshooting blockage

Blockage complaints are about variance — the link is great until suddenly it isn't. Sort the cause by the kind of blockage.

SymptomLikely causeCheck / fix
FR2 cell drops users in busy foot trafficDynamic blockage outpacing recovery, no backupSeed candidate set with reflected beams; multi‑TRP; proactive prediction
One UE model always weak / one‑sidedSelf/hand blockage (panel placement)UE design (multi‑panel) — limited network fix
Permanent dead zone behind a structureStatic blockage (wall/pillar/foliage)Site planning: add TRP / reflector / RIS to cover the shadow
Both multi‑TRP links blocked togetherTRPs too collinear (poor angular diversity)Re‑site TRPs for wide angular separation
FR2 link fails seasonally / in rainFoliage / rain attenuationPlan margin; densify; don't rely on a single marginal path

The unifying lesson: blockage is solved by having another way around, not by more power — a blocked beam at 25 dB loss can't be powered through. So every fix in the table manufactures or pre‑identifies an alternative path: reflected candidates, a second TRP, a reflector/RIS, or site geometry. Reach for diversity, not dBm.

Section 32.83GPP map, KPIs & field note

Concepthome
Multi-TRP, 2 TCI states, beam diversityTS 38.214 §5.1
Candidate beams / BFRTS 38.213 §6 (Ch.30)
FR2 channel modelTR 38.901

KPIs: blockage event rate, BFR rate (FR2), recovery latency, multi‑TRP usage, throughput variance. Field note: "FR2 cell drops users in busy foot traffic." Human blockage outpacing recovery, with no good backup. Levers: seed the candidate set with reflected‑path beams, enable multi‑TRP for diversity, densify/place TRPs for angular diversity, and consider reflectors/RIS. Blockage is solved by having another way around, not by more power.

Interview · Takeaways · Summary

"Why is blockage so much worse at FR2 than FR1?"
mmWave is near‑optical: it doesn't diffract around obstacles and its multipath is sparse, so a body causes 20–35 dB loss with few alternative paths. At FR1, diffraction and rich multipath make the same body only a few dB with many alternatives.
"How do you defend against blockage?"
Beam diversity: pre‑identify backup beams (often reflected paths) in the candidate set, use multi‑TRP so one blocker can't shadow both points, densify/place TRPs for angular diversity, and (emerging) RIS to engineer reflection paths.
"Name the three kinds of blockage and their fixes."
Self/hand (persistent, 20–40 dB) → UE multi‑panel design; dynamic (a crosser, transient) → backup beam / proactive switch; static (wall/foliage, permanent) → site planning (TRP/reflector/RIS). Self→UE, dynamic→backup beams, static→planning.
"Reactive vs proactive blockage handling?"
Reactive = BFR waits for failure then recovers (a visible glitch). Proactive = predict the block and pre‑switch before the drop — via sensing (camera/radar, ISAC), a co‑located sub‑6 early‑warning link, or an ML model on beam histories. Proactive is the key to making mmWave feel dependable.
"Why does multi‑TRP placement matter, not just having two?"
Blockage protection comes from angular diversity. Two TRPs nearly collinear with the UE can both be shadowed by one body; two at wide angular separation can't. Same count, opposite robustness — site for angle, not just coverage.
"FR2 cell drops users in crowds — first moves?"
It's dynamic blockage outpacing recovery with no backup. Seed the BFR candidate set with reflected‑path beams, enable multi‑TRP for diversity, place TRPs for angular separation, and add proactive prediction. Don't add power — a 25 dB‑blocked beam can't be powered through.
  • FR2 blockage is fast and deep (~20–35 dB human); near‑optical propagation + sparse multipath means few alternatives.
  • Three kinds — self (UE design), dynamic (backup beams/prediction), static (site planning) — need different fixes.
  • Proactive prediction (sensing / sub‑6 / ML) beats reactive recovery — switch before the drop.
  • Defence = diversity, not dBm: reflected‑path candidates, multi‑TRP (placed for angular separation), densification, RIS.

That closes Part 10. We've built and stress‑tested the whole beam system. Now we make it measurable and fixable. Part 11 — KPI, Logs and Troubleshooting opens with Chapter 33 — MIMO and Beamforming KPIs: the counters and KPI tree that turn everything in this book into numbers on a dashboard.

— end of Chapter 32 · end of Part 10 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eleven — KPI, Logs and Troubleshooting
CHAPTER THIRTY-THREE

MIMO and
Beamforming KPIs

"You can't optimize what you can't measure — and you can't measure MIMO with a single number."

Everything in this book becomes, on a live network, a set of counters. To optimize MIMO you must read them as a connected system, not in isolation — because the symptom ("low throughput") is downstream of a chain of causes (coverage → interference → rank → modulation). This chapter assembles the MIMO/beamforming KPI tree and the diagnostic chain that lets you localize a problem from the dashboard before you ever drive‑test. It's the toolkit for Part 11's troubleshooting chapters.

ObjectivesWhat you'll walk away knowing

  • Know the core MIMO KPIs: RSRP, RSRQ, SINR, CQI, RI, PMI, MCS, BLER, throughput, spectral efficiency, MU pairing, beam‑failure rate.
  • Read the KPI tree and the golden diagnostic chain, and use the SINR–RSRP gap.
  • Interpret the report distributions (CQI/RI/PMI/CRI histograms), not just averages.
  • Understand link adaptation & the 10% BLER operating point.
  • Read beam and MU KPIs and roll counters up to cell spectral efficiency (CDFs, not means).
  • Apply a repeatable KPI‑driven troubleshooting workflow that scopes the next chapter to read.

Section 33.1The KPI tree

MIMO KPIs form a dependency tree: coverage (RSRP) feeds quality (SINR), which feeds the UE's report (CQI), which with rank (RI) sets modulation (MCS), which yields throughput — all gated by reliability (BLER). Around this spine sit the beam KPIs (best‑beam distribution, beam‑switch/failure rate) and the MU KPIs (pairing rate/order). Read top‑down to localize: find the first KPI that's wrong and you've found the layer to fix.

the MIMO KPI tree — find the first thing that's wrong RSRP SINR CQI RI MCS throughput gated by BLER (reliability) · branches: beam KPIs & MU pairing RSRP good, SINR bad → interference / mis-aimed beam SINR good, RI=1 → low-rank channel (Ch.34) all good, throughput low → MU not pairing (Ch.35)
Figure 33.1 · The KPI tree: walk it left to right and fix the first KPI that's wrong
How to read this picture This is the diagnostic spine from Chapter 1, now as your dashboard workflow. Coverage (RSRP) → quality (SINR) → the UE's reported quality (CQI) → with rank (RI, highlighted) → modulation (MCS) → throughput, all gated by BLER. The three red notes are the classic forks: strong RSRP but poor SINR = interference or a mis‑aimed beam; good SINR but RI stuck at 1 = a low‑rank channel (Chapter 34); everything healthy but throughput low = MU‑MIMO not pairing (Chapter 35). Find the first wrong node and you've localized the problem to a layer — that's the whole method of Part 11.
MU pairing rate — how often the cell actually multiplexes users busy cell 70% light cell 25% broken 5% low rate at high load → CSI or pairing problem (Ch 35)
Figure 33.3 · MU pairing rate, a load-aware KPI
How to read this picture The MU pairing rate — the fraction of transmissions that actually serve two or more users together — only means something when read against load. A lightly loaded cell pairs little simply because few users are waiting, and that's fine. But a busy cell with a low pairing rate is wasting its array: the users are there but the cell can't separate them, pointing at a CSI-quality or pairing-threshold problem (Chapter 35). This is why dashboards plot pairing rate alongside PRB utilisation — the two together tell the real story.
Rank distribution — the headline massive-MIMO KPI % rank 1rank 2rank 3rank 4 healthy cell: meaningful share at rank ≥ 2
Figure 33.4 · Rank distribution tells you if spatial multiplexing is working
How to read this picture This histogram is the single most telling massive-MIMO KPI: what fraction of transmissions use rank 1, 2, 3, 4… If almost everything is rank 1, the cell is paying for many antennas but only getting beamforming gain, not multiplexing — a sign of poor scattering, low SINR, or a codebook/CSI problem (the subject of Chapter 34). A healthy cell shows a real tail at rank 2 and above, meaning users routinely receive two or more parallel layers and the array is earning its capacity.
KPIs form a causal chain — read them together CSI / PMIchannel quality rank / CQIlayers & MCS BLERretransmissions throughputuser-felt rate cell SE
Figure 33.2 · The KPIs are a causal chain, not independent numbers
How to read this picture No KPI means much alone. Channel quality (CSI/PMI) sets the achievable rank and CQI; rank and CQI set the scheduled layers and MCS; those, against the real channel, produce a BLER; throughput is what survives the retransmissions; and the cell's spectral efficiency is the sum across users. When throughput is low, you walk this chain left to right to find where it broke — bad CSI, stuck rank, or excess BLER each point at a different fix, which is exactly what the troubleshooting chapters do.
▸ Advanced · 3GPP deep-dive — the counters & their targets
RSRP SS-RSRP / CSI-RSRP (TS 38.215) # coverage SINR SS-SINR / CSI-SINR # quality; gap to RSRP = interference CQI wideband + subband histogram # link adaptation input RI.Distr[1..8] rank usage # multiplexing health MCS / BLER 1st-tx BLER target ≈ 10% # link adaptation operating point MU pairing rate / order # breadth (Ch.16/35) beam: best-SSB/CRI dist, switch rate, BFR rate # beam health (Ch.30-32) cell spectral efficiency (b/s/Hz/cell) # the bottom line

Targets/health: 1st-transmission BLER ~10% (HARQ operating point); RI spread into 2–4 in cell centre; MU pairing rising under load; BFR rate low with high recovery success. The SINR–RSRP gap is the single most useful derived metric — a large gap with strong RSRP says "interference-limited," the most common real-world MIMO ceiling.

Worked — localize in 10 s Dashboard: RSRP −85 (good), SINR +2 (poor), CQI 5, RI 1, BLER 12%, MU pairing 0. Read left→right: RSRP good but SINR poor → interference or mis-aimed beam; RI 1 → also low-rank. Action: check neighbour interference / beam alignment first (SINR), then rank/CSI-RS (Ch.34). No drive test needed to scope it.

Section 33.2Coverage and quality — RSRP, RSRQ, SINR and the gap

The base of the tree is two questions: is there enough signal? and is it clean? RSRP answers the first — the received power of the reference signals (SS‑RSRP from the SSB, CSI‑RSRP from CSI‑RS), a pure coverage metric. RSRQ folds in how loaded the band is (signal relative to total received power). But the metric that actually predicts throughput is SINR — signal over interference plus noise — because a strong signal sitting in strong interference carries little.

The single most useful derived number on any MIMO dashboard is the SINR–RSRP gap. Strong RSRP with good SINR means a clean, noise‑limited link — turn the array loose. Strong RSRP with poor SINR means the cell is interference‑limited — the most common real‑world MIMO ceiling — and the fix is interference management (beam nulls, coordination, Chapter 37), not more power. That one comparison instantly separates a coverage problem (low RSRP) from an interference problem (good RSRP, poor SINR), which point at completely different chapters. Always compute the gap before anything else.

Section 33.3The report KPIs — read the distribution, not the average

The UE's CSI reports become four telling histograms, and the mistake beginners make is averaging them. The CQI distribution shows the spread of link quality — a low average with a long tail is a different problem from uniformly mediocre CQI. The RI distribution (rank usage 1–8) is the headline massive‑MIMO health metric: mostly rank‑1 means the array is buying beamforming gain but no multiplexing (Chapter 34); a healthy cell shows a real tail at rank 2+. The PMI/CRI distributions show which beams/precoders users actually select — a giveaway for coverage gaps or a stuck beam.

Why distributions and not means? Because MIMO performance is dominated by the tails. The cell‑edge fifth percentile of SINR, the fraction of transmissions stuck at rank 1, the worst‑served beam — these are where the problems live, and an average smooths them into invisibility. A cell can have a perfectly respectable mean SINR while its bottom 10% of users are unusable. Reading KPIs as CDFs rather than single numbers is the difference between "the cell looks fine" and "I can see exactly which users are suffering and why."

Section 33.4Link adaptation and BLER — the 10% operating point

BLER (block error rate) looks like a pure reliability metric, but it is really the operating point of link adaptation, and its target value surprises people: roughly 10% first‑transmission BLER, deliberately. Why aim for 10% errors? Because HARQ retransmissions are cheap and a too‑conservative link (near 0% BLER) is leaving throughput on the table — it could have used a higher MCS. The outer‑loop link adaptation continuously nudges the MCS to hold BLER near that 10% sweet spot: if errors climb, it lowers MCS; if errors vanish, it raises MCS to chase more rate.

This is why BLER must be read together with MCS, not alone. A cell at 2% BLER isn't "better" than one at 10% — it's likely under‑shooting, running conservative MCS and losing throughput. A cell at 30% BLER is genuinely broken — link adaptation can't keep up, usually because CSI is stale (mobility, Chapter 31) or the channel is changing faster than the loop. The healthy signature is BLER hovering at ~10% with MCS tracking the channel; deviations in either direction tell a story about the link‑adaptation loop's health.

Section 33.5Beam and MU KPIs — the massive-MIMO-specific numbers

Around the throughput spine sit the KPIs unique to beamformed, multi‑user systems. The beam KPIs: best‑SSB/CRI distribution (which beams carry the load — a coverage map), beam‑switch rate (mobility activity), and beam‑failure/recovery rate with recovery success (the Chapter 30/32 health check — a high BFR rate with low success screams blockage). The MU KPIs: pairing rate (how often users are multiplexed) and pairing order (two, four, eight at once), plus layer utilisation (are the array's degrees of freedom actually used?).

The crucial subtlety, shown in Figure 33.3, is that MU pairing rate must be read against load. A lightly loaded cell pairs little simply because few users are waiting — that's fine, not a fault. A busy cell with a low pairing rate is the red flag: the users are there but the cell can't separate them, pointing at a CSI‑quality or pairing‑threshold problem (Chapter 35). This is why dashboards plot pairing rate alongside PRB utilisation — only together do they say whether the array is being wasted. A beam or MU KPI in isolation is almost meaningless; in context it's diagnostic.

Section 33.6From counters to spectral efficiency — the bottom line

All of these counters ultimately roll up into one number that pays the bills: cell spectral efficiency (bits/s/Hz/cell), the total useful throughput the cell extracts from its spectrum. Every KPI in this chapter is, in effect, an explanation of why the cell's spectral efficiency is whatever it is — good CSI enables high rank and MCS, which (times pairing, minus BLER overhead) yields the spectral efficiency. When an operator asks "is this massive‑MIMO cell earning its cost?", spectral efficiency is the answer and the KPI tree is the diagnosis of how to raise it.

But even the bottom line should be read as a distribution. Cell‑edge (5th‑percentile) spectral efficiency often matters more than the cell average, because a cell can post a fine average while its edge users are starved — and edge experience drives complaints and churn. The whole art of reading MIMO KPIs is to keep zooming: from the single bottom‑line number, into its CDF, into the KPI tree that explains the bad tail, down to the specific layer (coverage, interference, rank, pairing) where the fix lives. That zoom is the method the rest of Part 11 applies.

▸ Advanced · 3GPP deep-dive — PM counters & reading CDFs (TS 28.552)
PM counters (TS 28.552) standardised 5G performance measurements in the OSS RI.Distr[1..8] rank usage histogram # multiplexing health CQI.Distr per-CQI counts # read the tail, not the mean DL/UL BLER (1st-tx) target ~10% # link-adaptation operating point MU pairing rate / order vs PRB utilisation 5%-ile vs mean SE edge experience vs cell average

Vendor OSS expose these as TS 28.552 performance measurements. The discipline that separates good optimisation from guesswork: read CDFs and percentiles, not averages. The 5th‑percentile SINR/SE (cell edge) and the rank‑1 fraction reveal problems the mean hides; pair every KPI with its conditioning variable (MU pairing with load, BFR with mobility/blockage).

Worked — average lies Two cells both average 4.0 b/s/Hz. Cell A: tight CDF, 5%‑ile 1.5. Cell B: 5%‑ile 0.3 with a high rank‑1 fraction. Same mean, but B has a starved edge (low‑rank/interference) generating all the complaints. The average said "identical"; the CDF said "fix cell B's edge." Always read the tail.

Section 33.7A KPI-driven troubleshooting workflow

Put it together as a repeatable method — the workflow the rest of Part 11 instantiates. Don't drive‑test on a hunch; pull the counters and let them scope the investigation.

First abnormal KPIWhat it meansGo to
Low RSRPCoverage problemLink budget, tilt, power, site density (Ch 37)
RSRP good, SINR poor (big gap)Interference‑limited or mis‑aimed beamBeam alignment (Ch 36) / cell‑edge interference (Ch 37)
SINR good, RI stuck at 1Low‑rank channel / CSI / configLow‑rank troubleshooting (Ch 34)
All good, MU pairing ≈ 0 under loadUsers not being multiplexedMU‑MIMO not activating (Ch 35)
High BFR rate, low recovery successBlockage / no candidate beamBlockage & beam diversity (Ch 30/32)
BLER ≫ 10% with stale CSILink adaptation can't trackMobility / high‑speed (Ch 31)

This table is Part 11 in miniature: the first abnormal KPI on the tree names the failure class, and the failure class names the chapter. The whole point of measuring MIMO as a connected system is that you never have to guess which knob to turn — the counters point straight at it.

Section 33.83GPP map, KPIs & field note

Concepthome
Measurements (RSRP/RSRQ/SINR)TS 38.215
CSI (CQI/RI/PMI/CRI/LI)TS 38.214 §5.2
Counters / PM (vendor OSS, 3GPP PM)TS 28.552 (5G PM)

Field note: "Throughput complaints, no obvious cause." Don't guess — pull RSRP, SINR, CQI, RI, BLER, MU pairing for the cell/UE and walk the tree. The first abnormal KPI scopes the next chapter to read: low SINR→interference/beam (Ch.36/37); RI stuck→Ch.34; MU pairing zero→Ch.35. The KPI tree converts a vague complaint into a specific investigation.

Interview · Takeaways · Summary

"How do you localize a MIMO throughput problem from KPIs?"
Walk the tree RSRP→SINR→CQI→RI→MCS→throughput (gated by BLER). Find the first wrong KPI: RSRP good+SINR bad → interference/beam; SINR good+RI=1 → low‑rank; all good+throughput low → MU not pairing. That scopes the fix.
"What's the most useful derived metric?"
The SINR–RSRP gap: strong RSRP with poor SINR means interference‑limited, the most common MIMO ceiling — distinguishing a coverage problem from an interference/beam problem instantly.
"Why target ~10% BLER, not 0%?"
HARQ retransmissions are cheap, so the throughput‑optimal operating point runs the highest MCS that still keeps first‑transmission errors near 10%. Near‑0% BLER means link adaptation is too conservative (under‑shooting MCS, losing rate); 30% means it can't track the channel (often stale CSI).
"Why read CDFs/percentiles instead of averages?"
MIMO performance lives in the tails. A cell can have a fine mean SINR/SE while its bottom 5–10% of users are unusable. The 5th‑percentile (edge) SE and the rank‑1 fraction reveal problems the average hides — two cells with the same mean can have very different edges.
"Why must MU pairing rate be read against load?"
A lightly loaded cell pairs little simply because few users wait — not a fault. A busy cell with low pairing is the red flag: users are present but the cell can't separate them (CSI quality / pairing threshold, Ch 35). Plot pairing rate against PRB utilisation.
"Dashboard: RSRP good, SINR +2, RI 1, MU 0 — what do you do?"
Walk the tree: good RSRP + poor SINR (big gap) → interference or mis‑aimed beam (Ch 36/37) — fix first; RI stuck at 1 → also low‑rank (Ch 34); MU 0 likely follows from poor SINR. Scope it from counters, no drive test needed.
  • MIMO KPIs form a tree: coverage→quality→report→rank→modulation→throughput, gated by BLER.
  • Walk it left→right; fix the first wrong KPI. The SINR–RSRP gap flags interference vs coverage.
  • Read distributions, not averages — the tails (edge SE, rank‑1 fraction) are where problems hide.
  • BLER ~10% is the link‑adaptation operating point; read it with MCS. MU pairing is read against load.
  • Counters (TS 28.552) roll up to cell spectral efficiency; the first abnormal KPI scopes the troubleshooting chapter.

The tree points at a layer; the next chapters fix specific failures. The most common is the one we've foreshadowed since Chapter 2. In Chapter 34 — Low‑Rank Troubleshooting, we tackle "RI stuck at 1 despite good RSRP" end to end.

— end of Chapter 33 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eleven — KPI, Logs and Troubleshooting
CHAPTER THIRTY-FOUR

Low Rank
Troubleshooting

"Strong signal, stuck at rank 1. The radio is fine — the channel, or the config, is lying flat."

The most common massive‑MIMO ticket: RI stuck at 1, low throughput, despite excellent RSRP and even decent SINR. We've foreshadowed it since Chapter 2 (the highway cell) and Chapter 3 (the condition number). Now we solve it end to end — a decision tree from symptom to root cause to fix. The golden rule: strong RSRP rules out coverage, so a stuck rank is a channel or configuration problem, never a power one.

ObjectivesWhat you'll walk away knowing

  • Recognize the low‑rank signature (RI=1, good RSRP, poor spectral efficiency).
  • Walk the root‑cause decision tree: channel → hardware → configuration → UE.
  • Use correlation ρ and condition number κ to tell a physics limit from a fixable one.
  • Exploit cross‑polarization for free rank‑2, and check element spacing.
  • Audit CSI‑RS ports, ri-Restriction, maxRank and CSI quality (Type I vs II).
  • Know when low rank is correct (and rank‑1 at high MCS beats rank‑2 garbage), and troubleshoot a whole rank‑1 cluster.

Section 34.1The decision tree

Start from the KPI tree (Chapter 33): RSRP good, RI=1. Branch on the causes. Channel: line‑of‑sight dominance or poor scattering → high spatial correlation → no independent eigen‑channels (Chapters 2–3). Hardware/geometry: antennas too closely spaced or single‑polarized → correlated ports. Configuration: CSI‑RS exposing too few ports, or ri-Restriction capping rank, or maxRank set low. UE: category/capability limits layers (a 1‑ or 2‑layer UE can never report higher). Each branch has a distinct fix.

RI = 1 + good RSRP → which cause? RI stuck at 1 CHANNELLOS / low scatter→ high correlation HARDWAREspacing / single-pol→ correlated ports CONFIGfew CSI-RS portsri-Restriction/maxRank UEcategory/maxRank→ cannot report higher check RSRP✓→SINR→correlation→CSI-RS ports/ri-Restriction→UE capability, in order
Figure 34.1 · Low-rank decision tree: channel, hardware, config, or UE
How to read this picture Top: the symptom (RI=1, good RSRP). Four branches, checked in order. CHANNEL — a line‑of‑sight or low‑scatter environment gives high spatial correlation, so there simply aren't independent eigen‑channels (Chapters 2–3); the honest answer may be "this location can't do rank>1." HARDWARE — antennas spaced too tightly or single‑polarized produce correlated ports (Chapter 4); verify cross‑pol is used as two layers. CONFIG — too few CSI‑RS ports, or ri-Restriction/maxRank capping the report. UE — its category/capability limits layers; a 2‑layer device can never report rank 4. Walk left to right; each branch has its own fix.
Why rank stays stuck at 1 — four usual suspects ① Low SINRno link budget for a 2nd layer — fix coverage first ② Correlated antennas (LOS)channel columns parallel → rank-1 H ③ Poor / aged CSIUE can't resolve a 2nd eigen-channel ④ Codebook / config restrictionrankRestriction or codebookSubset caps it
Figure 34.3 · The four root causes of a stuck rank-1 cell
How to read this picture When rank refuses to climb above 1, it is almost always one of four things. Low SINR — there is simply no margin for a second layer, so fix coverage before blaming MIMO. Correlated antennas — a strong line-of-sight makes the channel columns nearly parallel, mathematically rank-1 no matter how many antennas you have. Poor or aged CSI — the UE cannot resolve a second eigen-channel it cannot measure. Configuration — a rankRestriction or codebookSubset is quietly capping it. The fix depends entirely on which one, so diagnose before you tune.
Rich scattering — not antenna count — creates rank pure LOS → rank 1 one path → one eigen-channel multipath → rank 2+ independent paths → parallel layers
Figure 34.2 · Multipath, not antenna count, is what creates rank
How to read this picture A pure line-of-sight link has one dominant path, so the channel matrix is effectively rank 1 — adding antennas only sharpens the beam, it cannot manufacture a second independent stream. Rank comes from scattering: when reflections give the signal several genuinely independent paths, the channel has multiple strong eigen-channels and can carry parallel layers. This is the counter-intuitive lesson of Chapter 34 — a clean LOS cell can be the worst for spatial multiplexing, and the cure is a richer scattering environment or MU-MIMO across separated users.
▸ Advanced · 3GPP deep-dive — diagnosis & fixes
step 1 RSRP good? SINR good? → yes/yes ⇒ NOT coverage/interference ⇒ rank issue step 2 channel estimate corr ρ or condition number κ (Ch.3) · LOS-dominated? → expect low rank step 3 hardware cross-pol present & mapped to 2 layers? element spacing ≈0.5λ? (Ch.4) step 4 config CSI-RS nrofPorts ≥ desired rank? · ri-Restriction bitmap? · codebook maxRank? (Ch.18-20) step 5 UE UE-capability maxNumberMIMO-LayersPDSCH? category? → hard ceiling

Fixes by cause: channel → set expectations (can't multiplex over open LOS), maybe slight downtilt/azimuth to add scatter; hardware → ensure cross-pol exploited (instant rank 2), check spacing; config → raise CSI-RS ports, clear ri-Restriction, raise maxRank, use Type II for better CSI; UE → none (capability cap). Key: RI is the UE's recommendation; if the channel/config can't support it, no amount of power helps — this is the κ lesson of Ch.3 in operational form.

Worked — the highway cell (Ch.2) 64T64R, RSRP −80, SINR +18, RI=1. Steps: coverage/SINR fine → channel. LOS-dominated rural → κ huge → only one strong eigen-channel. Cross-pol gives at best rank 2 (not 4). Fix: accept rank ≤2 here; don't chase rank 4. Throughput at rank 2 with high MCS > rank 4 with garbage layers.

Section 34.2The channel branch — what physics forbids

Start with the branch you can't argue with. Rank is created by independent paths, not by antennas (Figure 34.2), so a channel with one dominant path is mathematically rank‑1 no matter how grand the array. Two numbers quantify this. Spatial correlation ρ measures how alike the antenna ports' channels are — near 1 means they see the same thing, so there's only one usable direction. The condition number κ = σmaxmin (Chapter 3) measures the spread of the eigen‑channel strengths — near 1 is a healthy multi‑layer channel; huge means the second eigen‑channel is too weak to carry data.

A strong line‑of‑sight is the classic rank‑killer: the direct path dwarfs everything, ρ approaches 1, κ explodes, and the channel simply has no second strong dimension. This is why a pristine rural LOS cell — great RSRP, great SINR — can be the worst for multiplexing, the counter‑intuitive lesson foreshadowed since Chapter 2. The honest engineering response is to recognise a physics limit when you see one: when κ is huge because of geometry, no parameter change conjures a second layer. You can sometimes add a little scatter (a slight downtilt to catch ground reflections, an azimuth tweak toward clutter), but mostly you set expectations and optimise within the achievable rank.

Section 34.3The hardware branch — cross-pol is free rank-2

Before blaming the channel, check that the array's own structure is being used. The single most important hardware fact for rank is cross‑polarization: a dual‑polarized array transmits on two orthogonal polarizations (typically ±45°), and those two polarizations stay remarkably independent even in line‑of‑sight — because a wall reflects the two polarizations differently. So cross‑pol gives you rank‑2 almost for free, even over open LOS where spatial scattering gives nothing. If a dual‑pol cell is stuck at rank 1, the first suspicion is that the second polarization isn't being mapped to a second layer — a configuration or port‑mapping fault, not physics.

The other hardware factor is element spacing. Antennas packed too tightly (well under λ/2) see highly correlated channels, collapsing rank; the standard ~λ/2 spacing balances aperture against correlation (and against the grating lobes of wider spacing, Chapter 5). So a genuinely low‑rank cell with tightly‑spaced, single‑pol antennas has a hardware explanation. But this is rare in modern dual‑pol massive‑MIMO radios — which is exactly why, when you see rank 1 on such a radio, you should confirm cross‑pol is exploited (instant rank 2) before going further down the tree.

Section 34.4The configuration branch — the self-inflicted cap

This is the branch worth checking early, because it's the most common avoidable cause and the easiest fix. Three settings quietly cap rank. First, CSI‑RS ports: the UE can only report a rank up to the number of CSI‑RS ports configured — set 2 ports and rank can never exceed 2, regardless of the channel. Second, ri-Restriction: an RRC bitmap that explicitly forbids certain ranks (sometimes set conservatively and forgotten). Third, maxRank in the codebook config. Any of these can pin a perfectly capable channel at rank 1, and none of them shows up as a hardware or channel symptom — the radio and the air are fine; the config is lying.

There's also a subtler configuration cause: CSI quality. Even with enough ports and no restriction, the UE only reports a higher rank if it can resolve a second eigen‑channel in its measurements — and coarse or stale CSI hides it. A low‑resolution Type I codebook, or aged CSI on a moving user, can make a multi‑layer channel look rank‑1 to the UE. Upgrading to Type II CSI (Chapter 20) or freshening the CSI (shorter period, Chapter 31) can recover rank that was always physically present but invisible to the report. So "config" covers both hard caps (ports/restriction) and soft ones (CSI fidelity).

▸ Advanced · 3GPP deep-dive — when rank-2 actually beats rank-1
per-layer SINR splitting power/streams lowers each layer's SINR rank-1 rate R1 = log2(1 + SINR_total) rank-2 rate R2 = Sigma log2(1 + SINR_i), SINR_i set by eigenvalues sigma_i^2 threshold rank-2 wins only if the 2nd eigen-channel is strong enough ri-Restriction RRC bitmap (TS 38.214) ; maxRank in codebookConfig ; CSI-RS nrofPorts

The UE's RI report is already an optimisation: it picks the rank that maximises its predicted throughput, accounting for the fact that more layers split power and lower each layer's SINR. So a UE reporting rank 1 with a huge κ is often correct — the second eigen‑channel is so weak that a single strong layer beats two weak ones. Forcing higher rank (e.g. via scheduler override) then reduces throughput. Respect the RI unless you've fixed the underlying cause (ports, restriction, CSI quality).

Worked — forcing rank backfires κ large: σ₁²=20, σ₂²=0.4 (linear). Rank‑1: log2(1+20)=4.4 b/s/Hz. Rank‑2 (power split): log2(1+10)+log2(1+0.2)=3.46+0.26=3.7 b/s/Hz. Rank‑1 wins — the UE was right to report it. Only when σ₂² is comparable to σ₁² does rank‑2 pull ahead. The condition number, not wishful thinking, decides.

Section 34.5The UE branch — and when rank-1 is the right answer

The last branch is the simplest: the UE's own capability. A device's category and maxNumberMIMO-LayersPDSCH set a hard ceiling — a 2‑layer UE can never report rank 4 no matter how rich the channel or how generous the config. This is reported capability (TS 38.306), so it's quick to check and there is no network fix; it's a property of the device. When a specific UE model sits low while others on the same cell go high, capability is the first suspect.

And the chapter's deepest point: sometimes rank‑1 is simply correct. The RI is the UE's recommendation, computed to maximise its own throughput — and over a high‑κ channel, one strong layer genuinely beats two weak ones (see the worked example). Chasing a higher rank by overriding the UE then lowers throughput, because you've split power into a near‑useless second layer. So the goal of low‑rank troubleshooting is not "make RI bigger" — it's "make sure nothing is artificially capping rank," and then optimise the MCS at whatever rank the physics and the (fixed) config genuinely support. Knowing when to stop is part of the skill.

Section 34.6Troubleshooting low rank

Walk the branches in order; each has a distinct, non‑overlapping fix.

FindingBranch / causeFix
RSRP good, SINR poor (big gap)Interference, not rankThat's Ch 36/37 — fix SINR first, re‑check RI
High κ / strong LOS, dual‑pol usedChannel (physics)Accept rank ≤2; optimise MCS; maybe add scatter (tilt)
Dual‑pol radio stuck at rank 1Hardware/port mappingConfirm 2nd polarization mapped to a 2nd layer (free rank‑2)
Capable channel, still rank 1Config capRaise CSI‑RS ports, clear ri-Restriction, raise maxRank
Multi‑layer channel reported as rank 1CSI fidelityType II CSI; freshen CSI (shorter period) for movers
One UE model low, others highUE capabilityDevice cap — no network fix; set expectations

The governing principle: strong RSRP rules out coverage, so a stuck rank is channel, hardware, config, or UE — never power. Check the cheap, self‑inflicted causes (config, port mapping) before concluding it's physics, and respect a correct RI when the condition number genuinely forbids more layers.

Section 34.73GPP map, KPIs & field note

Concepthome
RI/CQI reporting, ri-Restriction, maxRankTS 38.214 §5.2, TS 38.331
UE MIMO capabilityTS 38.306
CSI-RS ports (Ch.19)TS 38.211 §7.4

KPIs: RI.Distr (share at rank 1), spectral efficiency vs RSRP, CQI vs throughput, per‑UE capability. Field note: "Whole rural cluster sits at rank 1." Don't open a hardware ticket — it's the channel (LOS/low scatter). Confirm cross‑pol is exploited (gives rank 2) and set realistic rank expectations. Chasing rank 4 over open terrain wastes effort; the condition number forbids it.

Interview · Takeaways · Summary

"RI stuck at 1 with good RSRP — diagnose."
Good RSRP rules out coverage. Check SINR (interference?), then the channel (LOS/low scatter → high correlation/κ → genuinely low rank), hardware (cross‑pol exploited? spacing?), config (CSI‑RS ports, ri‑Restriction, maxRank), and UE capability. Fix the branch that applies; power won't help a low‑rank channel.
"When is low rank not fixable?"
When the channel is genuinely low‑rank (open LOS, high κ) or the UE's capability caps layers. Then set expectations: cross‑pol gives rank 2; rank 4 over open terrain isn't achievable. Optimize MCS at the achievable rank instead.
"Why is cross‑polarization the first thing to check on a dual‑pol radio?"
The two orthogonal polarizations stay independent even in LOS (a reflector treats them differently), so cross‑pol delivers rank‑2 almost for free. A dual‑pol cell stuck at rank 1 usually has a port‑mapping/config fault — the second polarization isn't being used as a second layer — not a physics problem.
"What config settings silently cap rank?"
CSI‑RS nrofPorts (rank can't exceed ports), ri-Restriction (an RRC bitmap forbidding ranks), and codebook maxRank. Plus a soft cap: coarse/stale CSI hides the second eigen‑channel — fixable with Type II CSI or fresher reporting.
"Is forcing a higher rank ever a good idea?"
Rarely. The RI is the UE's throughput‑optimal recommendation; over a high‑κ channel one strong layer beats two weak ones, so overriding to rank‑2 lowers throughput. Only force rank after removing an artificial cap (ports/restriction/CSI), never to fight physics.
"Whole rural cluster sits at rank 1 — ticket type?"
Not hardware — it's the channel (LOS/low scatter, huge κ). Confirm cross‑pol gives rank 2, set realistic expectations, and optimise MCS at rank ≤2. Chasing rank 4 over open terrain is forbidden by the condition number.
  • Low‑rank signature: RI=1, good RSRP → channel/hardware/config/UE, never power.
  • Decision tree: channel (LOS/κ) → hardware (cross‑pol/spacing) → config (ports/ri-Restriction/maxRank/CSI) → UE.
  • Cross‑pol = free rank‑2 even in LOS; confirm it's exploited before blaming physics.
  • Check the self‑inflicted config caps early; upgrade to Type II / fresher CSI to recover hidden rank.
  • Some low rank is physics (high κ) and a correct RI — optimise MCS at the achievable rank instead of forcing layers.

Low rank limits one user's layers. The other great capacity ticket is when the cell won't serve many users in parallel. Chapter 35 — MU‑MIMO Not Activating tackles "we bought 64T64R but it pairs nobody."

— end of Chapter 34 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eleven — KPI, Logs and Troubleshooting
CHAPTER THIRTY-FIVE

MU-MIMO
Not Activating

"You paid for 64 transceivers to serve eight users at once. If it's serving one at a time, the capacity is still in the box."

Chapter 16 showed cell capacity comes from MU‑MIMO breadth, not single‑user peaks. So the costliest silent failure is a 64T64R cell that never pairs — high per‑user peaks, mediocre cell throughput. Unlike low rank (a physics limit), MU‑not‑activating is usually a solvable stack of conditions: feature licence, enough active users, CSI quality, pairing thresholds, port budget. This chapter is the checklist.

ObjectivesWhat you'll walk away knowing

  • Recognize the signature: high SU peaks, low cell throughput, near‑zero MU pairing.
  • Walk the MU activation checklist (an AND): licence → users → CSI → pairing → ports.
  • Understand why CSI quality (Type I vs II vs reciprocity) is the usual culprit.
  • Read the pairing decision: orthogonality ρ, SINR margin, proportional‑fair sum‑rate gate.
  • Budget DM‑RS orthogonal ports and know how many users you can pair.
  • Apply the fix for each blocker and troubleshoot a non‑pairing 64T64R cell.

Section 35.1The activation checklist

MU‑MIMO needs every condition true at once; any one false and it falls back to SU. Walk them in order: (1) Feature/licence enabled? (2) Enough simultaneously active users to pair (an empty cell can't do MU)? (3) CSI accurate enough to place nulls (Type II / reciprocity, not coarse Type I)? (4) Pairing threshold not too strict (users must be "orthogonal enough", ρ < threshold — Chapter 16)? (5) DM‑RS orthogonal‑port budget sufficient (Chapter 11)? The first failing item is your fix.

MU-MIMO activates only if ALL are true 1 · licence on?vendor feature 2 · enough UEs?active to pair 3 · CSI accurate?Type II / recip. 4 · pairing thresh?ρ < limit 5 · ports?DM-RS budget all true → MU pairs · any false → SU first false item = your fix
Figure 35.1 · MU-MIMO is an AND of five conditions — the first false one is the bottleneck
How to read this picture Five gates in series; MU‑MIMO pairs only if all pass, otherwise the scheduler quietly serves users one at a time (SU). 1 the vendor MU feature/licence must be on. 2 there must be enough simultaneously active users to pair (a quiet cell can't). 3 the CSI must be accurate enough to place nulls between users — coarse Type I often isn't; Type II or reciprocity is. 4 the pairing/orthogonality threshold mustn't be so strict that no two users qualify (or so loose they interfere). 5 there must be enough orthogonal DM‑RS ports (Chapter 11). Check them in order; the first false gate is exactly what to fix.
MU-MIMO pairs users only if their channels are separable gNB GOOD — well separated BAD — co-located beams overlap → interfere → can't pair
Figure 35.3 · MU-MIMO needs users the array can separate in space
How to read this picture MU-MIMO sends to several users on the same time-frequency resource by giving each its own beam. That only works if their channels are separable — like the two well-spaced users on the left, whose beams barely overlap. Two users sitting close together (right) produce nearly the same channel; their beams overlap, they drown each other in inter-user interference, and the scheduler correctly refuses to pair them. So a cell where MU-MIMO never activates often just has users that are too correlated to separate — not a broken feature.
All gates must pass before the scheduler pairs users enough users≥2 with data orthogonallow correlation high SINRmargin to share good CSIType II / SRS PAIR ✓
Figure 35.2 · The MU-MIMO activation gates
How to read this picture Pairing is an AND of several conditions, and any one failing keeps the cell in single-user mode. There must be enough users with data buffered at the same time; their channels must be sufficiently orthogonal; each must have SINR margin to spare for sharing; and the gNB needs accurate CSI (Type II or reciprocity SRS) to compute the nulling precoders. When MU-MIMO won't activate, walk these gates — usually it's too few simultaneous users or CSI too coarse to null the cross-talk, not a scheduler bug.
▸ Advanced · 3GPP deep-dive — MU activation factors
licence/feature vendor MU-MIMO + scheduler weights (not 3GPP) user load need ≥2 active UEs with data + compatible channels in the same RBs CSI codebookType = typeII (finer nulls) or reciprocity (SRS); Type I often too coarse for MU pairing correlation ρ=|hᵢᴴhⱼ|/(‖‖‖‖) < ρ_thresh (e.g. 0.3–0.5); PF sum-rate gate (Ch.16) ports DM-RS Type1 (≤8) / Type2 (≤12) orthogonal ports across paired UEs (Ch.11) reciprocity needs calibration (Ch.28) for accurate MU nulls

Most "MU not working" cases are CSI too coarse (enable Type II / fix reciprocity calibration) or pairing threshold too strict (loosen ρ within reason). On FDD especially, Type I's coarse precoder mis-places nulls → scheduler declines to pair. Verify with the MU pairing-rate and MU inter-user-SINR counters before changing thresholds.

Worked — the underperforming twin (Ch.4) Two identical 64T64R cells; one pairs 6, the other 2. Checklist: licence ✓, users ✓, ports ✓ → CSI: the weak cell uses Type I (coarse) and a strict ρ_thresh=0.2. Fix: enable Type II (or reciprocity) + relax ρ to 0.4 → pairing rises to 6. The transceivers were always there; the CSI/threshold gates were closed.

Section 35.2Gate by gate — why each one closes

The checklist is an AND, so it pays to understand exactly how each gate fails, because the symptoms overlap (all of them produce "low pairing") but the fixes don't. Gate 1 — licence/feature. MU‑MIMO is often a separately‑licensed vendor feature with its own scheduler weights; if it's off (or the weights de‑prioritise it), the cell simply never tries. Embarrassing but common — always confirm it first. Gate 2 — enough active users. MU is impossible without at least two UEs with buffered data on overlapping resources at the same instant; a lightly loaded cell pairs little for a perfectly good reason, which is why pairing rate must always be read against load (Chapter 33).

Gate 3 — CSI accuracy is the one that bites most (its own section below). Gate 4 — pairing threshold: the scheduler only pairs users whose channels are "orthogonal enough" (correlation below a threshold); set it too strict and no two users ever qualify, too loose and paired users drown each other. Gate 5 — DM‑RS ports: each paired layer needs an orthogonal DM‑RS port, and that budget is finite (Chapter 11) — run out and you can't add more paired users no matter how separable they are. The discipline is to check them in order and stop at the first that's false, rather than tuning thresholds when the real problem is, say, that the feature was never enabled.

Section 35.3CSI quality — the usual culprit

If MU‑MIMO is misbehaving and the obvious gates pass, the cause is almost always CSI. Here's why it matters so much: MU‑MIMO works by transmitting to each paired user on a beam that puts a null toward the others (zero‑forcing, Chapter 14). A null is delicate — it requires an accurate picture of each user's channel to place correctly. Coarse Type I CSI reports a single quantised beam; that's fine for pointing at one user (SU) but too crude to position nulls between several, so the scheduler sees high predicted inter‑user interference and quietly declines to pair. The cell isn't broken — it's correctly refusing to pair on bad information.

The fix is better channel knowledge. Type II CSI (Chapter 20) reports a weighted combination of beams with amplitude and phase — enough fidelity to null cleanly, which is exactly why Type II exists and why it's the MU‑MIMO codebook. In TDD, reciprocity (Chapter 27) gives even better, full‑resolution per‑PRB CSI for free — provided the radio is calibrated (Chapter 28), since uncalibrated reciprocity fills the very nulls MU depends on (the MU‑canary point of Chapter 28). So "MU not activating" on an FDD cell usually means "enable Type II"; on a TDD cell it often means "check calibration." Either way, the lever is CSI fidelity, not the scheduler.

Section 35.4The pairing decision — orthogonality, margin, sum-rate

Even with good CSI and willing users, the scheduler makes a real decision about whether pairing two users beats serving them one at a time, and understanding it prevents mis‑tuning. The first test is orthogonality: the correlation ρ = |hiHhj|/(‖hi‖‖hj‖) between two users' channels must be below a threshold (typically 0.3–0.5). Two users in the same direction (high ρ) can't be separated and are rejected — correctly. The second is SINR margin: pairing splits power and adds residual interference, so each user must have enough SINR headroom that its shared rate still beats its solo rate.

Modern schedulers fold this into a proportional‑fair sum‑rate gate: they estimate the total (PF‑weighted) throughput of pairing versus not, and pair only if pairing wins. This is why a too‑strict ρ threshold is a genuine bug (it rejects pairs that would have helped) while a too‑loose one is also bad (it pairs users who then interfere and the sum‑rate drops). The right move is never to force pairing blindly but to give the scheduler good CSI and a sensible threshold, then let the sum‑rate logic decide. When you relax ρ, verify with the MU inter‑user SINR counter that the new pairs aren't drowning each other.

Section 35.5The DM-RS port budget

The last gate is a hard resource limit that's easy to forget. Every spatial layer the cell transmits — whether to one user or across several paired users — needs its own orthogonal DM‑RS port so the receivers can separate the layers (Chapter 11). That budget is finite: DM‑RS configuration Type 1 offers up to 8 orthogonal ports, Type 2 up to 12, shared across all paired users in a transmission. So if you're pairing four users at two layers each, that's eight ports — you've hit the Type 1 ceiling and can't add a fifth user, no matter how separable they are.

This is why high‑order MU‑MIMO (pairing many users) needs careful DM‑RS planning, and why the practical pairing order is often limited by ports before it's limited by orthogonality. The trade is the usual one: more DM‑RS ports (Type 2, more symbols) means more reference‑signal overhead eating into data. When a cell pairs a few users happily but won't go higher despite plenty of separable candidates, the DM‑RS port budget — not CSI or thresholds — is usually the ceiling. It's the quiet gate that caps the order of MU‑MIMO once the others are open.

▸ Advanced · 3GPP deep-dive — pairing metric & DM-RS ports
orthogonality rho = |h_i^H h_j| / (||h_i|| ||h_j||) < rho_thresh (~0.3-0.5) pairing gate pair iff PF-weighted sum-rate(paired) > sum-rate(SU) interference metric SLNR / projected inter-user SINR per candidate pair DM-RS ports Type1: 8 orthogonal (2 CDM groups) · Type2: 12 (3 CDM groups) CSI Type II (or calibrated reciprocity) needed for accurate nulling

Schedulers rank candidate pairs by a metric like SLNR (signal‑to‑leakage‑and‑noise) or projected per‑user SINR after nulling, then apply the PF sum‑rate gate. The DM‑RS port budget caps pairing order: total paired layers ≤ available orthogonal ports. Type II CSI (or calibrated reciprocity) is the precondition that makes the projected SINR good enough to pair on.

Worked — port-capped order 64T64R, Type II CSI, plenty of separable users, but pairing stalls at 4 users × 2 layers = 8 DM‑RS ports (Type 1 ceiling). Switching to DM‑RS Type 2 (12 ports) lets a 5th/6th user in — pairing order rises with no RF or CSI change. The ceiling was the port budget, not separability.

Section 35.6Troubleshooting MU-MIMO not activating

The signature is always the same — high SU peaks, low cell throughput, near‑zero pairing — so localise by walking the gates in order.

FindingGate / causeFix
Pairing flat even at high loadFeature/licence off or de‑weightedEnable MU feature; check scheduler weights
Low pairing only at low loadNot enough simultaneous usersNot a fault — read pairing vs PRB utilisation
FDD cell won't pairCoarse Type I CSI mis‑places nullsEnable Type II CSI
TDD cell pairs poorly, SU fineReciprocity miscalibrated (nulls filled)Recalibrate (Ch 28) — the MU canary
Pairs nobody despite separable usersPairing threshold ρ too strictRelax ρ; verify MU inter‑user SINR holds
Pairs a few, won't go higherDM‑RS port budget exhaustedDM‑RS Type 2 (12 ports) / more symbols

The reassuring truth, versus low rank (Chapter 34): MU‑not‑pairing is almost always solvable — a closed gate, not a physics limit. The capacity you paid 64 transceivers for is sitting in the box; opening the right gate (usually CSI fidelity or the pairing threshold) releases it with no RF change at all.

Section 35.73GPP map, KPIs & field note

Concepthome
Type II CSI for MU, CSI accuracyTS 38.214 §5.2.2 (Ch.20)
DM-RS orthogonal portsTS 38.211 §7.4.1.1 (Ch.11)
Scheduler/pairingvendor (Ch.16)

KPIs: MU pairing rate/order, MU inter‑user SINR, cell spectral efficiency, SU vs MU throughput split, CSI type in use. Field note: "64T64R cell, great peaks, poor cell throughput." It's SU‑bound. Check the five gates: most often enable Type II/fix reciprocity calibration and relax the pairing threshold; confirm enough active users and DM‑RS port budget. Cell capacity lives in pairing — open the gates and it appears, no RF change needed.

Interview · Takeaways · Summary

"64T64R cell isn't pairing MU-MIMO — checklist?"
Licence/feature on? Enough simultaneously active users? CSI accurate enough (Type II/reciprocity, not coarse Type I)? Pairing threshold not too strict (ρ)? Enough orthogonal DM‑RS ports? It's an AND of conditions — fix the first that's false. Most often CSI quality or threshold.
"Why does Type I often block MU?"
Type I's coarse precoder mis‑places the nulls between paired users, so the scheduler sees high inter‑user interference and declines to pair. Type II (or reciprocity) gives the fidelity to null cleanly, enabling pairing — especially on FDD.
"How does the scheduler actually decide to pair?"
Two tests plus a gate: orthogonality (ρ below a threshold, ~0.3–0.5), SINR margin (shared rate must beat solo), and a proportional‑fair sum‑rate comparison (pair only if PF‑weighted total throughput rises). Too‑strict ρ rejects good pairs; too‑loose lets paired users interfere.
"What caps the order of MU‑MIMO?"
The DM‑RS orthogonal‑port budget: each paired layer needs an orthogonal port. Type 1 gives 8, Type 2 gives 12, shared across all paired users. Pair 4 users × 2 layers and you've used 8 — the Type 1 ceiling — regardless of how separable more users are.
"TDD cell pairs poorly but SU is fine — where do you look?"
Reciprocity calibration. Uncalibrated chains fill the MU nulls (the MU canary of Ch 28), so paired users interfere and the scheduler stops pairing — while SU, which doesn't need nulls, looks fine. Recalibrate before touching thresholds.
"Is MU‑not‑pairing usually fixable?"
Yes — unlike low rank (a physics limit), it's almost always a closed gate: feature off, too few users, coarse CSI, strict threshold, or port budget. Open the right gate (often Type II CSI or the ρ threshold) and pairing appears with no RF change.
  • Signature: high SU peaks, low cell throughput, ~zero MU pairing — usually solvable, not physics.
  • Checklist (AND): licence → active users → CSI accuracy → pairing threshold → DM‑RS ports; stop at the first false gate.
  • CSI fidelity is the usual culprit — Type II (FDD) or calibrated reciprocity (TDD) to null cleanly.
  • The scheduler pairs on orthogonality + SINR margin + PF sum‑rate; the DM‑RS port budget caps the order.
  • The capacity is in the box — opening the right gate releases it with no RF change.

Low rank and MU‑not‑pairing are the two capacity tickets. The next is a coverage/quality one we've flagged repeatedly: the beam pointing slightly wrong. Chapter 36 — Beam Misalignment Troubleshooting diagnoses good‑RSRP‑bad‑SINR and the beam errors behind it.

— end of Chapter 35 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eleven — KPI, Logs and Troubleshooting
CHAPTER THIRTY-SIX

Beam Misalignment
Troubleshooting

"Good RSRP, bad SINR, high BLER — the energy is arriving, just not all of it where the user is."

A subtler ticket than low rank or MU: the beam is roughly there (RSRP is fine) but off — the user sits in a side‑lobe or the beam lags them — so SINR is poor and BLER high. The −3 dB‑per‑half‑beamwidth penalty (Chapter 12) bites, and narrow beams make it worse. This chapter is the misalignment decision map: SSB planning gaps, slow CSI‑RS refinement, TCI mismatch/timing, mobility lag, and blockage — each with its fingerprint and fix.

ObjectivesWhat you'll walk away knowing

  • Recognize the signature: good RSRP, poor SINR/CQI, high BLER, often mobility‑linked.
  • Apply the master discriminator: misalignment is motion‑bound, interference is location‑bound.
  • Walk the misalignment cause map and each cause's fingerprint: SSB gap, refine lag, TCI timing, mobility, blockage.
  • Quantify the pointing‑error penalty and why narrow beams are unforgiving.
  • Spot the silent de‑pointers — calibration drift and UE orientation.
  • Apply the fix per cause and troubleshoot SINR sawtooth on moving users.

Section 36.1The misalignment cause map

From the KPI tree (Chapter 33): RSRP good but SINR/CQI poor and BLER high → either interference (Chapter 37) or beam misalignment. Misalignment causes: SSB planning gap (user between coarse beams); slow CSI‑RS refinement (the tight beam never converges or lags); TCI mismatch/timing (wrong beam indicated, or applied too soon — timeDurationForQCL, Chapter 25); mobility lag (tracking behind a moving user, Chapter 31); blockage (forced onto a weak side/backup beam, Chapter 32). The tell that distinguishes misalignment from pure interference: it worsens with motion and improves right after a beam switch.

good RSRP + bad SINR/CQI + high BLER → which beam fault? beam misaligned SSB gapbetween coarse beams refine lagCSI-RS too slow TCI timingwrong/late beam mobility lagbeam behind UE blockageforced to side beam tell-tale: worsens with motion, improves right after a beam switch
Figure 36.1 · Five misalignment causes — distinguished by their behaviour with motion and beam switches
How to read this picture Symptom at top (good RSRP, bad SINR/CQI, high BLER). Five causes below. SSB gap: the user falls between coarse beams — fix the SSB beam grid (Chapter 22). Refine lag: CSI‑RS refinement too slow to converge the tight beam — shorten its period (Chapter 24). TCI timing: wrong beam indicated or applied before timeDurationForQCL — fix the indication/offset (Chapter 25). Mobility lag: beam trails a moving user (Chapter 31). Blockage: forced onto a weak side/backup beam (Chapter 32). The diagnostic tell at the bottom separates misalignment from plain interference: misalignment worsens with motion and improves immediately after a beam switch.
A narrow beam is unforgiving — small mis-point, big loss pointing error (degrees off boresight) → RSRP narrow FR2 beam: −10 dB by a few° wide beam: gentle
Figure 36.3 · How fast RSRP falls when the beam mis-points
How to read this picture The narrower the beam, the more a small alignment error costs. A wide beam (dashed) loses power only gradually as you move off boresight, so a few degrees of error barely matters. A pencil-thin FR2 beam (red) can drop 10 dB within a couple of degrees — so a stale beam, a calibration drift, or a UE that has rotated slightly produces a sudden RSRP collapse that looks like a coverage hole but is really a pointing problem. This curve is why misalignment troubleshooting starts by separating angle error from genuine path loss.
Three things that quietly de-point a beam stale beamrefinement too slowfor the user's motion calibration drifttemperature / ageingshifts chain phases UE orientationrotation / hand-gripmoves the Rx beam
Figure 36.2 · Where pointing error creeps in
How to read this picture Three mechanisms quietly de-point a beam. A stale beam — the refinement loop is slower than the user moves, so the beam trails behind (Chapter 24). Calibration drift — temperature and ageing shift the RF-chain phases until the array points slightly off where the precoder intended (Chapter 28). And UE orientation — a phone rotated in the hand swings its own receive beam away. Each shows up the same way at the KPI level (sudden RSRP loss) but needs a different fix, so misalignment work is really about telling them apart.
▸ Advanced · 3GPP deep-dive — misalignment diagnosis & fixes
signature RSRP good · SINR/CQI low · BLER high · correlated with motion/turn vs interference interference is location-bound (neighbour); misalignment is motion/beam-bound checks best-SSB stable? CRI converging? TCI matches reported best beam? switch latency? fixes SSB gap → add/retune SSB beams, elevation coverage (Ch.22/6) refine lag → shorter CSI-RS BM periodicity / aperiodic trigger (Ch.24) TCI timing → larger scheduling offset after TCI change; correct active TCI (Ch.25) mobility → faster tracking, wider serving beam for fast UEs, lower rank (Ch.31) blockage → backup/reflected candidate beams, multi-TRP (Ch.32)

The key discriminator: interference stays bad at a fixed location regardless of motion; misalignment tracks the user's movement and clears momentarily after each beam switch. Confirm with beam-switch-rate and post-switch-SINR counters before acting.

Worked — corner case User stalls turning a corner: RSRP −82 (good), SINR drops +12→0 dB during the turn, recovers after a beam switch. → mobility lag + possible SSB gap at that azimuth. Fix: faster CSI-RS refinement there + check SSB beam coverage of that direction. Not interference (it clears on switch).

Section 36.2The master discriminator — motion-bound vs location-bound

Beam misalignment and interference produce the same KPI signature — good RSRP, poor SINR, high BLER — so the single most valuable diagnostic skill in this chapter is telling them apart before you spend effort on the wrong fix. The discriminator is beautifully simple: interference is location‑bound, misalignment is motion‑bound. A spot blighted by a neighbour's beam is bad whenever anyone stands there and stays bad regardless of movement — it's tied to geometry. Misalignment, by contrast, tracks the user: it worsens as they move and, tellingly, clears for a moment right after a beam switch, because the switch momentarily re‑aims the beam at them.

That "improves immediately after a beam switch" signature is the fingerprint to look for in the logs, and it's measurable: the post‑switch SINR jump counter shows it directly. If SINR leaps up the instant the serving beam changes and then decays again until the next switch — that's a sawtooth — you have misalignment (the beam keeps lagging and each switch catches up). If SINR is flat‑bad and a beam switch does nothing, the problem isn't the beam at all; it's interference (Chapter 37) or genuine coverage. Establishing which world you're in routes the entire investigation, so always run this test first.

Section 36.3The five causes, each with a fingerprint

Once you've confirmed misalignment, the five causes each leave a distinct trace. An SSB planning gap shows as a fixed azimuth/elevation band where every user struggles — the coarse beam grid doesn't cover that direction (Chapter 22), so it's geographic but at beam‑edge angles rather than tied to a neighbour. Slow CSI‑RS refinement shows as a tight beam that never converges or lags even slow users — the refinement cadence is too slow (Chapter 24). TCI timing shows as BLER spikes right after each beam switch that then settle — data scheduled before the new Type‑D beam could be applied (Chapter 25).

Mobility lag shows as degradation that scales with speed — fine for pedestrians, worsening for vehicles — the tracking loop falling behind (Chapter 31). Blockage shows as sudden, deep drops correlated with the environment (a passing body, a structure), forcing the UE onto a weak side or backup beam (Chapter 32). The art is reading which fingerprint dominates: a fixed azimuth band points at SSB planning; a speed‑dependent trend points at mobility; post‑switch BLER spikes point at TCI timing. Each leads to a different chapter's fix, so naming the fingerprint is the whole game.

Section 36.4The pointing-error penalty — why narrow beams punish

To appreciate why misalignment matters so much more in massive MIMO than in older systems, look at the shape of a beam (Figure 36.3). A wide beam loses power gently as you move off its centre — a few degrees of pointing error costs a fraction of a dB, invisible in practice. A narrow, high‑gain beam is the opposite: the same gain that makes it valuable also makes its main lobe steep‑sided, so a small angular error tumbles you down the slope. A pencil‑thin FR2 beam can lose 10 dB within a couple of degrees of mis‑point.

The rule of thumb is the −3 dB at the half‑power beamwidth (Chapter 5/12): point half a beamwidth off and you've already lost half your power. This is the cruel arithmetic of high‑order beamforming — the narrower you make the beam to chase gain, the less pointing error you can tolerate, so the same array improvement that boosts peak SINR also makes the link more fragile to any of the five misalignment causes. It's why misalignment is largely an FR2 and high‑order‑array problem, and why "just make the beam narrower for more gain" is a trap unless your beam‑management loop can keep that narrow beam precisely pointed.

▸ Advanced · 3GPP deep-dive — the pointing-error penalty
HPBW theta_3dB ~ 102 / N degrees (ULA, lambda/2 spacing, Ch.5) loss L(d-theta) ~ 12 (d-theta / theta_3dB)^2 dB # near boresight -3 dB at d-theta = theta_3dB / 2 (half the beamwidth off = half the power) 64-elem theta_3dB ~ 1.6deg -> 2deg error ~ 12*(2/1.6)^2 ~ ... steep

The mainlobe loss grows roughly with the square of the normalised pointing error: small errors are cheap, but once you approach the half‑power beamwidth the penalty climbs fast. Because θ3dB shrinks as ~102/N, a bigger array is both higher‑gain and less forgiving — the tolerable error scales down with the beamwidth.

Worked — gain vs fragility 16‑element array: θ3dB ≈ 6.4°, so a 2° error costs ≈12·(2/6.4)² ≈ 1.2 dB — negligible. 64‑element: θ3dB ≈ 1.6°, the same 2° error costs ≈12·(2/1.6)² ≈ 19 dB — catastrophic. Quadrupling the array quadrupled the gain but made the identical pointing error ~16× worse. Narrow beams demand precise tracking.

Section 36.5The silent de-pointers — calibration drift and UE orientation

Two misalignment causes don't appear on the obvious cause map because they're not about the beam‑management procedures at all — they quietly bias the pointing underneath. The first is calibration drift (Chapter 28): as the radio's RF chains drift with temperature and ageing, the array's actual beam direction creeps away from where the precoder intended, even though every procedure is working perfectly. The fingerprint is subtle — a gradual, cell‑wide degradation that worsens through a hot afternoon and that no beam‑management tuning fixes, because the beam‑management loop is doing exactly what it's told; the hardware underneath is lying.

The second is UE orientation: a phone rotated in the hand, or set down at an angle, swings its own receive beam away from the gNB. This is a per‑UE, behaviour‑driven misalignment the network can't directly fix — it lives in the device's receive‑beam tracking and antenna placement. Recognising these two is important precisely because they mimic the others: a beam that's "always slightly off everywhere" points at calibration (recalibrate, Chapter 28), and a single UE that's intermittently off as it's handled points at orientation (a UE‑side limitation). Mistaking either for a refinement or SSB problem sends you tuning parameters that can't help.

Section 36.6Troubleshooting beam misalignment

Run the discriminator first, then match the fingerprint to the cause.

FingerprintCauseFix
Bad SINR at a fixed spot, beam switch doesn't helpInterference, not misalignmentGo to Ch 37 (cell‑edge / interference)
SINR sawtooths, jumps up after each beam switchRefinement lag / mobility lagShorter CSI‑RS BM period / aperiodic; faster tracking (Ch 24/31)
Fixed azimuth/elevation band struggles for allSSB planning gapRetune SSB beam grid / add elevation (Ch 22/6)
BLER spikes right after switches, then settleTCI application timingLarger scheduling offset after TCI change (Ch 25)
Degradation scales with user speedMobility lagFaster tracking, wider serving beam, lower rank (Ch 31)
Gradual cell‑wide drift, worse when hotCalibration driftRecalibrate the array (Ch 28)

The discipline: first separate motion‑bound (misalignment) from location‑bound (interference) — that one test halves the search space — then read the fingerprint to pick the exact cause. Every row leads to a different chapter, so the diagnosis, not the dBm, is the work here.

Section 36.73GPP map, KPIs & field note

Concepthome
TCI/QCL timingTS 38.214 §5.1.5 (Ch.25)
Beam reporting / refinementTS 38.214 §5.1 (Ch.24)
SSB beam planningTS 38.213 §4 (Ch.22)

KPIs: SINR vs motion, beam‑switch rate, post‑switch SINR jump, BLER bursts at turns, best‑beam stability. Field note: "SINR sawtooths for walking users; RSRP fine." Misalignment (refine lag / SSB gap), not interference — the SINR recovers after each beam switch. Speed up CSI‑RS refinement and check SSB coverage of that direction; consider a slightly wider serving beam for pedestrians.

Interview · Takeaways · Summary

"Good RSRP but bad SINR — interference or misalignment?"
Check the dependence: interference is location‑bound (stays bad at a spot, tied to a neighbour); misalignment is motion‑bound (worsens as the user moves, clears right after a beam switch). That single distinction routes you to Chapter 37 (interference) vs the beam fixes here.
"Name three misalignment causes and fixes."
SSB gap → retune SSB beam grid; refinement lag → shorter CSI‑RS BM period / aperiodic trigger; TCI timing → larger scheduling offset after TCI change. (Also mobility lag → faster tracking/wider beam; blockage → backup beams/multi‑TRP.)
"How does each cause leave a different fingerprint?"
SSB gap = a fixed azimuth/elevation band struggles; refine/mobility lag = SINR sawtooth that jumps after each switch (mobility scales with speed); TCI timing = BLER spikes right after switches then settle; blockage = sudden deep drops with the environment; calibration drift = gradual cell‑wide, worse when hot.
"Why are narrow beams so unforgiving of pointing error?"
A high‑gain beam has a steep main lobe — you hit −3 dB at half the beamwidth, and a pencil FR2 beam can lose 10 dB within a couple of degrees. The same narrowing that buys gain shrinks the tolerable pointing error, so misalignment is mainly an FR2/high‑order problem.
"A beam that's 'always slightly off everywhere' — cause?"
Calibration drift (Ch 28), not beam management. The procedures work fine but the RF chains have drifted so the array points off where the precoder intended — gradual, cell‑wide, worse through a hot afternoon, and unfixable by refinement tuning. Recalibrate.
"How do you confirm misalignment vs interference from counters?"
Watch the post‑switch SINR jump: if SINR leaps up the instant the beam switches and then decays (sawtooth), it's misalignment; if a beam switch does nothing and SINR is flat‑bad at a fixed spot, it's interference/coverage. Plus motion‑dependence (misalignment) vs location‑dependence (interference).
  • Signature: good RSRP, poor SINR/CQI, high BLER, usually motion‑linked.
  • Master discriminator: misalignment is motion‑bound & clears after a beam switch; interference is location‑bound.
  • Causes (by fingerprint): SSB gap, refine lag, TCI timing, mobility lag, blockage — plus silent de‑pointers (calibration drift, UE orientation).
  • Narrow beams punish pointing error (−3 dB at half‑beamwidth) — misalignment is mainly an FR2/high‑order issue.
  • Diagnose first (fingerprint → cause → chapter); it's a diagnosis problem, not a power one.

Misalignment loses one user's beam; the broader coverage/quality battle is at the cell edge, where beamforming gain and interference control decide the experience. Chapter 37 — Cell Edge Massive MIMO Optimization closes Part 11.

— end of Chapter 36 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Eleven — KPI, Logs and Troubleshooting
CHAPTER THIRTY-SEVEN

Cell Edge Massive
MIMO Optimization

"The cell centre sells the demo. The cell edge sells the network. Massive MIMO can fix both."

A network is judged at its edge — where SINR is lowest, interference highest, and users most likely to churn. Massive MIMO is uniquely powerful here: its array gain (~10·log₁₀N dB) extends reach, and its beam control reduces the interference neighbours pour into each other. This chapter is the cell‑edge optimization playbook: beamforming gain, vertical tilt, dedicated coverage beams, power allocation, and interference coordination — turning the edge from a liability into a strength.

ObjectivesWhat you'll walk away knowing

  • Understand why the edge is SINR‑limited — the two‑term battle of signal vs interference.
  • Raise the signal: beamforming gain, vertical tilt, elevation/coverage beams, and beamformed edge control.
  • Lower the interference: null‑steering, CoMP (CS/CB/JT), and RIC‑driven coordination.
  • Avoid the control‑channel trap (PDCCH must reach) and pilot contamination at the edge.
  • Optimize the 5th‑percentile KPIs that define the edge experience.
  • Troubleshoot "edge throughput poor despite massive MIMO."

Section 37.1The edge levers

The edge is SINR‑limited (low signal, high interference). Massive MIMO attacks both terms. Signal: beamforming concentrates ~10·log₁₀N dB toward the edge user (a 64‑element array ≈ +18 dB) — turning a dead edge into a usable one; dedicated wider coverage beams and optimized tilt ensure the edge is actually illuminated. Interference: narrow beams and steered nulls (Chapter 5) keep energy out of neighbours, and CoMP/coordination (Chapter 8) turns edge neighbours from foes into helpers. Net: higher edge SINR from both a bigger numerator and a smaller denominator.

edge SINR = ↑ signal (beam gain + tilt) and ↓ interference (nulls + coord) old wide beam (weak at edge) edge UE +~18 dB beam gain (64 elem) null toward neighbour cell
Figure 37.1 · Beamforming gain reaches the edge; nulls keep interference out of neighbours
How to read this picture Two ways massive MIMO rescues the edge. Signal up: instead of a wide weak beam (light, dies before the edge), a focused beam concentrates ~18 dB of array gain (64 elements) right on the edge UE — reaching where a conventional cell couldn't. Optimizing tilt (and elevation beams) makes sure the edge and upper floors are illuminated at all. Interference down: the red dashed null steers energy away from the neighbouring cell, and CoMP coordination (Chapter 8) turns neighbours into cooperators. Edge SINR improves from both ends — bigger signal, smaller interference — which is exactly why massive MIMO transforms cell‑edge experience.
CoMP joint transmission: two cells beam to one edge user together gNB1 gNB2 edge user same data, phase-aligned → signals add instead of interfering
Figure 37.3 · Coordinated multipoint joint transmission
How to read this picture The neighbour that was the problem (Figure 37.1) can become part of the solution. In CoMP joint transmission, two cells send the same data to an edge user with phase-aligned beams, so what would have been interference now adds to the wanted signal. The edge user effectively sits inside a virtual cell formed by both sites. The price is tight coordination — shared data and accurate phase alignment over the backhaul — which is exactly the capability cell-free massive MIMO (Chapter 42) pushes to its logical extreme.
At the edge, the neighbour's beam is your interference gNB1 gNB2 edge UE wanted interference coordinated beams / null-steering / joint Tx raise edge SINR
Figure 37.4 · The cell-edge SINR problem
How to read this picture At the cell edge the wanted signal from your serving gNB is weak and the neighbour's beam arrives almost as strongly as interference — so SINR, not raw power, is what limits the edge user. Massive MIMO helps in two ways: the serving cell can steer a tighter beam to lift the wanted signal, and neighbouring cells can coordinate — steering nulls toward each other's edge users or even jointly transmitting to them. Edge optimisation is therefore as much about managing the interfering beam as boosting the wanted one.
Null-steering: put a beam on your user, a null on the victim gNB own user (beam) neighbour edge user (null)
Figure 37.2 · Null-steering protects the neighbour's edge user
How to read this picture A massive-MIMO array has spare degrees of freedom: it can place a peak of the beam on its own user and a deliberate null in the direction of a neighbouring cell's edge user. The wanted signal is unchanged, but the interference that user would have suffered is cancelled — raising their SINR for free. Coordinated across a cluster of cells, this is how edge throughput is lifted without adding power or sites; the cost is sharing channel information between cells fast enough to compute the nulls.
▸ Advanced · 3GPP deep-dive — edge optimization levers
beam gain ~10·log₁₀N dB toward the served direction (Ch.5) → coverage extension tilt electrical downtilt / elevation beams (Ch.6) → cover edge & high floors coverage beams wider/robust beams or broadcast-beam SSB design for edge reliability power per-beam power, SSB/CSI-RS EPRE offsets, PDCCH aggregation for edge control interference steered nulls, CoMP CS/CB & JT (Ch.8), inter-cell coordination / RIC (Ch.39) pilot avoid pilot contamination at edge (Ch.15/19)

Edge control matters too: PDCCH must reach before PDSCH — beamform it and raise aggregation level for edge users, or they camp but can't be scheduled (Ch.9). Coordinate pilots and beams across cells to keep the edge SINR floor up. The single biggest lever is usually beamforming gain (turning the signal numerator up) combined with neighbour nulling (turning the interference denominator down).

Worked — edge rescue Edge UE: pre-beamforming SINR −3 dB (unusable). Apply 64-element beam (+18 dB signal) and a CoMP null on the dominant interferer (−6 dB interference) → SINR ≈ +21 dB-ish bounded by other terms, easily a usable high-MCS link. Same site, same spectrum — beamforming + coordination turned a dead edge into a good one.

Section 37.2Why the edge is SINR-limited

To optimise the edge you have to understand what's actually failing there, and it isn't usually power. SINR = signal / (interference + noise). At the cell centre the signal is strong and the dominant denominator term is thermal noise — you're noise‑limited, and more signal helps. At the edge two things happen at once: your serving signal is weak (you're far away), and a neighbouring cell's transmission arrives almost as strongly as interference (you're nearly equidistant from both). So the denominator is now dominated by interference, not noise — you're interference‑limited, and the classic instinct of "turn up the power" fails, because the neighbour turns up too and the ratio doesn't move.

This is the central insight of edge optimisation: you must attack both terms of the ratio, and especially the interference denominator. Massive MIMO is uniquely suited to this because it has two independent weapons — array gain to lift the signal numerator, and spatial nulling/coordination to cut the interference denominator — that a conventional cell simply doesn't have. Everything in this chapter is an instance of pushing the numerator up or the denominator down, and the biggest wins usually come from the denominator, because that's what makes the edge an edge in the first place.

Section 37.3Raising the signal — gain, tilt, coverage and control

The numerator levers start with the obvious one: beamforming gain. Concentrating an N‑element array's energy toward the edge user adds ~10·log10N dB — about +18 dB for a 64‑element array — which is often the difference between a dead edge and a usable one. But gain only helps if the beam actually reaches the edge, which makes tilt the essential companion: electrical downtilt and, for tall buildings, an elevation beam tier (Chapter 6) ensure the edge and the upper floors are illuminated at all. A beautifully high‑gain beam aimed over the user's head helps no one.

Two subtler numerator levers are easy to forget. Coverage beams: alongside the narrow data beams, a cell needs robust wider beams (and a well‑planned SSB grid, Chapter 22) so edge users can be acquired and tracked reliably before any fine beamforming applies. And — the one that bites hardest — the edge control channel: a UE must decode PDCCH before it can receive any PDSCH, so if the control channel isn't beamformed and given a high enough aggregation level for edge users, they will camp on the cell but never get scheduled. You can beamform PDSCH all you like; if PDCCH doesn't reach, the edge user gets nothing. Edge optimisation is control‑first.

Section 37.4Lowering the interference — nulls, CoMP, coordination

The denominator is where massive MIMO does its most distinctive work, because an array has spare degrees of freedom. Null‑steering (Figure 37.2) uses them to place a deliberate null toward a neighbouring cell's edge user while keeping the peak on your own — cancelling interference that user would have suffered, for free, with no extra power. Coordinated across a cluster, every cell nulls toward its neighbours' victims and the whole edge SINR floor rises.

Going further, CoMP (Chapter 8) coordinates cells explicitly. In coordinated scheduling/beamforming (CS/CB) neighbours agree who transmits where to avoid colliding at the edge. In dynamic point selection (DPS) the best cell serves the user moment to moment. And in joint transmission (JT, Figure 37.3) two cells send the same data phase‑aligned, so what was interference now adds to the signal — the neighbour becomes a helper. The price rises with ambition: nulling needs shared channel info, JT needs shared data and tight phase alignment over the backhaul. Increasingly this coordination is orchestrated by the RIC (Chapter 39) and, taken to its limit, becomes cell‑free massive MIMO (Chapter 42) where the very notion of an "edge" dissolves.

Section 37.5The control-channel trap and pilot coordination

Two edge failure modes deserve their own section because they silently defeat otherwise‑good optimisation. The first is the control‑channel trap introduced above: PDCCH is the gatekeeper, and at the edge it's the first thing to fail, not the last. The fixes are specific — beamform the PDCCH (per‑CORESET TCI toward the edge user, Chapter 25), raise its aggregation level (more coding/repetition for robustness), and ensure the edge user's CORESET is configured at all. A cell with great PDSCH beamforming and neglected PDCCH will show edge users that attach but mysteriously get near‑zero throughput — because they can't be granted.

The second is pilot contamination at the edge (Chapters 15/19). Reciprocity‑based nulling and CSI both depend on clean pilot measurements, but edge users from neighbouring cells may reuse the same pilots, corrupting the channel estimate exactly where you most need it to be accurate to place nulls. The result is that the interference‑cancellation you're counting on degrades precisely at the edge. The mitigation is cross‑cell pilot coordination — assigning pilot/SRS resources and ZP‑CSI‑RS muting (Chapter 19) so neighbouring edges don't contaminate each other. Edge optimisation that ignores the control channel and the pilots will under‑deliver no matter how good the data‑beam math is.

▸ Advanced · 3GPP deep-dive — CoMP schemes & edge control
CS/CB coordinated scheduling / beamforming — avoid colliding beams at edge DPS dynamic point selection — best cell serves per-slot JT joint transmission — same data, phase-aligned, signals ADD (needs shared data + sync) null-steering spare DoF -> null toward neighbour victim (needs cross-cell CSI) edge control beamformed PDCCH + higher aggregation level (AL 8/16) pilot coord SRS/CSI-RS planning + ZP-CSI-RS muting (Ch.19) to avoid contamination

CoMP trades coordination cost for edge SINR: CS/CB is cheap (just scheduling info), JT is expensive (shared data + phase sync) but most powerful. Edge PDCCH needs a high aggregation level (AL 8/16) and ideally beamforming, or the edge user can't be scheduled. Pilot coordination keeps the channel estimates clean enough that the nulls actually land.

Worked — control before data Edge UE: PDSCH beamformed (+18 dB) but PDCCH left at AL1, omnidirectional. Result: UE attaches, near‑zero throughput — it never decodes a grant. Fix: PDCCH AL8 + beamformed toward the UE → grants land → the PDSCH beamforming finally pays off. The data beam was never the problem; the control beam was.

Section 37.6Troubleshooting cell-edge performance

Edge complaints are SINR problems; localise which term (signal or interference) is failing, and check the gatekeepers.

SymptomLikely causeFix
Edge UE attaches but ~zero throughputControl‑channel trap (PDCCH too weak)Beamform PDCCH; raise aggregation level (AL 8/16)
Edge signal weak, beam over/under the userTilt / elevation coverageOptimise electrical tilt; add elevation beams (Ch 6)
Good signal, poor SINR at edgeNeighbour interferenceNull‑steering / CoMP CS‑CB / JT (Ch 8)
Nulls/CoMP underperform at edgePilot contamination corrupting CSICross‑cell pilot coordination, ZP‑CSI‑RS muting (Ch 19)
Edge fine on average, bad 5th‑percentileOptimising the mean, not the tailTarget 5%‑ile SINR/SE explicitly (Ch 33)

The governing idea: the edge is an SINR problem, so raise the signal (beam + tilt) and cut the interference (nulls + CoMP) together — and never forget the two gatekeepers, edge PDCCH and clean pilots, without which the data‑beam gains can't be delivered. Power alone never fixes an interference‑limited edge.

Section 37.73GPP map, KPIs & field note

Concepthome
Beam gain, tilt, elevation (Ch.5/6)TS 38.214, TR 38.901
CoMP / coordinationTS 38.214, O-RAN/RIC (Ch.39)
Edge measurementsTS 38.215

KPIs: 5th‑percentile (edge) throughput/SINR, edge BLER, drop rate, cell‑edge RSRP/SINR CDF, neighbour interference. Field note: "Edge throughput poor despite massive MIMO." Confirm beamforming gain is actually applied to edge users (TCI/beam reaches them), tilt covers the edge (and high floors), PDCCH is beamformed/aggregated for edge control, and coordinate beams/pilots with neighbours. The edge is an SINR problem — raise signal (beam+tilt) and cut interference (nulls/CoMP) together.

Interview · Takeaways · Summary

"How does massive MIMO help the cell edge?"
Two ways: ~10·log₁₀N dB beamforming gain extends the signal to the edge (≈+18 dB at 64 elements), and narrow beams + steered nulls + CoMP cut the interference neighbours cause. Edge SINR rises from both a bigger signal and smaller interference.
"Why must you beamform PDCCH at the edge?"
Control must be decoded before data; if PDCCH isn't beamformed/aggregated (AL 8/16) for edge users, they camp but can't get grants, so PDSCH beamforming never helps. Edge optimization is control‑first, not just data.
"Why is the edge interference‑limited, and why does power not fix it?"
At the edge the serving signal is weak and a neighbour arrives almost as strongly, so the SINR denominator is dominated by interference, not noise. Turning up power makes the neighbour turn up too — the ratio doesn't move. You must cut the interference (nulls/CoMP), not just add signal.
"Compare the CoMP schemes."
CS/CB: neighbours coordinate scheduling/beams to avoid colliding (cheap — scheduling info only). DPS: best cell serves per‑slot. JT: two cells send the same data phase‑aligned so signals add (most powerful, but needs shared data + tight sync over backhaul).
"Edge nulls/CoMP underperform — overlooked cause?"
Pilot contamination. Nulling depends on accurate per‑user CSI, but neighbouring‑cell edge users reusing the same pilots corrupt the estimate exactly where you need it. Fix with cross‑cell pilot/SRS coordination and ZP‑CSI‑RS muting (Ch 19).
"Edge looks fine on average but users complain — why?"
You're optimising the mean, not the tail. Edge experience is the 5th‑percentile SINR/SE; a healthy average can hide a starved bottom 5–10%. Target the percentile explicitly (Ch 33).
  • Edge is SINR‑limited (interference‑dominated) — attack both terms; power alone can't fix it.
  • Raise signal: beam gain (~10·log₁₀N) + tilt/elevation + coverage beams.
  • Cut interference: null‑steering, CoMP CS/CB/DPS/JT, RIC coordination.
  • Mind the gatekeepers: beamformed/aggregated PDCCH and pilot coordination — without them the data‑beam gains can't be delivered.
  • Optimize the 5th‑percentile KPIs — that's the edge experience.

That completes Part 11 — the practical troubleshooting and optimization core. Part 12 turns to the frontier. Chapter 38 — Massive MIMO Energy Saving opens it: how to keep all this gain while cutting the considerable power a 64T array draws.

— end of Chapter 37 · end of Part 11 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Twelve — Advanced and Future Topics
CHAPTER THIRTY-EIGHT

Massive MIMO
Energy Saving

"Sixty-four power amplifiers don't sleep cheaply. The art is switching them off without anyone noticing."

A 64T64R radio can draw hundreds of watts to over a kilowatt (Chapter 17) — and a network's energy bill is dominated by the radio. Yet most of that power is wasted at low load: full beams and all transceivers running for a near‑empty cell. Energy saving reclaims it by selectively shutting things down — in time, frequency, space (antennas), and power — when traffic allows, and waking instantly when it returns. This chapter covers the techniques and the capacity‑vs‑energy trade.

ObjectivesWhat you'll walk away knowing

  • Know the energy‑saving dimensions: time, frequency, spatial (antenna muting), power.
  • Understand where the watts go — PA dominance, fixed vs load‑dependent power, and the energy‑per‑bit metric.
  • Explain symbol/slot blanking, TRX/antenna muting, carrier/channel shutdown, deep sleep, and how muting couples to gain/MU.
  • Reason about the wake‑up SLA and the role of traffic prediction.
  • Know what Rel‑18 Network Energy Saving (NES) standardized.
  • Manage the capacity/coverage vs energy trade and troubleshoot saving that hurt service.

Section 38.1Four dimensions to save

You can switch off in four domains, at different timescales. Time: blank symbols/slots with no traffic (micro‑sleep, ms), or deeper sleep over minutes at night. Frequency: shut down secondary carriers/BWPs at low load. Spatial: antenna/TRX muting — power down some of the 64 transceivers (and their PAs) when you don't need full MU order or array gain. Power: reduce SSB/reference‑signal density and transmit power. The deeper the sleep, the more you save — but the longer to wake, so each is gated by traffic prediction and a wake‑up SLA.

energy saving: switch off in time / frequency / space / power TIMEsymbol/slot blankingmicro→deep sleep FREQUENCYcarrier shutdownBWP reduction SPATIALantenna/TRX mutingfewer active elements POWERSSB/RS density ↓Tx power ↓ deeper saving = longer wake-up → gated by traffic prediction & SLA
Figure 38.1 · Four energy-saving domains; deeper sleep saves more but wakes slower
How to read this picture Four levers. Time: blank empty symbols/slots (micro‑sleep, ms) or sleep deeply at night (minutes). Frequency: turn off secondary carriers/BWPs at low load. Spatial: mute transceivers/antennas — run, say, 16 of 64 when you don't need full MU order — directly cutting PA power. Power: thin out SSB/reference‑signal transmissions and reduce Tx power. They stack, but the red caption is the catch: deeper sleep saves more yet takes longer to wake, so each mode is gated by traffic prediction and a wake‑up SLA — you must guarantee users aren't kept waiting when traffic returns.
Energy saving works on four time scales faster ← reaction time → slower symbol DTXblank empty symbols channel mutingturn off TRX branches carrier shutdownSCell off at low load cell sleepwhole cell off at night
Figure 38.3 · The energy-saving toolbox, ordered by reaction time
How to read this picture Saving power in a massive-MIMO cell is a hierarchy of ever-coarser switches. Symbol DTX blanks transmission on empty OFDM symbols — milliseconds. Channel/branch muting powers down whole TRX chains when traffic doesn't need all the antennas — seconds. Carrier shutdown drops secondary carriers at low load — minutes. Cell sleep turns an entire cell off overnight under coverage from a neighbour — hours. The faster the switch, the smaller the saving per action but the less it risks the user; energy-saving features layer all four.
Branch muting: fewer active TRX at low load busy hour — 64TRX on full array → full capacity night — half muted half the chains off → big power cut, less capacity
Figure 38.2 · Antenna-branch muting trades capacity for power at low load
How to read this picture Each square is one transmit/receive chain. In the busy hour the whole array runs for maximum capacity. At night, when a handful of users need little of it, half the branches are powered down — the array narrows and capacity falls, but the power amplifiers (the dominant energy cost) for the muted branches draw nothing. Because the saving scales with how many chains you can switch off, big arrays save the most; the skill is muting aggressively without letting a sudden traffic burst find the cell under-equipped.
▸ Advanced · 3GPP deep-dive — NES techniques & trade-offs
time symbol/slot blanking; cell DTX/DRX; deep sleep (no SSB) at night spatial TRX/antenna muting → fewer active elements → less array gain & MU order frequency SCell/carrier shutdown; reduced bandwidth at low load power reduced SSB periodicity (e.g. 20→160 ms), lower reference-signal power R18 Network Energy Saving (NES) standardized cell on/off, adaptation signalling trade power saved ∝ muted PAs; cost = lower peak/coverage + wake-up latency

Spatial muting couples directly to earlier chapters: mute half the array → ~3 dB less beam gain and half the MU streams (Ch.13/16), so it's used when load is light enough that capacity/coverage loss is invisible. The hard constraint is wake-up latency: deep sleep (SSB off) can take seconds to resume, so it's reserved for predictable lulls. R18 standardized network-energy-saving signalling to coordinate on/off without stranding UEs.

Worked — night muting 64T cell at 2am, ~2 active UEs: mute to 16 TRX (−6 dB gain, MU order 16→4 — irrelevant at this load) + SSB period 20→160 ms + symbol blanking → PA power roughly quartered, coverage still ample for 2 users. Wake fully at the morning traffic ramp (predicted). Big OPEX/CO₂ saving, zero user impact.

Section 38.2Where the watts actually go

You can't save energy intelligently without knowing where it's spent, and the answer surprises people: a base station's power is dominated by its power amplifiers, and PAs are inefficient — often only 30–40% of the DC power they draw becomes radiated RF; the rest is heat. With 64 PAs in a massive‑MIMO radio, that's a lot of amplifiers each wasting most of their input. So the radio, not the baseband or the core, is where a network's energy bill lives, and the PAs within it are the dominant term.

The deeper insight is that much of this power is not load‑dependent. A PA biased on draws substantial power even when it's transmitting little — and the array keeps all 64 chains, the SSB, and the reference signals running for a near‑empty cell exactly as for a full one. That's the waste energy saving targets: the gap between the (roughly fixed) power a fully‑on radio draws and the tiny amount actually needed at low load. This is why the headline metric is shifting from raw watts to energy per bit (joules/bit) — a cell can be efficient at busy hour (many bits per watt) yet hugely inefficient at 3am (few bits, same watts). Energy saving is really about flattening that inefficiency at low load.

Section 38.3Spatial muting — the lever unique to massive MIMO

Of the four domains, spatial muting is the one massive MIMO uniquely enables, and it's powerful precisely because the array has so many PAs to switch off. Powering down half the transceivers roughly halves the PA power — the dominant term — for a near‑proportional saving. But it couples directly to the array's two products (Chapters 13/16): fewer active elements means less beamforming gain (about −3 dB per halving of the array) and fewer MU‑MIMO streams (the pairing order drops with the chain count). So muting trades exactly the capabilities you bought the big array for.

The art is that at low load you don't need those capabilities. With two users on the cell at 2am, you're not pairing 16 of them and you have power margin to spare, so dropping to 16 active TRX costs gain and MU order that nobody is using — an invisible trade. The skill (and risk) is matching the muting depth to the real load: mute too timidly and you leave savings on the table; mute too aggressively and a sudden traffic burst finds the cell under‑equipped, with degraded coverage and capacity until it wakes. That's why spatial muting is always paired with the wake‑up logic of the next section.

Section 38.4The wake-up SLA — saving you can't feel

Every energy‑saving mode is governed by one hard constraint: it must be invisible to users, which means the cell has to be back to full capability before traffic actually needs it. This makes wake‑up latency the organising principle. The modes form a latency hierarchy: symbol/slot blanking resumes in milliseconds (essentially free, always on); TRX muting takes seconds to re‑bias amplifiers; carrier shutdown a bit longer; and deep sleep (SSB off, the cell effectively dark) can take seconds to tens of seconds to fully resume. The deeper the sleep, the bigger the saving — and the longer the wake.

So deep modes can only be used during predictable lulls, which is why traffic prediction is now central: the network learns each cell's daily/weekly load pattern and wakes it ahead of the morning ramp rather than reacting after users arrive. During deep sleep a neighbouring cell typically provides fallback coverage so idle UEs aren't stranded. Get the prediction right and the saving is genuinely free; get it wrong and you produce the classic complaint — "energy saving hurt morning coverage" — because the cell was still asleep when the commute began. The wake‑up SLA, not the saving technique, is what makes energy saving safe.

Section 38.5Rel-18 Network Energy Saving

Until recently most of this was vendor‑proprietary, with the risk that an aggressively‑sleeping cell could strand UEs or confuse neighbours. Release 18 Network Energy Saving (NES) standardized the framework so that on/off and adaptation can be coordinated cleanly. It defines cell DTX/DRX patterns (the cell itself periodically stops transmitting/receiving on a known schedule, so UEs and neighbours know when it's quiet), signalling for dynamic adaptation of bandwidth/antennas, and inter‑cell coordination so a sleeping cell's load is gracefully picked up.

The significance is that energy saving becomes a first‑class, interoperable network function rather than a risky local optimisation — multi‑vendor networks can coordinate sleep without stranding users, and the savings become predictable enough to schedule. It also slots naturally into the RAN automation of the next chapter: an energy‑saving policy is exactly the kind of slow, network‑wide optimisation an rApp in the Non‑RT RIC (Chapter 39) is built to drive, learning the traffic patterns and orchestrating cell sleep across a cluster. Energy saving and RAN intelligence are converging.

▸ Advanced · 3GPP deep-dive — power model & the energy-per-bit metric
power model P_total ~ P_fixed + N_active_TRX * (P_PA_idle + load * P_PA_dynamic) PA efficiency ~30-40% (most DC power -> heat) -> PAs dominate the bill energy/bit J/bit = P_total / throughput # efficiency, not raw watts wake-up symbol-blank ms · TRX-mute s · deep-sleep s..tens of s R18 NES cell DTX/DRX, dynamic BW/antenna adaptation, inter-cell coordination

The power model shows why Nactive_TRX is the big lever: each active chain carries an idle PA cost regardless of traffic, so muting chains cuts the fixed‑ish term. The right KPI is energy per bit: a cell can post low watts yet poor J/bit at low load (few bits, same idle PAs) — exactly the inefficiency NES attacks by shrinking Nactive_TRX when bits are scarce.

Worked — J/bit at 3am Cell draws 600 W. Busy hour 1.2 Gb/s → 0.5 µJ/bit (efficient). 3am, 5 Mb/s, still 600 W → 120 µJ/bit (240× worse). Mute to 16 TRX + deep DTX → ~250 W for the same 5 Mb/s → 50 µJ/bit. Raw watts dropped 58%, but the efficiency story (J/bit) is what justifies it — and why energy saving targets low load, not busy hour.

Section 38.6Troubleshooting energy saving

Energy‑saving faults are almost always the trade set too aggressively — saving that became visible to users. Diagnose by what degraded and when.

SymptomLikely causeFix
Morning coverage poor as traffic rampsDeep sleep persisted into the rampWake ahead of predicted load; tune triggers/SLA
Edge SINR drops during quiet hoursSpatial muting too deep (lost gain)Cap muting depth so edge stays within SLA
MU throughput capped at low‑mid loadToo many TRX muted for the actual loadRaise active‑TRX floor; load‑adaptive muting
Latency spikes when traffic returnsLong wake‑up from deep sleepUse shallower modes for less‑predictable cells
Idle UEs stranded under a sleeping cellNo neighbour fallback / NES coordinationEnsure neighbour coverage; enable R18 NES signalling

The governing rule: energy saving must be invisible. If a user can feel it, the trade is set too aggressively — pull back the depth or improve the prediction. The goal is to harvest the low‑load inefficiency (the J/bit gap) without ever making someone wait, which is why every mode is gated by the wake‑up SLA.

Section 38.73GPP map, KPIs & field note

Concepthome
Network Energy Saving (R18)TS 38.300 / TR 38.864
SSB periodicity, BWPTS 38.213, TS 38.331 (Ch.9)
AAS power/TRPTS 38.104 (Ch.17)

KPIs: DC power / energy per bit, watts vs load, wake‑up latency, KPI impact during saving (edge SINR, drop). Field note: "Energy saving hurt morning coverage." Deep sleep / heavy muting persisted into the traffic ramp — tune the prediction/triggers so the cell wakes before load returns, and cap spatial muting so edge coverage stays within SLA. Energy saving must be invisible to users; if it isn't, the trade is set too aggressively.

Interview · Takeaways · Summary

"What can a massive-MIMO radio switch off to save energy?"
In four domains: time (blank symbols/slots, deep sleep), frequency (carrier/BWP shutdown), spatial (mute transceivers/antennas → less gain & MU order), and power (reduce SSB/RS density and Tx power). Deeper sleep saves more but wakes slower.
"What's the main constraint?"
Wake‑up latency and coverage/capacity loss: spatial muting cuts beam gain (~3 dB per halving) and MU streams, deep sleep takes seconds to resume — so saving is gated by traffic prediction and a wake‑up SLA to stay invisible to users.
"Where does a base station's power actually go?"
The power amplifiers dominate, and they're only ~30–40% efficient (most DC power becomes heat). With 64 PAs, the radio is the bill — and much of it is not load‑dependent (idle PAs, SSB, RS all run for an empty cell), which is exactly the waste energy saving targets.
"Why is energy‑per‑bit the right metric, not watts?"
A cell can draw the same watts at 3am as at busy hour but carry almost no bits — efficient by watts, terrible by J/bit. Energy saving attacks that low‑load inefficiency, so J/bit (not raw power) is what shows whether it's working.
"Why is spatial muting unique to massive MIMO?"
It has many PAs to switch off. Muting half the TRX roughly halves PA power (the dominant term) but costs ~3 dB gain and half the MU order — capabilities you don't need at low load, so the trade is invisible there. Match muting depth to actual load.
"What did Rel‑18 NES standardize and why does it matter?"
Cell DTX/DRX patterns, dynamic bandwidth/antenna adaptation, and inter‑cell coordination — making energy saving a first‑class, interoperable function so multi‑vendor cells can sleep without stranding UEs. It pairs naturally with an rApp in the Non‑RT RIC (Ch 39).
  • Save in time / frequency / spatial (TRX muting) / power; modes stack.
  • The PAs dominate the bill and much power is load‑independent — target the low‑load J/bit waste.
  • Spatial muting trades array gain & MU order; deep sleep trades wake‑up latency.
  • Gate by traffic prediction + wake‑up SLA; saving must be invisible to users.
  • R18 NES standardizes cell DTX/DRX + coordination; it's a natural RIC rApp (Ch 39).

Energy saving is one optimization a smarter network can automate. The platform for automated, AI‑driven RAN optimization is Open RAN's RIC. Chapter 39 — Open RAN, RIC and Beam Optimization opens that world.

— end of Chapter 38 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Twelve — Advanced and Future Topics
CHAPTER THIRTY-NINE

Open RAN, RIC and
Beam Optimization

"Open the RAN's interfaces and you can drop a smarter beam-optimizer in as an app — no forklift upgrade."

Every optimization in Part 11 was vendor‑internal. Open RAN changes that: by standardizing the interfaces and splitting the gNB into open components, it lets third‑party intelligence — xApps and rApps on the RIC — observe the RAN over the E2 interface and steer it in closed loops. For MIMO this means programmable, data‑driven, even AI‑based beam and MU‑MIMO optimization. This chapter maps the O‑RAN architecture and where beam optimization plugs in. (O‑RAN is an O‑RAN Alliance architecture layered on 3GPP, not 3GPP itself.)

ObjectivesWhat you'll walk away knowing

  • Know the O‑RAN split: O‑CU / O‑DU / O‑RU, the open 7.2x fronthaul, and the F1/E1 interfaces beneath.
  • Distinguish Near‑RT RIC (xApps, E2) from Non‑RT RIC (rApps, A1/O1) and their clocks.
  • See the MIMO use cases on the RIC — beam/grid, MU pairing, mobility, energy, anomaly detection.
  • Understand the E2 service models (E2SM‑KPM telemetry, E2SM‑RC control) that close the loop.
  • Weigh the risks and realities — xApp conflicts, control‑loop latency, multi‑vendor integration.
  • Deploy and troubleshoot a beam/pairing xApp without forklift‑upgrading the radio.

Section 39.1The O-RAN architecture

O‑RAN disaggregates the gNB into the O‑CU (central unit, higher layers), O‑DU (distributed unit, MAC/PHY‑high), and O‑RU (radio unit, PHY‑low + the antenna/beamforming) connected by an open 7.2x fronthaul. Overseeing them are two controllers: the Near‑RT RIC hosting xApps (control loops of 10 ms–1 s over the E2 interface) and the Non‑RT RIC hosting rApps (slower than 1 s, policy/ML training, over A1). The open interfaces are what let independent software optimize beams the incumbent radio vendor didn't.

O-RAN: disaggregated gNB + RIC controllers O-RU O-DU O-CU 7.2x FH Near-RT RIC (xApps)10 ms–1 s control E2 Non-RT RIC (rApps)>1 s · policy/ML (A1) A1 xApps read E2 telemetry & send control → closed-loop beam/MU optimization
Figure 39.1 · O-RAN: open O-CU/O-DU/O-RU plus Near-RT (xApps/E2) and Non-RT (rApps/A1) RICs
How to read this picture Bottom row: the gNB split into O‑RU (radio + antenna/beamforming), O‑DU (MAC/upper‑PHY) and O‑CU (higher layers), joined by the open 7.2x fronthaul. Above sit the controllers: the Near‑RT RIC runs xApps that read live telemetry and send control over E2 on a 10 ms–1 s loop, while the slower Non‑RT RIC runs rApps (policy and ML training) over A1. Because these interfaces are open, a third party can deploy a beam‑optimization or MU‑pairing xApp on the RIC to improve the network — without replacing the radio vendor's box. That programmability is Open RAN's promise for MIMO.
O-RAN 7.2x split: where beamforming sits in the chain O-DUupper PHY, precoding weights O-RUlower PHY + beamforming fronthaul (eCPRI, 7.2x) category A: weights in O-DU · category B: O-RU applies the beam weights itself
Figure 39.3 · The O-RAN 7.2x split and beamforming
How to read this picture Open RAN's 7.2x fronthaul split decides where beamforming lives. Below the split sits the O-RU (lower PHY and the antenna array); above it the O-DU (upper PHY). In category A the O-DU computes the per-antenna precoding weights and ships them over the fronthaul; in category B the O-RU applies the beam weights itself, saving fronthaul bandwidth. For massive MIMO with dozens of ports, category B is usually necessary — sending per-element data for 64 antennas every symbol would swamp the link. This split point is a defining choice in any O-RAN massive-MIMO design.
Two RICs steer beam optimisation on different clocks Non-RT RIC — rAppspolicy / AI training · seconds–minutes Near-RT RIC — xAppsbeam decisions · 10 ms–1 s A1 E2 O-CU O-DU O-RU (antennas) fronthaul rApp sets policy → xApp adjusts beams via E2 → O-DU/O-RU execute
Figure 39.4 · How the O-RAN RIC layers control beamforming
How to read this picture Open RAN splits the base station into O-CU, O-DU and O-RU and adds two controllers. The Non-RT RIC runs rApps that set slow policy and train models (seconds to minutes), pushing guidance down the A1 interface. The Near-RT RIC runs xApps that make fast beam and scheduling decisions (10 ms to 1 s) and act on the O-DU through the E2 interface. So a beam-optimisation rApp might learn the best beam-set policy overnight, while an xApp applies it live per-user — open interfaces letting third-party logic steer the array the vendor built.
A beam-management xApp closes the loop over E2 observeKPIs / RSRP via E2 decidepick beams / policy actE2 control to O-DU
Figure 39.2 · The observe–decide–act loop of a beam xApp
How to read this picture A beam-management xApp runs a classic control loop over the E2 interface. It observes per-UE KPIs and beam RSRP streamed from the O-DU, decides on a better beam set or policy (increasingly with a learned model), and acts by sending E2 control messages that the O-DU and O-RU execute. The dashed return path closes the loop so the next decision sees the effect of the last. Because this lives in an open xApp rather than vendor firmware, an operator can swap in smarter beam logic without changing the radio.
▸ Advanced · 3GPP/O-RAN deep-dive — RIC, E2 & MIMO use cases
O-RAN split O-RU / O-DU / O-CU · open fronthaul 7.2x (eCPRI) Near-RT RIC xApps · E2 interface · E2SM-KPM (telemetry) / E2SM-RC (control) · 10 ms–1 s Non-RT RIC rApps · A1 (policy) · O1 (management) · >1 s, ML training/inference MIMO xApp use cases grid-of-beams optimization, beamforming-config tuning, MU-MIMO pairing/scheduling assist, mobility/beam-management optimization, energy-saving control (Ch.38), anomaly detection

Telemetry (E2SM-KPM) feeds an xApp the KPIs of Ch.33 (RI/CQI/beam/MU counters); control (E2SM-RC) lets it adjust beam sets, pairing policy, or thresholds — a closed loop tighter than human optimization. The Non-RT RIC trains models offline and pushes policies/weights via A1. This is where the AI/ML of Chapter 40 is operationally hosted. (O-RAN specs are O-RAN Alliance, layered on 3GPP TS 38.4xx.)

Worked — pairing xApp An MU-pairing xApp ingests per-UE channel/CQI via E2SM-KPM, computes better orthogonal pairings than the default scheduler heuristic, and steers via E2SM-RC — lifting MU pairing rate and cell SE (the Ch.35 fixes, automated and continuous). The radio vendor's scheduler stays; the RIC app augments it.

Section 39.2Disaggregation and the open interfaces

Open RAN's first idea is to break the monolithic gNB into independently‑sourced pieces joined by open interfaces. 3GPP already defined a higher split — the O‑CU (higher layers: RRC/PDCP/SDAP) talks to the O‑DU (RLC/MAC/upper‑PHY) over the F1 interface, and within the CU, control and user planes split over E1. O‑RAN's distinctive addition is opening the lower split too: the O‑DUO‑RU 7.2x fronthaul (eCPRI‑based), so the radio unit can come from a different vendor than the baseband.

That 7.2x split is where massive MIMO's hardest fronthaul question lives (Figure 39.3): do you send per‑antenna data and compute beams in the O‑DU (category A), or compute beam weights and apply them in the O‑RU (category B)? For 64‑port arrays, shipping per‑element samples every symbol would swamp the fronthaul, so category B (beamforming in the O‑RU) is usually mandatory. The open interfaces are the whole point: they turn the RAN from a closed appliance into a platform where independent software — the RIC apps below — can observe and steer the network the radio vendor built. That programmability, not the disaggregation itself, is what matters for MIMO optimisation.

Section 39.3The two RICs — two clocks for two jobs

Intelligence sits in two controllers running on deliberately different timescales, mirroring the coarse‑slow/fine‑fast pattern seen throughout this book. The Near‑RT RIC hosts xApps that act on a 10 ms–1 s loop over the E2 interface — fast enough to influence beam selection, MU pairing, and mobility per‑UE while it's happening. The Non‑RT RIC hosts rApps on a >1 s (seconds to hours) loop over A1 (policy) and O1 (management) — the home for training ML models, learning traffic patterns, and setting the policies the xApps then execute.

The division of labour is natural: the rApp learns and decides policy slowly (e.g. "for this cell at this hour, prefer this beam‑set and this energy‑saving profile"), pushes it down via A1, and the xApp applies and adapts it fast per‑UE. A beam‑optimisation rApp might train overnight on a week of telemetry; the matching xApp then makes the live per‑user beam decisions within that learned policy. This two‑clock structure is exactly why the AI/ML of Chapter 40 has a home: heavy training in the Non‑RT RIC, light inference in the Near‑RT RIC — slow brain, fast reflexes.

Section 39.4MIMO use cases on the RIC

The reason this architecture matters for this book is that nearly every optimisation in Part 11 becomes a programmable RIC app. Beam/grid‑of‑beams optimisation: an xApp tunes which beams a cell uses and how it selects among them, adapting the beam book to the actual traffic geography. MU‑MIMO pairing assist: an xApp computes better orthogonal pairings than the default scheduler heuristic (the Chapter 35 fixes, automated and continuous). Mobility/beam‑management optimisation: tuning handover and beam‑switch thresholds from observed outcomes rather than static config.

And the slower, rApp‑hosted ones: energy‑saving control (the Chapter 38 policies, learned from traffic patterns and orchestrated across a cluster), anomaly detection (spotting a mis‑calibrated or under‑performing cell from its KPI signature), and configuration optimisation (tilt, power, thresholds tuned network‑wide). The common thread is that the RIC turns one‑off, manual, vendor‑locked optimisations into continuous, data‑driven, portable ones. The radio vendor's scheduler and beamformer stay in place; the RIC app augments them with intelligence that sees more data and reacts faster than human optimisation ever could.

Section 39.5Risks and realities

The promise is real but so are the pitfalls, and a balanced engineer should know them. First, xApp conflicts: if a mobility xApp and an energy‑saving xApp both act on the same cell, they can fight — one waking a cell the other just slept. O‑RAN defines conflict mitigation to arbitrate, but it has to be configured and tested; uncoordinated apps can destabilise a network. Second, control‑loop latency: the Near‑RT RIC's 10 ms–1 s budget fits beam/pairing/mobility decisions but is too slow for symbol‑level or fast HARQ control, which must stay in the O‑DU — so not everything can or should move to the RIC.

Third, multi‑vendor integration: open interfaces in principle don't guarantee plug‑and‑play in practice — fronthaul interoperability (7.2x category, timing) and E2 service‑model versions must actually match across vendors, which is where much real O‑RAN effort goes. And an xApp augmenting a vendor's scheduler must not undermine it — the two have to be designed to cooperate, not override blindly. None of this negates Open RAN's value, but it tempers the marketing: the platform is genuinely powerful, and realising that power is an integration and coordination discipline, not a free lunch.

▸ Advanced · O-RAN deep-dive — E2 service models & conflict mitigation
E2SM-KPM Key Performance Measurement — telemetry subscription (RI/CQI/beam/MU counters) E2SM-RC RAN Control — control actions (beam set, pairing policy, mobility, thresholds) E2SM-CCC Cell Configuration & Control (incl. energy saving) A1 policy/intent from Non-RT -> Near-RT ; O1 management/config (FCAPS) conflict mitigation Near-RT RIC arbitrates overlapping xApp actions latency budget Near-RT 10 ms-1 s (NOT symbol/HARQ-level — stays in O-DU)

An xApp subscribes to telemetry via E2SM-KPM and acts via E2SM-RC — the observe/act of Figure 39.2. The Non-RT RIC pushes learned policy over A1. Crucially, conflict mitigation in the Near-RT RIC arbitrates when multiple xApps target the same parameters, and the latency budget bounds what the RIC can do — fast L1/HARQ control remains in the O-DU.

Worked — conflict A beam xApp narrows beams for capacity while an energy xApp mutes TRX for power — they collide (narrow beams need the full array). Conflict mitigation resolves by priority/policy (e.g. energy xApp yields during busy hour). Without it, the two oscillate. Lesson: RIC power requires coordination, not just apps.

Section 39.6Deploying & troubleshooting a beam/pairing xApp

Bringing RIC optimisation to a MIMO network is itself an engineering task. Common issues and checks:

Goal / symptomConsiderationAction
Improve MU pairing without new radioClassic Open‑RAN use casePairing xApp on Near‑RT RIC (E2SM‑KPM in, E2SM‑RC out)
xApp decisions seem to lag the channelControl‑loop latency vs decision timescaleConfirm the decision fits 10 ms–1 s; faster stays in O‑DU
Two xApps oscillate / fightNo conflict mitigationConfigure conflict‑mitigation priorities/policies
xApp and vendor scheduler disagreeAugment vs overrideDesign xApp to assist, not bypass, the scheduler
Multi‑vendor O‑RU/O‑DU won't interwork7.2x category / E2SM version mismatchAlign fronthaul category & service‑model versions; conformance test

The headline value remains: programmable optimisation without a forklift upgrade. You can drop a smarter beam or pairing app onto the RIC and improve a live network the incumbent radio vendor built — provided you respect the latency budget, arbitrate conflicts, and treat multi‑vendor interop as real work rather than an assumption.

Section 39.73GPP/O-RAN map · KPIs · field note

Concepthome
O-RAN architecture, RIC, E2/A1/O1, fronthaulO-RAN Alliance specs (WG3/WG2/WG4)
Underlying gNB (CU/DU split)3GPP TS 38.401, F1/E1
Telemetry KPIsTS 28.552, E2SM-KPM

KPIs: xApp control‑loop latency, KPI lift from xApp (pairing/SE/beam), E2 telemetry volume, policy compliance. Field note: "Want to improve MU pairing without changing the radio." This is the Open‑RAN use case: deploy a pairing/beam xApp on the Near‑RT RIC reading E2 telemetry and steering via E2SM‑RC. Validate the control‑loop latency fits the decision (pairing is ~10s–100s ms) and that the xApp and vendor scheduler don't fight. Programmable optimization, no forklift.

Interview · Takeaways · Summary

"What are the RIC types and their interfaces?"
Near‑RT RIC hosts xApps controlling the RAN over E2 on a 10 ms–1 s loop (E2SM‑KPM telemetry, E2SM‑RC control). Non‑RT RIC hosts rApps over A1 (policy) and O1 (management), slower than 1 s, for ML training and policy. They enable programmable, data‑driven optimization.
"Give a MIMO beam-optimization use case for the RIC."
An xApp that reads beam/CQI/RI/MU telemetry via E2 (E2SM‑KPM) and tunes the grid of beams or MU‑MIMO pairing policy in a closed loop (E2SM‑RC) — automating the Chapter 35/37 fixes continuously, without replacing the radio vendor.
"What are E2SM‑KPM and E2SM‑RC?"
E2 service models: KPM (Key Performance Measurement) is the telemetry subscription an xApp reads (RI/CQI/beam/MU counters); RC (RAN Control) is the control action it sends (beam set, pairing policy, mobility, thresholds). They are the observe and act of the xApp loop.
"Why can't everything move to the RIC?"
The Near‑RT RIC's control loop is 10 ms–1 s — fine for beam/pairing/mobility but far too slow for symbol‑level or HARQ control, which must stay in the O‑DU. The RIC augments slower decisions; it doesn't replace the real‑time PHY/MAC.
"What happens if two xApps target the same cell?"
They can conflict (e.g. a beam xApp narrowing beams while an energy xApp mutes TRX). O‑RAN defines conflict mitigation in the Near‑RT RIC to arbitrate by priority/policy; without it the apps oscillate. RIC power requires coordination, not just apps.
"Is multi‑vendor O‑RAN truly plug‑and‑play?"
Not automatically. Open interfaces define the contract, but 7.2x fronthaul category, timing, and E2 service‑model versions must actually match across vendors — interoperability is real integration/conformance work, which is where much O‑RAN effort goes.
  • O‑RAN splits the gNB (O‑CU/O‑DU/O‑RU, open 7.2x fronthaul; F1/E1 beneath) and adds RIC controllers.
  • Near‑RT RIC/xApps/E2 (10 ms–1 s) for control; Non‑RT RIC/rApps/A1/O1 (>1 s) for policy/ML — two clocks.
  • E2 service models: E2SM‑KPM (telemetry) + E2SM‑RC (control) close the loop.
  • MIMO use cases: beam/grid, MU pairing, mobility, energy, anomaly — programmable, no forklift.
  • Realities: xApp conflict mitigation, the latency budget, and multi‑vendor interop are real work, not free.

The RIC is the platform; the intelligence running on it is increasingly AI/ML. Chapter 40 — AI/ML for Beam Prediction covers the algorithms: predicting beams and mobility, compressing CSI, and closing the loop with learning.

— end of Chapter 39 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Twelve — Advanced and Future Topics
CHAPTER FORTY

AI/ML for
Beam Prediction

"Why sweep 64 beams when a model can predict the best one from 8 measurements?"

Beam management's costs are sweeping (measure many beams), feedback (report CSI), and latency (the loop lags fast users). AI/ML attacks all three by predicting rather than measuring everything: predict the best beam from a sparse subset (spatial prediction), predict the next beam from the trajectory (temporal prediction), and compress CSI with learned encoders. 3GPP studied exactly these in Rel‑18's "AI/ML for the air interface." This chapter covers the use cases, the pipeline, and the life‑cycle management that makes models deployable.

ObjectivesWhat you'll walk away knowing

  • Know the three 3GPP AI/ML air‑interface use cases: beam prediction, CSI compression, positioning.
  • Distinguish spatial (Set‑B subset → Set‑A best) and temporal (trajectory → future best) prediction, with top‑k accuracy.
  • Understand the two‑sided autoencoder for CSI compression and its interoperability challenge.
  • Know where models run — Non‑RT training vs Near‑RT/UE inference — and the collaboration levels (x/y/z).
  • Apply life‑cycle management (monitoring, drift, fallback) and understand the generalization problem.
  • Troubleshoot a beam‑prediction model that degraded after a network change.

Section 40.1Predict, don't sweep

The headline use case: beam prediction. Instead of sweeping all 64 beams, the UE measures a small subset (say 8) and a model predicts which of the full set is best — cutting sweep overhead and latency. Two flavours: spatial (predict the best full beam from a sparse set measured now) and temporal (predict the best future beam from the recent trajectory, beating the tracking lag of Chapter 31). Beyond beams, CSI compression uses a learned autoencoder to shrink feedback (better than Type II at the same bits), and positioning infers location from channel features.

measure a sparse subset → model predicts the best beam measure 8 of 64 beams(sparse input) ML modelspatial / temporal best beam (predicted)+ no full sweep saves sweep overhead & latency · temporal version beats tracking lag (Ch.31)
Figure 40.1 · Beam prediction: a model infers the best beam from a sparse measurement
How to read this picture Instead of measuring all 64 beams, the UE measures a sparse subset (say 8), feeds them to an ML model, and the model predicts which of the full 64 is best. That slashes the sweep overhead and the latency of beam management. The spatial version predicts the best beam now from a subset; the temporal version predicts the best future beam from the recent trajectory — directly attacking the tracking‑lag problem of Chapter 31 (predict where the user will be, not where they were). Same idea underlies learned CSI compression (autoencoders) and channel‑based positioning.
The AI/ML model lifecycle — it doesn't end at deployment collect datareal channels train + validate deployrApp/xApp monitor + driftretrain when stale
Figure 40.3 · The model lifecycle for AI-driven beam management
How to read this picture An ML beam predictor is never 'done'. The lifecycle runs: collect real channel data, train and validate a model, deploy it (as an rApp/xApp, Chapter 39), then monitor it in the live network — because the radio environment drifts (new buildings, seasonal foliage, traffic shifts) and a model trained last year slowly goes stale. When monitoring detects that drift, the loop closes back to retraining. 3GPP's Rel-18 AI/ML framework standardises exactly these stages, including the performance-monitoring needed to know when a deployed model has degraded.
Two ways ML cuts beam-sweep overhead SPATIAL — measure few, predict many sweep a sparse set → model infers the best narrow beam TEMPORAL — predict the next beam predicted from the beam trajectory, forecast where to point next
Figure 40.4 · Spatial vs temporal ML beam prediction
How to read this picture Machine learning attacks beam-sweep overhead two ways. Spatial prediction: sweep only a sparse subset of beams and let a trained model infer the best narrow beam from that partial measurement — fewer sweeps for the same accuracy. Temporal prediction: watch the user's beam trajectory over time and forecast which beam they'll need next, switching before the current one fades. Both replace exhaustive measure-everything sweeps with a learned shortcut, which is exactly the overhead that kills FR2 and high-speed performance.
CSI compression: an autoencoder split across UE and gNB full CSI(big) encoder (UE) few bits ↑ uplink feedback (small) decoder (gNB) reconstructedCSI
Figure 40.2 · Learned CSI compression with a split autoencoder
How to read this picture Type II CSI feedback is accurate but heavy on the uplink. A learned autoencoder splits the work: the encoder runs on the UE and squeezes the full channel into a handful of bits; those few bits are fed back; the decoder on the gNB reconstructs the channel. Trained together on real channels, the pair keeps far more fidelity per feedback bit than a fixed codebook — so the gNB gets near-Type-II precoding accuracy at a fraction of the uplink cost. It is the flagship Rel-18 AI-for-air-interface use case.
▸ Advanced · 3GPP deep-dive — AI/ML for the air interface (R18 study)
use cases (TR 38.843) beam management · CSI feedback · positioning beam prediction spatial (Set-A best from Set-B subset) · temporal (predict future best beam) CSI compression two-sided autoencoder (UE encoder ↔ gNB decoder) → fewer bits than Type II model LCM training, inference, monitoring, activation/deactivation, switching, fallback collaboration levels Level x (no model exchange) / y (signalling) / z (model transfer)

The hard problems are generalization (a model trained on one cell/scenario must work elsewhere) and two-sided models (UE and gNB must agree on a shared autoencoder — a vendor-interoperability challenge). Life-cycle management (LCM) — monitoring drift and falling back to legacy when the model underperforms — is essential for trust. R18 was a study; normative AI/ML work continues in R19+.

Worked — sweep saving FR2, 64 beams: full P2 sweep ≈ 64 CSI-RS measurements. A spatial-prediction model using 8 measurements to predict the best beam cuts sweep overhead ~8× and the acquisition latency similarly — material when beams are this many and users move. The cost: model training, monitoring, and a fallback when prediction confidence drops.

Section 40.2Beam prediction in depth

Beam prediction is framed in 3GPP as mapping a measured Set B (a sparse subset of beams the UE actually measures) to a predicted best beam within Set A (the full set). Spatial prediction does this in space: measure 8 wide or sampled beams now, and the model infers which of the 64 narrow beams is strongest — exploiting the fact that beam quality varies smoothly with angle, so a sparse sampling carries most of the information. The payoff is an ~8× cut in sweep overhead and acquisition latency, which matters most exactly where sweeps are largest (FR2, 64 beams).

Temporal prediction does it in time: from the recent trajectory of the user's best beam, forecast which beam they'll need a few slots from now — and switch to it before the current one fades. This directly attacks the tracking‑lag problem of Chapter 31, where the measure‑report‑apply loop always points at where the user was; a temporal model points at where they'll be. Both are judged by top‑k accuracy: top‑1 is "did the predicted best beam match the true best?", and top‑k (e.g. top‑5) is "was the true best among the model's top few?" — the practical metric, because the network can quickly confirm a small predicted shortlist with a tiny verification sweep, getting prediction's overhead savings with a safety check against being wrong.

Section 40.3CSI compression — the two-sided autoencoder

The second flagship use case attacks feedback rather than sweeping. Type II CSI is accurate but heavy on the uplink (Chapter 20); a learned autoencoder does better per bit by splitting itself across the link: an encoder on the UE squeezes the full channel into a handful of bits, those bits are fed back, and a decoder on the gNB reconstructs the channel. Trained jointly on real channels, the pair preserves far more fidelity per feedback bit than any fixed codebook — near‑Type‑II accuracy at a fraction of the uplink cost.

But this is a two‑sided model, and that's the deployment headache. The UE's encoder and the gNB's decoder must be trained together and stay compatible — yet the UE and the gNB come from different vendors who don't share proprietary models. 3GPP's collaboration levels frame the options: from no model exchange at all (each side trains independently against an agreed format), through signalling‑assisted, to actual model transfer. Resolving how two vendors share or align a model without exposing their IP is one of the central unsolved problems of AI‑for‑air‑interface — which is why beam prediction (largely one‑sided, living in the network or UE alone) is closer to deployment than two‑sided CSI compression. The technique is proven; the interoperability is the work.

Section 40.4Where the models run

An ML model has two very different phases with different homes. Training is heavy, offline, data‑hungry — it belongs in the Non‑RT RIC (Chapter 39) or an offline platform, chewing through weeks of telemetry to fit the model. Inference is light and must be fast — it runs where the decision is made: a beam‑prediction model inferring per‑UE lives in the Near‑RT RIC (xApp) or, for the UE‑side half of a two‑sided model, on the device itself. This is the same slow‑brain/fast‑reflexes split the two‑RIC architecture was built for: train slow up top, infer fast at the edge.

The collaboration levels also describe who hosts what. A one‑sided network model (beam prediction in the RIC) is operationally simplest — the operator trains and runs it, no UE involvement. A UE‑side model (some spatial prediction) needs the device to carry it. A two‑sided model (CSI autoencoder) needs both, in lockstep. So the deployability of each use case tracks how many parties must coordinate: network‑only first, UE‑assisted next, two‑sided last. Knowing where a given model trains and infers — and how many vendors that involves — tells you how near or far it is from a real network.

Section 40.5Life-cycle management — AI with a safety net

The single most important operational idea is that an ML model in a RAN is never "done." The radio environment drifts: new buildings change the channel geometry, foliage changes with seasons, traffic patterns shift, a network retune alters the very beams the model learned. A model trained last year slowly goes stale, and a stale beam‑predictor that confidently points at the wrong beam is worse than honest measurement. So 3GPP wraps models in life‑cycle management (LCM): training, deployment, then continuous monitoring of prediction accuracy, with activation/deactivation, switching between models, and crucially a fallback to legacy (real sweeping / Type II) when the model underperforms.

That fallback is what makes AI trustworthy here. The network treats the model as an optimisation with a safety net, not a black box: it keeps measuring enough to know whether the model is still right (e.g. the top‑k verification sweep above), and the instant accuracy drops below threshold it reverts to the deterministic method and triggers retraining. The other hard problem LCM addresses is generalization — a model trained on one cell or scenario must work on others, or you'd need to train per‑cell forever. Robust generalization plus disciplined LCM are what move AI/ML from a research demo to something an operator dares run on a live network. Treat the model as fallible by design and it becomes safe to deploy.

▸ Advanced · 3GPP deep-dive — collaboration levels & LCM (TR 38.843)
collaboration Level x: no model exchange · y: signalling-assisted · z: model transfer one-sided network-only (beam pred in RIC) OR UE-only — simplest to deploy two-sided UE encoder + gNB decoder (CSI) — needs joint training / IP alignment LCM data collection -> training -> deployment -> monitoring -> (de)activation / switch / fallback metrics top-1 / top-k beam accuracy · CSI reconstruction (NMSE / SGCS) · overhead saved

One-sided models deploy first because only one party trains/runs them; two-sided CSI compression waits on solving cross-vendor model alignment (the collaboration-level question). LCM with monitoring + fallback is mandatory for trust — the model must detect its own staleness and revert. Positioning (the third use case) infers location from channel features (e.g. fingerprinting) where geometric methods struggle (heavy NLOS).

Worked — top-k with verification A model predicts the top‑4 beams (Set A) from 8 measurements (Set B). The network sweeps only those 4 to confirm → if the true best is among them (high top‑4 accuracy), you spent 8+4=12 measurements instead of 64, an ~5× saving, and you're protected against a wrong top‑1. The verification sweep is the safety net that makes prediction deployable.

Section 40.6Troubleshooting AI/ML in the RAN

AI faults are about trust and drift more than algorithms. Diagnose by how the model is failing.

SymptomLikely causeFix
Beam‑prediction accuracy fell after a network changeModel drift (environment changed)LCM monitor → fallback to sweeping → retrain on new data
Model great in one cell, poor in anotherPoor generalization (overfit to training cell)Train on diverse data; per‑scenario models; site fine‑tuning
Confident but wrong beam picksNo verification / safety netUse top‑k + small verification sweep; confidence thresholds
Two‑sided CSI model won't interoperateUE/gNB encoder‑decoder mismatchAgree collaboration level (x/y/z); aligned training format
Inference too slow for the decisionHeavy model in the fast loopLighten/quantise model; train in Non‑RT, infer in Near‑RT/UE

The governing principle: treat AI as an optimisation with a safety net, never a black box. Keep measuring enough to know if the model is still right, fall back to the deterministic method the moment it isn't, and retrain on the drifted data. Generalization and LCM — not raw model accuracy — are what make AI/ML safe on a live network.

Section 40.73GPP map · KPIs · field note

Concepthome
AI/ML for NR air interface (study)TR 38.843 (R18); R19+ normative
RIC hosting (Non-RT training, Near-RT inference)O-RAN (Ch.39)
Beam/CSI baselines it improves onTS 38.214 (Ch.18-24)

KPIs: beam‑prediction accuracy (top‑1/top‑k), sweep/feedback overhead reduction, latency, model drift/fallback rate, throughput vs legacy. Field note: "Beam‑prediction xApp degraded after a network change." Models drift when the environment changes (new buildings, retune). LCM must monitor accuracy and fall back to legacy sweeping when confidence drops, then retrain. Treat AI as an optimization with a safety net, not a black box.

Interview · Takeaways · Summary

"What are the AI/ML air-interface use cases and how does beam prediction help?"
Beam management, CSI feedback compression, positioning (TR 38.843). Beam prediction infers the best beam from a sparse measurement (spatial) or from the trajectory (temporal), cutting sweep overhead, feedback, and tracking latency.
"What makes AI/ML hard to deploy here?"
Generalization (a model must work beyond its training cell), two-sided model interoperability (shared UE/gNB autoencoder), and life‑cycle management — monitoring drift and falling back to legacy when the model underperforms.
"Why is two‑sided CSI compression harder to deploy than beam prediction?"
CSI compression needs a UE encoder and gNB decoder trained together and kept compatible across vendors who don't share models — the collaboration‑level problem. Beam prediction is largely one‑sided (network or UE alone), so fewer parties must coordinate; it deploys first.
"What is top‑k accuracy and why use it?"
Top‑1 = predicted best beam matches the true best; top‑k = the true best is among the model's top few. Top‑k lets the network confirm a small predicted shortlist with a tiny verification sweep — keeping most of prediction's savings while protecting against a wrong top‑1.
"Where do training and inference run?"
Training is heavy/offline → Non‑RT RIC (or offline). Inference is light/fast → Near‑RT RIC (xApp) or the UE for the UE‑side half. Slow brain up top, fast reflexes at the edge — the two‑RIC split of Ch 39.
"A beam‑prediction xApp degraded after a network change — what now?"
Model drift. LCM should have caught the accuracy drop, fallen back to legacy sweeping (the safety net), and flagged retraining. Retrain on the new‑environment data and redeploy. Treat AI as an optimisation with a safety net, not a black box.
  • AI/ML use cases: beam prediction, CSI compression, positioning (TR 38.843).
  • Beam prediction = spatial (Set‑B→Set‑A best) + temporal (trajectory→future best, beats lag); judged by top‑k.
  • CSI compression = two‑sided autoencoder — powerful but blocked by cross‑vendor model alignment (collaboration levels x/y/z).
  • Train slow (Non‑RT/offline), infer fast (Near‑RT/UE) — hosted on the RIC (Ch 39).
  • LCM (monitor + fallback) and generalization are the deployment keys — AI with a safety net, never a black box.

AI optimizes the macro network. The other frontier is the opposite end of scale — dedicated networks for a single site. Chapter 41 — Massive MIMO for Private 5G covers factories, stadiums, and indoor beam planning.

— end of Chapter 40 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Twelve — Advanced and Future Topics
CHAPTER FORTY-ONE

Massive MIMO
for Private 5G

"A factory is a metal box full of reflections. That's a curse for reliability and a gift for rank."

Private 5G — dedicated networks for factories, stadiums, ports, airports — is a different design world from public macro. The area is small, the users are known, the reliability demands are extreme (URLLC for robots/AGVs), and the propagation is dominated by indoor effects: dense reflections (great for MIMO rank), but also metal blockage and tight reuse. This chapter applies everything in the book to these venues: indoor beam planning, why rich reflections help rank, and where blockage/reliability bite.

ObjectivesWhat you'll walk away knowing

  • Characterize private‑5G propagation: rich reflections (high rank) + metal blockage.
  • See why private 5G inverts the design priorities — reliability‑first, fixed devices, known users.
  • Apply the reliability toolkit: URLLC, PDCP duplication, multi‑TRP, mini‑slots, low‑SE CQI.
  • Choose deployment model & bands: SNPN vs PNI‑NPN, CBRS/n77/local‑licensed.
  • Slice the MIMO philosophy — eMBB rank vs URLLC diversity in the same venue.
  • Plan indoor beam coverage and troubleshoot AGVs dropping behind machinery.

Section 41.1The indoor channel: a gift and a curse

An enclosed venue bounces signals off walls, machinery, and floors, creating rich scattering — which (Chapters 2–3, 15) means low correlation, high rank, and excellent MIMO multiplexing. That's the gift. The curse: metal blockage (machines, racks, shelving) creates deep shadows, and the small, dense space makes interference reuse tight. So private‑5G massive MIMO leans on the channel's natural richness for capacity while fighting blockage with placement, multiple radios, and beam diversity — and must meet far stricter reliability than public macro.

factory: rich reflections (high rank) + metal blockage (shadows) AAU metal blockers → shadows robots/AGVs (URLLC) rich multipath → high rank; place radios for diversity around blockers
Figure 41.1 · The indoor venue: reflections give rank, machinery gives shadows
How to read this picture A factory floor. The light lines are the dense reflections off walls and machines — rich multipath that decorrelates the channel and gives high rank (the MIMO gift, Chapters 2–3/15). The grey blocks are metal machinery casting deep radio shadows (the curse). The UEs are robots/AGVs needing URLLC reliability. So private‑5G design exploits the natural richness for capacity, but places radios for angular diversity around the blockers (multiple AAUs/TRPs) and engineers for reliability — a very different balance from the coverage‑driven public macro.
Private 5G: smaller arrays, dense devices, deterministic needs gNB AGVrobot armsensorcamera MU-MIMO serves many fixed nodes at once
Figure 41.3 · Massive MIMO in a private 5G factory
How to read this picture A private campus network changes the massive-MIMO trade-offs. The cell is indoors and small, so arrays are modest, but the devices are dense and often stationary — AGVs, robot arms, sensors, cameras — which is ideal for MU-MIMO because their channels are stable and easy to separate. The demands are deterministic latency and reliability rather than peak rate. So private-5G beamforming is tuned for many simultaneous fixed streams with tight, predictable performance, not for chasing fast mobile users across a macro cell.
Stationary devices → CSI stays fresh → easy precoding gNB AGV channel barelychanges → SRS rare slow CSI ageing lets the gNB precode tightly with little feedback overhead
Figure 41.2 · Why fixed devices make beamforming cheap
How to read this picture The killer advantage of a private network is that most devices barely move. A channel that changes slowly ages slowly, so the gNB can sound it rarely and still hold an accurate, fresh estimate — the opposite of the high-speed problem in Chapter 31. That means tight precoding and reliable MU-MIMO with very little SRS or feedback overhead. Where macro networks fight CSI staleness, a factory network gets near-perfect channel knowledge almost for free, which is why deterministic reliability is achievable there.
▸ Advanced · 3GPP deep-dive — private-5G specifics
bands shared/local-licensed: CBRS (US 3.55–3.7 GHz), n77/n78, local 3.x/4.x GHz, FR2 hotspots propagation InH-Factory (TR 38.901) · rich scatter → high rank · metal → blockage reliability URLLC: 1e-5 BLER, ~1 ms · CQI table3 (low-SE) · PDCP duplication · mini-slots topology multi-TRP / distributed radios for diversity vs blockage (Ch.32) slicing dedicated slice (eMBB + URLLC) on-prem; SNPN / PNI-NPN deployment

Private 5G can run as a Standalone Non-Public Network (SNPN) or integrated with a public network (PNI-NPN). The reliability bar (URLLC) reshapes MIMO choices: favour diversity (multi-TRP, PDCP duplication, robust low-rank with strong coding) over peak rank, because a dropped packet on an AGV is worse than a slower one. The rich indoor rank is a bonus for the eMBB slice, but URLLC traffic is engineered conservatively.

Worked — diversity over depth An AGV needs 99.999% reliability. Rather than rank-4 peak, the design uses multi-TRP (two radios, blockage diversity) + PDCP duplication + CQI table3 (1e-5 BLER) + rank 1–2 robust beams. The factory's rich rank serves the eMBB cameras; the AGVs get reliability-first MIMO. Same venue, two MIMO philosophies by slice.

Section 41.2Private 5G inverts the design priorities

Almost every assumption behind public‑macro massive MIMO flips in a private network, and seeing the inversion is the key to designing one well. Public macro chases coverage and peak rate for unknown, mobile users across a wide area. A private network serves a small, known, mostly stationary population in an enclosed venue with extreme reliability demands. That changes what "good MIMO" even means: peak spectral efficiency matters less than guaranteeing every AGV its packet on time, every time.

The fixed, known nature of the devices is a quiet superpower (Figure 41.2). Because an AGV or a bolted‑down robot arm barely moves, its channel ages slowly — so the gNB can sound it rarely and still hold accurate, fresh CSI, the exact opposite of the high‑speed staleness problem (Chapter 31). That makes tight precoding and reliable MU‑MIMO cheap: little SRS overhead, near‑perfect channel knowledge, stable pairing. Combined with the rich indoor rank, a factory is in many ways the easiest place to do high‑quality MIMO — provided you respect the one hard part, which is reliability against blockage. The art of private‑5G MIMO is leveraging the easy parts (stable channels, rich rank) to fund the hard part (deterministic reliability)."

Section 41.3The reliability toolkit

URLLC reliability — often a target like 99.999% (one packet error in 100,000) at ~1 ms latency — is met not by one feature but by stacking several, and most of them trade peak performance for robustness. Robust, low‑rank transmission: rank‑1 or rank‑2 with strong coding (a low‑spectral‑efficiency CQI table designed for 10⁻⁵ BLER, not the usual 10⁻¹) is far more dependable than chasing rank‑4. PDCP duplication: send the same packet over two paths/carriers/TRPs so a loss on one is covered by the other — pure diversity. Mini‑slots: sub‑slot scheduling so a packet doesn't wait for the next slot boundary, cutting latency.

The MIMO‑specific reliability lever is multi‑TRP diversity (Chapter 32): serve the device from two physically separated radios so a metal blocker — which can only shadow one line of sight — can't kill the link. Notice the theme: every tool spends some capacity to buy reliability, the inverse of the throughput‑maximising instinct of the earlier chapters. In a factory, a dropped packet can stall a production line or risk a collision, so a slower‑but‑certain link beats a faster‑but‑flaky one. This reliability‑first mindset is the single biggest mental shift when moving from public to private network design.

Section 41.4Deployment models and spectrum

A private network needs spectrum and an architecture, and there are real choices in both. On spectrum: some regions allocate local‑licensed bands specifically for private use (e.g. Germany's 3.7–3.8 GHz, Japan's local 5G), the US offers shared CBRS (3.55–3.7 GHz) with a spectrum‑access‑system, and an enterprise can also lease an operator's licensed n77/n78; FR2 serves dense hotspots. The band shapes the MIMO design — mid‑band for coverage‑plus‑capacity, FR2 where huge capacity is needed in a small, controllable space.

On architecture, 3GPP defines two flavours of Non‑Public Network. A Standalone NPN (SNPN) is fully self‑contained — its own core on‑premises, independent of any operator, ideal for a factory that wants total control and data isolation. A Public‑Network‑Integrated NPN (PNI‑NPN) rides on a public operator's network, often as a dedicated slice with on‑prem radios — less control but less to run. The choice drives where the core and the slice live, and therefore how the URLLC slice's tight latency budget is met (an on‑prem SNPN core keeps the user plane local, which is often necessary for 1 ms round trips). Spectrum and architecture together set the canvas the MIMO design paints on."

▸ Advanced · 3GPP deep-dive — NPN, URLLC mechanisms & venue types
NPN SNPN (standalone, own core) | PNI-NPN (slice on public net) bands local-licensed (DE 3.7-3.8, JP local 5G) | CBRS (US) | leased n77/n78 | FR2 URLLC CQI table 3 (low-SE, 1e-5 BLER) · PDCP duplication · mini-slot (2/4/7 sym) · grant-free diversity multi-TRP (blockage) · carrier/TRP duplication · low rank + strong coding venue channel InH-Factory / InH-Office (TR 38.901) · high K-factor near metal

The venue type matters: an InH‑Factory channel (TR 38.901) is rich‑scatter but blockage‑heavy; a stadium is huge‑density eMBB (MU‑MIMO breadth, Chapter 16); a port/airport mixes outdoor coverage with URLLC for cranes/vehicles. Each tilts the MIMO design — stadiums toward MU pairing capacity, factories toward URLLC diversity. The on‑prem SNPN core keeps the URLLC user plane local for the latency budget.

Worked — stadium vs factory Stadium: 40,000 phones, eMBB → design for maximum MU‑MIMO order (pair as many as DM‑RS ports allow, Chapter 35), high rank from rich crowd scatter. Factory: 50 AGVs, URLLC → design for diversity/reliability (multi‑TRP, duplication, low rank). Same massive‑MIMO hardware, opposite optimisation — the venue's traffic, not its size, sets the philosophy.

Section 41.5Slicing the MIMO philosophy

The deepest idea in private‑5G MIMO is that a single venue often runs two opposite MIMO strategies at once, separated by network slice. The eMBB slice — cameras, AR maintenance headsets, bulk data — wants throughput, so it exploits the venue's rich rank and pairs aggressively (high‑order MU‑MIMO, the Chapter 16/35 playbook). The URLLC slice — AGVs, motion control, safety systems — wants determinism, so it does the reverse: low rank, strong coding, multi‑TRP diversity, duplication (the toolkit above). The same array, the same radios, serving both with contradictory optimisations.

This is why slicing (Chapter on 5G QoS) and MIMO design are intertwined in private networks in a way they rarely are in public macro. The scheduler must give the URLLC slice its guaranteed, diversity‑protected resources first, then let the eMBB slice maximise throughput with what remains. Getting this right means thinking of MIMO not as one cell‑wide setting but as a per‑slice policy — reliability‑first for the robots, rate‑first for the cameras, both extracted from one massive‑MIMO deployment. Recognising that one venue needs two MIMO philosophies, cleanly separated, is the hallmark of mature private‑5G design."

Section 41.6Troubleshooting private 5G MIMO

Private‑network issues cluster around reliability and blockage rather than coverage or peak rate.

SymptomLikely causeFix
AGVs drop behind machineryMetal blockage shadow, single pathAdd a TRP for blockage diversity; PDCP duplication; low‑rank robust beams
URLLC reliability misses 99.999%Chasing rank/rate over robustnessLow‑SE CQI table, duplication, multi‑TRP, mini‑slots
URLLC latency too highUser plane not local (PNI‑NPN routing)On‑prem core (SNPN) / local UPF; mini‑slot scheduling
eMBB capacity lower than the rich channel suggestsMU pairing not exploitedEnable high‑order MU‑MIMO on the eMBB slice (Ch 35)
URLLC and eMBB interfering for resourcesNo per‑slice MIMO policyPrioritise URLLC slice resources; slice the MIMO config

The reframing that solves most private‑5G tickets: stop optimising the cell as one thing. Design reliability‑first for the URLLC slice and rate‑first for the eMBB slice, exploit the venue's free gifts (stable channels, rich rank), and spend them on the one hard requirement — deterministic reliability against blockage. Public‑macro instincts (coverage, peak rate) will mislead you here.

Section 41.73GPP map · KPIs · field note

Concepthome
InH-Factory channelTR 38.901
URLLC, mini-slot, duplicationTS 38.214, TS 38.323
NPN (SNPN/PNI-NPN)TS 23.501

KPIs: reliability (BLER 1e‑5), latency, coverage hole vs blockers, rank in rich scatter, slice isolation. Field note: "AGVs drop behind machinery." Metal blockage shadow — add a second TRP for spatial/blockage diversity, enable PDCP duplication, and use robust low‑rank beams (reliability over peak). The rich indoor rank tempts you toward high‑order MIMO, but URLLC wants diversity; design per slice.

Interview · Takeaways · Summary

"Why is the indoor/factory channel good for MIMO rank?"
Dense reflections off walls and machinery create rich multipath → low spatial correlation → high rank (Chapters 2–3/15). The downside is metal blockage causing deep shadows and tight interference reuse.
"How does URLLC reshape MIMO choices in private 5G?"
It favours diversity and robustness over peak rank: multi‑TRP (blockage diversity), PDCP duplication, robust low‑rank beams, and low‑SE CQI tables (1e‑5 BLER). A dropped AGV packet is worse than a slower one — design reliability‑first for that slice.
"How does private 5G invert the public‑macro design priorities?"
Macro chases coverage/peak‑rate for unknown mobile users; private serves small, known, mostly stationary devices with extreme reliability demands. Fixed devices mean slow‑ageing CSI (cheap precoding), so the easy parts (stable channels, rich rank) fund the hard part (deterministic reliability).
"SNPN vs PNI‑NPN — what's the difference and why care?"
SNPN is standalone with its own on‑prem core (total control, local user plane); PNI‑NPN rides a public network, often as a slice. For URLLC's ~1 ms budget the on‑prem SNPN core keeps the user plane local, which is often necessary to hit the latency.
"Why might one venue need two MIMO philosophies?"
Slices differ: the eMBB slice (cameras/AR) wants throughput → high‑order MU‑MIMO exploiting rich rank; the URLLC slice (AGVs/control) wants determinism → low rank, duplication, multi‑TRP diversity. Same array, opposite optimisation, separated by slice.
"AGVs drop behind machinery — first fix?"
Metal blockage diversity, not power. Add a second TRP so one blocker can't shadow both paths, enable PDCP duplication, and use robust low‑rank beams. It's the Chapter 32 blockage playbook applied with URLLC reliability in mind.
  • Indoor venues: rich reflections → high rank (gift) + metal blockage → shadows (curse).
  • Private 5G inverts priorities: reliability‑first, fixed devices (cheap fresh CSI), known users.
  • Reliability toolkit: low‑rank+strong coding, PDCP duplication, multi‑TRP, mini‑slots, low‑SE CQI.
  • Choose SNPN vs PNI‑NPN and band (CBRS/n77/local); on‑prem core for URLLC latency.
  • Slice the MIMO philosophy — eMBB rank vs URLLC diversity from one deployment.

Private 5G is the near future. The far future rewrites MIMO itself. Chapter 42 — 6G Evolution of MIMO covers cell‑free massive MIMO, RIS, near‑field/ELAA, THz, and the AI‑native air interface.

— end of Chapter 41 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Twelve — Advanced and Future Topics
CHAPTER FORTY-TWO

6G Evolution
of MIMO

"6G doesn't just add antennas. It dissolves the cell, controls the reflections, and bends the wavefront."

5G massive MIMO pushed antennas to the array. 6G pushes the idea further in directions that change the fundamentals: arrays so large the wavefront curves (near‑field/ELAA); antennas spread across the whole area with no cell boundaries (cell‑free massive MIMO); the environment itself made controllable (RIS); new spectrum (sub‑THz); and intelligence baked into the air interface (AI‑native). This forward‑looking chapter sketches each and how it extends the book's themes.

ObjectivesWhat you'll walk away knowing

  • Explain cell‑free massive MIMO (distributed APs, user‑centric clusters, no cell edges) and its fronthaul challenge.
  • Explain RIS (controllable reflecting surfaces) — how it works and what's hard about it.
  • Explain near‑field/ELAA beam focusing (Rayleigh distance, spherical wavefronts, distance multiplexing).
  • Sketch new spectrum (FR3, sub‑THz), ISAC, and the AI‑native air interface, with the 6G timeline.
  • Map each 6G idea back to the book's themes — what's evolution vs genuine new physics.
  • Separate the near‑term practical lever (FR3 + large arrays + RIC) from the research frontier.

Section 42.1Dissolving the cell, controlling the environment

Two big shifts. Cell‑free massive MIMO: instead of one big array per cell, spread many distributed access points across the area, all serving each user jointly — no cell boundaries, no edge (the edge problem of Chapter 37 simply vanishes because every user is "central"). RIS (Reconfigurable Intelligent Surface): a passive panel of tunable elements that reflects signals in a controllable direction — turning a wall into a programmable mirror that creates a beam path where none existed (directly addressing FR2 blockage, Chapter 32). Plus near‑field/ELAA: arrays so large the wavefront is spherical at usable range, enabling beam focusing on a point (not just a direction).

CELL-FREE massive MIMO distributed APs jointly serve each user · no cell edge RIS-assisted beam RIS (tunable wall) RIS steers a reflected path around a blocker
Figure 42.1 · Cell-free (distributed APs, no edge) and RIS (a programmable reflecting wall)
How to read this picture Left, cell‑free massive MIMO: antennas are spread across the area as many distributed access points, and several of them serve each user jointly. There's no cell boundary, so there's no cell edge — the worst‑case user of Chapter 37 disappears because everyone is surrounded by serving antennas. Right, RIS: a passive wall of tunable elements acts as a programmable mirror, steering a reflected beam around a blocker to reach a UE the direct path can't — engineering the environment itself (the answer to FR2 blockage, Chapter 32). Together with near‑field focusing (beaming to a point, not a direction), these are how 6G rethinks MIMO rather than just enlarging it.
Huge arrays push the user into the near field far field — flat wavefronts beam steers angle only near field — curved wavefronts beam focuses at a point (range + angle)
Figure 42.3 · Near-field beam focusing with extremely large arrays
How to read this picture Antennas this book has treated as producing plane waves assume the user is in the far field. But 6G's extremely large arrays have apertures so big that, at the cell's working distances, wavefronts are noticeably curved — the user is in the near field. That changes the game: instead of steering only an angle, the array can focus energy at a specific point in space (range and angle), like a lens. Near-field 'beam focusing' enables spot-serving users who share the same direction but differ in distance — a genuinely new spatial dimension beyond anything in 5G.
Cell-free: many distributed APs jointly serve each user CELLULAR — one gNB, cell edges edge user suffers CELL-FREE — many APs, no edge every user is surrounded by serving APs
Figure 42.4 · Cell-free massive MIMO removes the cell edge
How to read this picture Today's cellular network has hard edges where the serving cell fades and the neighbour interferes (left). Cell-free massive MIMO (a leading 6G idea) scatters many simple access points across the area and has them jointly serve each user — so every user is surrounded by transmitters and there is no edge to fall off (right). The user-felt experience becomes uniform instead of peaking at cell centres. The cost is enormous fronthaul and coordination to phase-align all those APs, which is the open research problem.
RIS: a smart reflector bends a beam around an obstacle gNB RIS panel blockage UE RIS elements re-phase the wave to steer a controlled reflection toward the UE
Figure 42.2 · A reconfigurable intelligent surface (RIS) reflects around blockage
How to read this picture A reconfigurable intelligent surface is a panel of cheap, passive elements whose phase shifts can be tuned, turning a wall into a steerable mirror. When the direct path to the UE is blocked, the gNB illuminates the RIS, and the surface re-phases the wave to bounce a focused beam around the obstacle to the user. It adds coverage and a controllable extra path without a powered relay. RIS, cell-free MIMO, near-field focusing and sub-THz are the four pillars of how 6G stretches the MIMO ideas in this book.
▸ Advanced · 6G deep-dive — the building blocks & timeline
cell-free mMIMO distributed APs + central processing; user-centric clusters; no handover RIS passive tunable reflectors; near-zero power; controllable phase per element near-field / ELAA Rayleigh distance large → spherical wavefront → beam FOCUSING (range+angle) spectrum FR3 (7–24 GHz, "upper mid-band") near-term; sub-THz (>100 GHz) for 6G capacity ISAC Integrated Sensing & Communication: the beam senses (radar) and communicates AI-native ML built into the air interface (Ch.40), not bolted on timeline Rel-19 study, Rel-20 first 6G study items, Rel-21 (~2028) first normative; ~2030 commercial

Each extends a book theme: cell-free generalizes CoMP/MU-MIMO to its limit; RIS generalizes beam diversity/backup paths; near-field generalizes the steering vector to spherical wavefronts; sub-THz pushes the FR2 beamforming-mandatory regime even harder; AI-native operationalizes Chapter 40. 6G is less "new physics" than "the book's ideas taken to extremes — plus a controllable environment."

Worked — why near-field is new A 1 m aperture at 100 GHz has a Rayleigh distance of ~670 m → users within it see a spherical wavefront, so the array can focus energy at a specific range and angle (a spot), not just a direction. That enables spatial multiplexing of users at the same angle but different distance — impossible with far-field plane-wave beamforming. The steering vector of Ch.12 gains a distance dimension.

Section 42.2Cell-free massive MIMO in depth

The boldest structural change 6G proposes is to abolish the cell. In today's network a user belongs to one cell and suffers at its edge (Chapter 37). Cell‑free massive MIMO scatters many simple distributed access points across the area and has a pool of them serve each user jointly, coordinated by central processing. There is no cell boundary, so there is no edge — every user is "central" because they're always surrounded by serving APs. The worst‑case user that drove so much of Part 11's optimisation simply ceases to exist.

The mechanism is user‑centric clustering: rather than fixed cells, each user gets a dynamic cluster of the nearest/best APs that follows them as they move — so even mobility changes character, with the serving set evolving smoothly instead of hard handovers. It's CoMP joint transmission (Chapter 37) and MU‑MIMO (Chapter 16) taken to their logical extreme: every transmission is coordinated, every user is jointly served. The catch — and the reason it's still research — is the fronthaul and coordination cost: phase‑aligning dozens of distributed APs in real time and moving all that channel data to a central processor is enormous. Making cell‑free scalable (cluster sizes that don't explode, distributed rather than fully‑central processing) is the open problem standards bodies are circling.

Section 42.3RIS — engineering the environment itself

Every technique in this book so far controls the transmitter. RIS controls the channel. A Reconfigurable Intelligent Surface is a panel of many cheap, passive elements whose phase shifts can be tuned electronically — turning an ordinary wall into a programmable mirror. When the direct path to a user is blocked, the gNB illuminates the RIS, and the surface re‑phases the incident wave to bounce a focused beam around the obstacle to the user. It manufactures the alternative path that FR2 blockage (Chapter 32) so badly needs — and because the elements are passive, it does so at near‑zero power and cost compared with a powered relay.

The promise is huge: coverage into shadows, an extra controllable path, even shaping the propagation environment to create rank where there was none. But RIS has hard, unsolved problems. Channel estimation is the worst: the link is now gNB→RIS→UE, a cascade of two channels, and estimating both (when the RIS itself is passive and can't measure) is far harder than a normal channel. Control requires fast signalling to retune potentially thousands of elements as users move. And the path loss of a double‑bounce (gNB→RIS→UE) is severe, so RIS works best for relatively short, geometry‑favourable hops. RIS is the most exciting and the least mature of the 6G pillars — a genuinely new degree of freedom (the environment) whose engineering is still being invented.

Section 42.4Near-field and extremely large arrays

This book's entire treatment of beamforming assumed plane waves — the user is far enough that the wavefront arriving at the array is flat, so a beam is defined by an angle only (the steering vector of Chapter 12). That assumption holds when the user is beyond the array's Rayleigh distance, which grows with aperture size and frequency. 6G's extremely large aperture arrays (ELAA) at sub‑THz frequencies have Rayleigh distances of hundreds of metres — so ordinary users fall inside the near field, where the wavefront is measurably curved (spherical).

That curvature is not a nuisance; it's a new capability. A near‑field array can focus energy at a specific point — a particular range and angle — like an optical lens, rather than merely steering a direction. The consequence is a genuinely new spatial dimension: you can spatially multiplex two users at the same angle but different distances, which far‑field plane‑wave beamforming fundamentally cannot do (they'd share the same beam). The steering vector gains a distance term, MU‑MIMO gains a range axis, and beam "pointing" becomes beam "focusing." Of all the 6G ideas, near‑field is the one that most changes the underlying math of this book rather than just its scale — it's closest to genuine new physics.

Section 42.5Spectrum, sensing, and an AI-native interface

Three more shifts round out the 6G MIMO picture. Spectrum: the near‑term workhorse is FR3 (the "upper mid‑band", roughly 7–24 GHz) — more bandwidth than FR1 with far better propagation than FR2, paired with very large arrays; further out, sub‑THz (>100 GHz) offers vast bandwidth for short‑range capacity, pushing the "beamforming‑mandatory" regime of FR2 even harder (beams narrower still, blockage worse still). ISAC (Integrated Sensing and Communication): the same beam that carries data also acts as radar, sensing the environment — which loops straight back to proactive blockage avoidance (Chapter 32) and positioning, the beam becoming a sensor.

And AI‑native: where 5G bolted ML onto a fixed air interface (Chapter 40), 6G aims to design the air interface around learning from the start — learned waveforms, learned beam management, learned CSI, with the model lifecycle a first‑class part of the system rather than an add‑on. On timeline: 3GPP Rel‑19 is studying enablers, Rel‑20 carries the first 6G study items, Rel‑21 (~2028) targets first normative specs, with commercial 6G around 2030, aligned to ITU's IMT‑2030 vision. So the frontier ideas here aren't science fiction — they're on a concrete standards roadmap, just a few releases out.

▸ Advanced · 6G deep-dive — cell-free scalability & ISAC
cell-free user-centric cluster of M nearest APs (not all) -> bounded complexity processing fully-central (best, huge FH) vs distributed/local (scalable, near-optimal) RIS channel cascaded gNB->RIS->UE (two channels, passive RIS can't measure) = hard estimation near-field Rayleigh d = 2 D^2 / lambda (D = aperture) -> hundreds of m at sub-THz ISAC shared waveform/spectrum for comms + sensing; mono-/bi-static timeline Rel-19 enablers - Rel-20 6G SI - Rel-21 (~2028) normative - ~2030 commercial

Scalability is cell‑free's crux: serving every user from every AP doesn't scale, so user‑centric clusters of the M best APs bound the complexity, and distributed/local processing avoids the all‑to‑central fronthaul. ISAC reuses the beam for radar‑like sensing — the same array, doing double duty. The Rayleigh‑distance formula shows why only huge apertures at sub‑THz enter the near‑field regime.

Worked — evolution vs revolution Cell‑free = CoMP (Ch 37) to the limit (evolution). RIS = beam diversity/backup paths (Ch 32) made controllable (evolution+). Sub‑THz = FR2 beamforming‑mandatory (Ch 13) pushed harder (evolution). Near‑field focusing = the steering vector (Ch 12) gains a distance dimension — genuinely new math (revolution). Most of 6G is this book's ideas at extremes; near‑field is the one true new degree of freedom.

Section 42.6How 6G extends this book's themes

It's worth stepping back to see that 6G is, for the most part, this book taken to its limits rather than a fresh start — which is reassuring, because it means everything you've learned remains the foundation. Cell‑free is CoMP joint transmission (Chapter 37) and MU‑MIMO (Chapter 16) generalised until the cell dissolves. RIS is beam diversity and backup paths (Chapter 32) generalised until the environment becomes a controllable part of the system. Sub‑THz is the FR2 story (Chapters 13, 32) — beamforming mandatory, blockage severe — pushed to an even greater extreme. AI‑native is Chapter 40 promoted from add‑on to architecture.

Only near‑field focusing genuinely changes the underlying mathematics, adding a distance dimension to the steering vector that simply didn't exist in the plane‑wave world. So the right way to read 6G is not as a wall between "5G knowledge" and "6G knowledge", but as a continuation: the array gain, the eigen‑channels, the codebooks, the beam management, the KPIs — all carry forward, scaled up and, in the near‑field case, extended. An engineer who has internalised this book is already most of the way to 6G; what remains is to layer on a controllable environment, a dissolved cell, and a distance‑aware wavefront. That continuity is the note to end the technical material on.

Section 42.7map · KPIs · field note

Concepthome
6G study items, ISAC, AI-native3GPP Rel-19/20/21; ITU IMT-2030
RIS / cell-free (research → standards)academic + 3GPP study
FR3 upper mid-band3GPP/regulatory (near-term)

Field note (forward‑looking): Near‑term, the practical 6G‑adjacent lever is FR3 (7–24 GHz) — more bandwidth than FR1 with better propagation than FR2, paired with very large arrays (hundreds of elements) and the AI/RIC tooling of Chapters 39–40. Cell‑free, RIS, sub‑THz and near‑field are the research frontier feeding Rel‑20/21; expect first 6G specs ~2028 and commercial ~2030.

Interview · Takeaways · Summary

"What is cell-free massive MIMO?"
Many distributed access points (not one array per cell) jointly serving each user in user‑centric clusters — no cell boundaries, hence no cell edge. It's CoMP/MU‑MIMO taken to its limit, eliminating the edge problem.
"What does RIS add, and near-field focusing?"
RIS is a passive, tunable reflecting surface — a programmable mirror that steers a reflected path around blockers (engineering the environment). Near‑field/ELAA arrays are large enough that the wavefront is spherical at range, enabling beam focusing on a point (range + angle), multiplexing users at the same angle but different distance.
"What's the hard part of cell‑free and of RIS?"
Cell‑free: fronthaul and coordination — phase‑aligning many distributed APs and moving their channel data centrally; scalability needs user‑centric clusters and distributed processing. RIS: channel estimation of the cascaded gNB→RIS→UE link (passive RIS can't measure), fast control of thousands of elements, and severe double‑bounce path loss.
"Which 6G idea is genuinely new physics vs evolution?"
Mostly evolution: cell‑free = CoMP to the limit, RIS = controllable beam diversity, sub‑THz = harder FR2, AI‑native = Ch 40 as architecture. The one true new degree of freedom is near‑field focusing — the steering vector gains a distance dimension, enabling multiplexing at the same angle/different range.
"What is ISAC and how does it relate to MIMO?"
Integrated Sensing and Communication: the same beam/waveform that carries data also senses the environment like radar. For MIMO it feeds proactive blockage avoidance (Ch 32) and positioning — the array doing double duty as a sensor.
"What's the near‑term, practical 6G‑adjacent lever?"
FR3 (upper mid‑band, ~7–24 GHz): more bandwidth than FR1, better propagation than FR2, paired with very large arrays and the AI/RIC tooling of Ch 39–40. Cell‑free/RIS/sub‑THz/near‑field are the research frontier feeding Rel‑20/21 (~2028 specs, ~2030 commercial).
  • Cell‑free (distributed, no edge), RIS (controllable reflections), near‑field/ELAA (beam focusing).
  • Sub‑THz spectrum, ISAC (sense + communicate), AI‑native air interface.
  • 6G ≈ the book's ideas to extremes + a controllable environment; only near‑field adds genuinely new math (a distance dimension).
  • The hard parts: cell‑free fronthaul/scalability, RIS cascaded‑channel estimation.
  • Specs ~2028, commercial ~2030; near‑term practical lever is FR3 + large arrays + RIC.

That's the frontier. To make any of this — 5G or 6G — concrete, you must be able to simulate it. Chapter 43 — Practical Lab Simulations pulls together every mini‑lab in the book into a hands‑on toolkit.

— end of Chapter 42 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Twelve — Advanced and Future Topics
CHAPTER FORTY-THREE

Practical Lab
Simulations

"You don't truly understand a beam until you've plotted one that's wrong."

Every chapter ended with a mini‑lab for a reason: MIMO concepts click when you compute them. This chapter assembles those labs into one coherent toolkit — what to simulate, in what order, with which tools — so you can build intuition (and verify deployments) hands‑on. From a random channel matrix to SVD beamforming, ZF/MMSE receivers, array‑factor plots, and codebook‑PMI loss, it's the whole book as runnable code.

ObjectivesWhat you'll walk away knowing

  • Know the simulation toolchain (Python/NumPy, MATLAB 5G Toolbox, Sionna) and when to use each.
  • Have a build order: channel → SVD/capacity → receivers → array factor → codebook → system, and what each stage teaches.
  • Distinguish link‑level vs system‑level and know what to measure (CDFs/percentiles, not means).
  • Get channel models right — CDL/TDL profiles, delay spread, Doppler, angles (garbage in, garbage out).
  • Run the one essential experiment that proves the book's core in ~30 lines.
  • Use simulation to turn arguments into numbers and verify before you deploy.

Section 43.1The simulation workflow

Build bottom‑up, each stage proving a chapter. (1) Channel — generate H (i.i.d. Rayleigh for rich, near‑LOS for poor; or a TR 38.901 CDL model) [Ch.2]. (2) SVD & capacity — decompose H, plot capacity vs antennas, see rank and condition number [Ch.3]. (3) Receivers — ZF vs MMSE BER on rich vs ill‑conditioned channels [Ch.3]. (4) Array factor — plot beam patterns, beamwidth, side lobes, grating lobes, nulls [Ch.5]. (5) Codebook — DFT/Type I PMI selection and its loss vs the ideal eigen‑beam [Ch.7,14,20]. (6) System — MU‑MIMO pairing, link adaptation, beam management traces.

build bottom-up — each stage proves a chapter channel HCh.2 SVD/capCh.3 ZF/MMSECh.3 array factorCh.5 codebookCh.14,20 systemMU/BM Python/NumPy to learn · MATLAB 5G Toolbox / Sionna for standard-accurate sims
Figure 43.1 · The lab build order — from a channel matrix up to a system simulation
How to read this picture Left to right is the order to build (and the chapter each stage proves). Start by generating a channel H (Ch.2), decompose it with the SVD and plot capacity/rank/condition number (Ch.3), build ZF/MMSE receivers and compare BER on rich vs ill‑conditioned channels (Ch.3), plot the array factor to see beams/side‑lobes/grating‑lobes/nulls (Ch.5), select a codebook PMI and measure its loss vs the ideal eigen‑beam (Ch.14/20), and finally a system sim with MU‑MIMO pairing and beam management. Use plain Python/NumPy to learn the mechanisms; use MATLAB's 5G Toolbox or NVIDIA Sionna when you need standard‑accurate channels and waveforms.
What to actually measure in a MIMO simulation scaleprimary metrictells you linkBLER vs SNRdoes the receiver decode? linkthroughput vs SNRlink adaptation quality systemcell & cell-edge SEnetwork capacity & fairness systemrank / MU CDFis multiplexing happening?
Figure 43.3 · What to measure, at which scale
How to read this picture A simulation is only useful if you measure the right thing at the right scale. At link level the headline metrics are BLER-versus-SNR (does the MIMO receiver decode?) and throughput-versus-SNR (is link adaptation choosing the right MCS?). At system level you track cell and cell-edge spectral efficiency (capacity and fairness) and the rank/MU distributions (is multiplexing actually happening?). Reporting a single average number hides the story — the CDFs and the edge percentiles are where MIMO designs prove or embarrass themselves, so plot those.
Two simulation scales answer different questions LINK-LEVEL — one link BLER vs SNR, MIMO detector,channel estimation — CDL/TDL SYSTEM-LEVEL — many cells scheduling, interference, cell SE, fairness
Figure 43.4 · Link-level vs system-level simulation
How to read this picture MIMO is validated at two scales, and confusing them wastes effort. Link-level simulates a single radio link in detail — the MIMO detector, channel estimation, BLER-versus-SNR curves — over a statistical channel model like CDL or TDL; it answers "does this receiver work?". System-level drops many cells and users on a map and models scheduling, inter-cell interference, mobility and cell spectral efficiency; it answers "does the network work?". You design a detector at link level, then judge its network impact at system level — never the other way round.
CDL model: a few clusters of rays with angles & delays gNB cluster 1 (AoD, delay, power) cluster 2 cluster 3 CDL-A/B/C = NLOS, CDL-D/E = LOS — TR 38.901
Figure 43.2 · What a CDL channel model actually is
How to read this picture A Clustered Delay Line model from TR 38.901 represents the channel as a small number of clusters, each a bunch of rays sharing an angle of departure/arrival, a delay and a power. That angular structure is exactly what a MIMO array exploits, which is why CDL — not a flat fading model — is the right tool for evaluating beamforming and spatial multiplexing. The profiles matter: CDL-A/B/C are non-line-of-sight (rich rank), CDL-D/E are line-of-sight (rank-poor) — pick the one matching the deployment you're testing, or your sim flatters the wrong thing.
▸ Advanced · the simulation toolkit
learn (from scratch) Python + NumPy/Matplotlib # H, SVD, ZF/MMSE, AF, codebook — 20-line labs standard-accurate MATLAB 5G Toolbox · NVIDIA Sionna (TF) · py3GPP # CDL channels, NR waveforms, link-level channel models TR 38.901 CDL-A..E (NLOS/LOS), TDL; set delay spread, Doppler, angles key experiments capacity = log2 det(I + (SNR/Nt) H Hᴴ) [Ch.3] svd(H) → singular values → rank, κ [Ch.3,34] ZF = pinv(H); MMSE = Hᴴ(HHᴴ+(1/ρ)I)⁻¹ [Ch.3,12] AF(θ)=wᴴa(θ); sweep d, taper, null [Ch.5,12] codebook PMI loss vs V [Ch.14,20]

For intuition, hand-code the 20-line labs (you'll feel rank collapse, noise enhancement, grating lobes). For deployment-grade results, use standard channels (CDL) and link-level chains (Sionna/5G Toolbox) — they implement the actual NR numerology, coding, and reference signals from Parts 4–7. The two are complementary: learn the mechanism small, validate the system large.

Worked — the one experiment to run Generate rich vs LOS 4×4 H; print singular values and κ; compute capacity and ZF-vs-MMSE BER for each. In ~30 lines you reproduce: multiplexing gain (Ch.1), rank collapse (Ch.2/34), the condition-number story (Ch.3), and noise enhancement (Ch.3/12). If you do only one lab from this book, do this one.

Section 43.2The build order, stage by stage

The reason to build bottom‑up is that each stage makes a concept you read about tangible, and the stages depend on one another. (1) Channel H — generate it two ways, i.i.d. Rayleigh for rich scattering and a near‑LOS matrix for poor, and you immediately have the two worlds the whole book contrasts. (2) SVD & capacity — decompose H and you literally see the singular values: nearly equal for the rich channel (high rank), one dominant for LOS (rank collapse), and the condition number κ jumps out as their ratio. Plot capacity vs antennas and the multiplexing slope of Chapter 1 appears on screen.

(3) ZF/MMSE receivers — run both on each channel and watch ZF's noise enhancement blow up on the ill‑conditioned LOS channel while MMSE degrades gracefully — the Chapter 3/12 lesson you can now feel. (4) Array factor — sweep the element phases and plot the pattern; vary spacing past λ/2 and a grating lobe springs up; add a taper and the side‑lobes drop. (5) Codebook — pick the best DFT/Type I PMI and measure how far its beam falls short of the ideal eigen‑beam V — the quantisation loss of Chapters 14/20 as a number. (6) System — finally, many cells/users with scheduling, MU pairing and beam management to see the network‑level behaviour. Each stage is ~20 lines and proves a specific chapter, which is why building in this order turns reading into understanding.

Section 43.3Two scales — and what to actually measure

A recurring beginner mistake is confusing the two simulation scales, which answer different questions. Link‑level simulates a single radio link in full detail — the MIMO detector, channel estimation, coding, BLER‑vs‑SNR curves — over a statistical channel (CDL/TDL). It answers "does this receiver/algorithm work?". System‑level drops many cells and users on a map and models scheduling, inter‑cell interference, mobility and cell spectral efficiency. It answers "does the network work?". You design and validate an algorithm at link level, then judge its network impact at system level — never the reverse, and never expect one to answer the other's question.

Equally important is what you measure. At link level: BLER‑vs‑SNR (does it decode?) and throughput‑vs‑SNR (is link adaptation choosing the right MCS?). At system level: cell and cell‑edge (5th‑percentile) spectral efficiency, and the rank/MU distributions (is multiplexing actually happening?). The cardinal rule, echoing Chapter 33: report CDFs and percentiles, not averages. A single mean number hides exactly where MIMO designs succeed or fail — the tails. A design that looks great on average can be quietly starving its edge users, and only the CDF reveals it.

Section 43.4Channel models — garbage in, garbage out

A MIMO simulation is only as trustworthy as its channel model, and this is where results most often mislead. A flat, frequency‑non‑selective fading model has no angular structure — so it can't meaningfully evaluate beamforming or spatial multiplexing, the very things MIMO is about. The right tool is the CDL (Clustered Delay Line) model from TR 38.901, which represents the channel as a small number of clusters, each a bundle of rays sharing an angle of departure/arrival, a delay and a power. That angular structure is exactly what an array exploits, so CDL is what makes a beamforming sim meaningful.

The profile matters as much as the model: CDL‑A/B/C are non‑line‑of‑sight (rich, high‑rank), CDL‑D/E are line‑of‑sight (rank‑poor) — choose the one matching the deployment you're testing, or your sim flatters the wrong scenario and you draw the wrong conclusion. You must also set the delay spread (frequency selectivity), Doppler (mobility, Chapter 31) and angular spread realistically for your environment. Getting these wrong is the classic "garbage in, garbage out": a beautifully coded simulation over an unrealistic channel produces confident, wrong numbers. Spend as much care on the channel as on the algorithm.

Section 43.5Tools — learn small, validate large

There are two tiers of tooling and they serve different purposes. For learning, plain Python + NumPy/Matplotlib is ideal: the core experiments — generate H, SVD, ZF/MMSE, array factor, codebook loss — are each about 20 lines, and coding them yourself is what builds the intuition (you genuinely feel rank collapse and noise enhancement when you watch your own numbers misbehave). Nothing in the conceptual core of this book needs more than that.

For deployment‑grade results you need standard‑accurate channels and waveforms, and that's where MATLAB's 5G Toolbox or NVIDIA Sionna (TensorFlow‑based, GPU‑accelerated, good for AI/ML work in Chapter 40) come in — they implement the actual NR numerology, LDPC/Polar coding, reference signals and CDL channels from Parts 4–7, so their BLER and throughput numbers can be trusted for design decisions. The two tiers are complementary, not competing: learn the mechanism small in NumPy, then validate the system large in a standard‑accurate tool. Reaching for the heavy tool first (before you understand the mechanism) is a common way to get accurate numbers you can't interpret."

Section 43.6From simulation to decision

The ultimate point of all this is to turn arguments into numbers. So much of network engineering is settled by assertion — "Type II will help here", "rank is stuck because of the channel", "this config change is safe". Simulation replaces the assertion with evidence, often in an afternoon. "Will Type II help our MU‑MIMO?" → simulate Type I vs Type II PMI loss and the resulting MU inter‑user SINR on representative channels. "Why is rank stuck?" → reproduce the channel's singular values and see whether κ forbids higher rank (Chapter 34). "Is this beam config safe?" → plot its pattern and check the side‑lobes and nulls before it touches a live cell.

This is also the disciplined way to verify before you deploy. A config change that looks reasonable on a slide can be checked against a simulation first, catching the obvious failure before it reaches users. And crucially, the lightweight 20‑line labs are enough for most of these decisions — you don't need a full system simulator to settle "does cross‑pol give rank 2 here?" or "how much does this taper cost in gain?". The habit worth building from this chapter is reflexive: when you find yourself arguing about a MIMO behaviour, stop arguing and simulate it. The numbers end the debate, and you understand the system better for having reproduced it."

▸ Advanced · system-level methodology
link-level one link, full PHY (detector, channel est, LDPC), CDL/TDL -> BLER/throughput vs SNR system-level many cells/UEs, scheduling + interference + mobility -> cell & 5%-ile SE L2S abstraction link-to-system mapping (EESM/MIESM) feeds link BLER curves into SLS Monte-Carlo many drops/seeds -> CDFs (report percentiles, not means) calibration align SLS against 3GPP calibration cases before trusting results tools NumPy (learn) · MATLAB 5G Toolbox / Sionna (link) · custom/SLS (system)

Real system‑level sims don't re‑run full PHY per user — they use a link‑to‑system (L2S) abstraction (EESM/MIESM) that maps SINR to a BLER from pre‑computed link curves, so thousands of users are tractable. Run many Monte‑Carlo drops and report CDFs. Before trusting an SLS, calibrate it against 3GPP's published calibration cases — an uncalibrated system simulator produces confident nonsense.

Worked — settle an argument "Type II isn't worth the feedback overhead." Simulate: rich CDL‑C, 4 paired users, Type I vs Type II PMI → measure residual inter‑user interference and sum throughput. If Type II lifts MU sum‑rate by, say, 30% for its extra bits, the argument is over — with a number, not an opinion. That's the whole value of the lab.

Section 43.7map · field note

Needtool
Learn mechanismsPython + NumPy (the book's mini-labs)
Standard-accurate link-levelMATLAB 5G Toolbox, Sionna
Channel modelsTR 38.901 CDL/TDL

Field note: Before trusting a vendor claim or a config change, simulate it. "Will Type II help our MU‑MIMO here?" → simulate Type I vs Type II PMI loss on representative channels and the MU SINR. "Why is rank stuck?" → reproduce the channel's singular values. Simulation turns arguments into numbers — and the 20‑line labs are enough for most intuition.

Interview · Takeaways · Summary

"How would you build MIMO intuition from scratch?"
Bottom‑up in Python: generate H (rich vs LOS), SVD → singular values/rank/κ, capacity vs antennas, ZF vs MMSE BER, then array‑factor plots (beamwidth, side/grating lobes, nulls), then codebook PMI loss. Each ~20 lines; together they prove Chapters 1–20.
"Python vs MATLAB/Sionna?"
Python/NumPy for learning the mechanisms cheaply; MATLAB 5G Toolbox or Sionna for standard‑accurate, link‑level results (real CDL channels, NR waveforms/coding/reference signals). Learn small, validate large.
"Link‑level vs system‑level — which answers what?"
Link‑level: one link in full PHY detail over a CDL/TDL channel → "does this receiver/algorithm work?" (BLER/throughput vs SNR). System‑level: many cells/users with scheduling + interference → "does the network work?" (cell & 5%‑ile SE). Design at link level, judge impact at system level — never the reverse.
"Why does the channel model matter so much?"
Garbage in, garbage out. A flat fading model has no angular structure, so it can't evaluate beamforming/multiplexing at all. Use CDL (TR 38.901) with the right profile (A/B/C NLOS, D/E LOS) and realistic delay spread/Doppler/angles, or you get confident but wrong numbers.
"How does a system simulator stay tractable for thousands of users?"
A link‑to‑system (L2S) abstraction (EESM/MIESM) maps SINR to BLER from pre‑computed link curves instead of re‑running full PHY per user. Run many Monte‑Carlo drops, report CDFs, and calibrate the SLS against 3GPP calibration cases before trusting it.
"How do you use simulation in practice?"
To turn arguments into numbers and verify before deploying: "Will Type II help?" → simulate PMI loss + MU SINR; "Why is rank stuck?" → reproduce the singular values/κ; "Is this beam config safe?" → plot the pattern first. The 20‑line labs settle most debates without a full simulator.
  • Build bottom‑up: channel → SVD/capacity → ZF/MMSE → array factor → codebook → system; each stage proves a chapter.
  • Distinguish link‑level (one link, "does it work?") from system‑level (many cells, "does the network work?"); report CDFs, not means.
  • Get the channel model right (CDL profile, delay spread, Doppler) — garbage in, garbage out.
  • Python for intuition; MATLAB 5G Toolbox / Sionna for standard‑accurate sims; TR 38.901 CDL channels.
  • The one lab to run: rich‑vs‑LOS H → singular values, κ, capacity, ZF‑vs‑MMSE BER. Use sims to settle arguments with numbers.

With the labs in hand, you can verify anything in this book. Two chapters remain to make you job‑ready: the interview/certification prep, and the final engineering playbook. Chapter 44 — Interview and Certification Preparation is next.

— end of Chapter 43 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Twelve — Advanced and Future Topics
CHAPTER FORTY-FOUR

Interview and
Certification Preparation

"Interviewers don't want definitions — they want to watch you reason from symptom to cause to fix."

This chapter turns the whole book into job‑readiness. 5G MIMO interviews and certifications test three things: do you know the mechanisms (what/why), can you troubleshoot (symptom→cause→fix), and can you reason at the system level (trade‑offs). Below is a curated bank of advanced questions with model answers, grouped by theme, plus scenario walk‑throughs and a rapid‑fire fact sheet. Every answer traces back to a chapter, so use it as a final review map.

How to use thisReason, don't recite

For each question, practise saying the answer aloud in 30–60 seconds, leading with the one‑line essence then the mechanism. The strongest candidates always close the loop to a KPI or a fix.

5G MIMO foundationsNR PHYbeamformingCSI beam mgmtuplink/SRStroubleshootadvanced/6G
Figure 44.1 · The eight interview themes — each maps to a Part of this book
How to read this picture Eight clusters interviewers probe, each tied to a Part of the book: foundations (P1), NR PHY (P4), beamforming (P5), CSI (P7), beam management (P8), uplink/SRS (P9), troubleshooting (P11), advanced/6G (P12). Prepare one crisp "essence + mechanism + KPI/fix" answer per cluster and you've covered the field. The questions below are organised the same way.
The mental map an interviewer wants you to have channel H diversityreliability multiplexingrank / layers beamformingarray gain CSI feedbackPMI/RI/CQI beam mgmtP1/P2/P3 everything hangs off the channel matrix — be able to draw this from memory
Figure 44.3 · The one diagram to be able to draw in any interview
How to read this picture Strong candidates can sketch this from memory. Everything in MIMO hangs off the channel matrix H: its structure decides whether you spend the antennas on diversity (reliability), multiplexing (parallel layers, set by rank), or beamforming (array gain) — and how those choices are fed back as CSI (PMI/RI/CQI) and maintained by beam management (P1/P2/P3). If you can draw this map and explain each branch and how they trade against each other, you've shown you understand the subject rather than memorised acronyms.
How to structure a "why is throughput low?" answer layer itPHY→…→RRC name the KPIrank/CQI/BLER root causeSINR? CSI? config? actioncite the spec
Figure 44.2 · A repeatable structure for open-ended system questions
How to read this picture Open-ended questions ("throughput is low, what do you do?") are testing method, not trivia. Use the same four-step structure every time: layer it (which layer — PHY, MAC, … RRC?), name the KPI you'd read (rank, CQI, BLER), reason to the root cause (SINR, CSI quality, or configuration — Chapters 34-36), and propose a concrete action, ideally citing the relevant spec. Walking this path out loud shows the systematic thinking interviewers are actually grading, and it mirrors how the troubleshooting chapters of this book work.

Section 44.1Core question bank (with model answers)

1. Why does 4×4 give ~4× capacity without breaking Shannon?
MIMO opens min(Nt,Nr) parallel eigen‑channels through scattering; each obeys Shannon, total is the sum. We multiplied pipes, not the law. [Ch.1,3]
2. Three MIMO gains and the KPI for each?
Diversity→reliability (BLER); multiplexing→throughput (RI/SE); beamforming→coverage/SINR (RSRP/SINR). One budget min(Nt,Nr). [Ch.1]
3. Is multipath good or bad for MIMO?
Bad for old SISO (fading/ISI), but the fuel for MIMO — independent paths decorrelate antennas → high rank. [Ch.2]
4. Explain the SVD to an RF engineer.
H=UΣVᴴ = rotate→stretch→rotate; turns a tangled channel into parallel SISO eigen‑channels with gains σᵢ. Capacity = Σ log₂(1+σᵢ²P/N). [Ch.3]
5. Rank vs condition number?
Rank = number of non‑zero pipes; κ=σmax/σmin = how balanced. Same rank, high κ → can't separate layers → underperforms. [Ch.3,34]
6. Element vs port vs TXRU vs layer?
Element = physical radiator; port = logical (one DM‑RS/pilot); TXRU = transceiver ("64T"); layer = stream (=rank). 192/64/32/8 can all describe one radio. [Ch.4,11]
7. Why ~0.5λ spacing?
Below it antennas correlate; above ~λ grating lobes (beam clones) appear. Half‑wavelength is the sweet spot. [Ch.5]
8. Why did NR drop CRS?
CRS is always‑on, cell‑wide — overhead explodes with ports and can't be per‑user beamed. NR uses on‑demand SSB/CSI‑RS/DM‑RS/SRS. [Ch.7,10]
9. What is numerology and why flexible?
μ sets SCS=15·2^μ kHz; higher μ → shorter slots → lower latency, better at high band/Doppler. One air interface, many services. [Ch.9]
10. Why can the gNB beamform without telling the UE the precoder?
DM‑RS is precoded with the same beam; the UE estimates H·W and demodulates — no precoder knowledge needed. Killed CRS. [Ch.10,11]
11. 1 vs 2 codewords?
Rank 1–4 → 1 CW; 5–8 → 2 CW, each own MCS/HARQ — matches strong/weak eigen‑layer groups. [Ch.11]
12. MRT vs ZF vs MMSE?
MRT (w∝h) max signal, ignores interference; ZF nulls others (noise‑enhancing); MMSE balances (practical MU choice). [Ch.12]
13. Analog vs digital vs hybrid; what caps MU streams?
Analog 1 chain/1 beam; digital 1 chain/element (full MU); hybrid N_RF≪N. Max simultaneous streams = N_RF. FR1 digital, FR2 hybrid. [Ch.13]
14. Type I vs Type II codebook?
Type I = one DFT beam + co‑phasing (cheap, SU); Type II = combine L beams amp+phase (costly, close to eigen‑beam, MU). [Ch.14,20]
15. Channel hardening & favourable propagation?
N≫K: ‖h‖²/N→const (fading flattens) and hᵢᴴhⱼ/N→0 (users orthogonalise) → simple MRT near‑optimal, cheap MU. [Ch.15]
16. Why is cell capacity an MU‑MIMO story?
A device rarely sustains high rank; SU leaves array freedom idle. Pairing many users ≈ multiplies cell SE. [Ch.16]
17. EIRP vs TRP?
EIRP = directional peak (drives coverage); TRP = total radiated (drives power/heat/exposure). Beamforming raises EIRP without proportional TRP. [Ch.17]
18. The five CSI quantities in order?
CRI→RI→PMI→CQI→LI, each conditioned on the prior; CQI sets MCS. [Ch.18]
19. CMR vs IMR?
Channel‑measurement resource (NZP CSI‑RS) + interference‑measurement resource (CSI‑IM) → CQI reflects true SINR. [Ch.19]
20. P1/P2/P3?
P1 SSB coarse; P2 CSI‑RS rep=off (gNB Tx refine, CRI); P3 rep=on (UE Rx refine). [Ch.21,24]
21. TCI & QCL Type D?
TCI associates a channel with a source RS via QCL; Type D = spatial Rx = the beam. MAC CE activates, DCI selects. [Ch.25]
22. Codebook vs non‑codebook UL?
Codebook: gNB signals TPMI/TRI (FDD‑ok); non‑codebook: UE beams + gNB SRI (TDD reciprocity). UL ≤4 layers. [Ch.26]
23. How does SRS enable DL beamforming?
TDD reciprocity: gNB measures UL channel from SRS → computes DL precoder, no codebook. Needs calibration. [Ch.27,28]
24. What's reciprocal and what isn't?
The air is; the Tx/Rx RF chains aren't (per‑antenna). Calibrate C=T·R⁻¹ or beams mis‑point. [Ch.28]
25. Beam switch vs handover?
Beam switch = intra‑cell L1 TCI update (fast); handover = inter‑cell L3 RRC (slow). [Ch.29]
26. Walk beam failure recovery.
BFD‑RS below threshold ×N → declare failure → candidate beam → BFRQ (CFRA PRACH) → gNB response, in ms; else RLF. [Ch.30]
27. Why is high speed worse at high band?
Doppler∝f_c → shorter coherence time < feedback delay → stale CSI/beam lag. Use HST‑SFN, track‑aligned beams, Doppler pre‑comp. [Ch.31]
28. Why is blockage worse at FR2?
mmWave is near‑optical (no diffraction), sparse multipath → body = 20–35 dB with few alternatives. Defend with backup/reflected beams, multi‑TRP. [Ch.32]
29. RI stuck at 1 with good RSRP — diagnose.
Not coverage. Check SINR (interference), then channel (LOS/κ), hardware (cross‑pol/spacing), config (ports/ri‑Restriction/maxRank), UE capability. [Ch.34]
30. 64T64R won't pair MU — checklist?
Licence? enough active UEs? CSI accurate (Type II/recip)? pairing threshold? DM‑RS port budget? First false = fix. [Ch.35]
31. Good RSRP, bad SINR — interference or misalignment?
Test the dependence: interference is location‑bound (stays bad at a spot, tied to a neighbour); misalignment is motion‑bound (worsens as the user moves, clears right after a beam switch). The post‑switch SINR jump counter confirms it. [Ch.36]
32. How does massive MIMO rescue the cell edge?
Two terms: ~10·log₁₀N dB beam gain lifts the signal (≈+18 dB at 64 elem), and nulls/CoMP cut the neighbour interference. The edge is interference‑limited, so attack both — power alone won't move the ratio. [Ch.37]
33. Why must you beamform PDCCH at the edge?
Control is decoded before data; if PDCCH isn't beamformed/aggregated (AL 8/16), the edge UE camps but never gets a grant, so PDSCH beamforming is wasted. Edge optimisation is control‑first. [Ch.37]
34. What can a radio switch off to save energy, and the constraint?
Time (symbol/slot blanking, deep sleep), frequency (carrier/BWP), spatial (TRX/antenna muting), power (SSB/RS density, Tx power). Constraint = wake‑up latency + lost gain/MU; gate by traffic prediction and a wake‑up SLA so it's invisible. [Ch.38]
35. RIC types and their interfaces?
Near‑RT RIC = xApps over E2 (E2SM‑KPM telemetry, E2SM‑RC control), 10 ms–1 s. Non‑RT RIC = rApps over A1/O1, >1 s, ML training/policy. Train slow up top, infer fast at the edge. [Ch.39]
36. Give a MIMO use case for the RIC.
An MU‑pairing or beam xApp: ingest beam/RI/CQI telemetry via E2SM‑KPM, compute better pairings/beam sets, steer via E2SM‑RC — automating the Ch.35/37 fixes continuously, without replacing the radio vendor. [Ch.39]
37. The AI/ML air‑interface use cases?
Beam prediction (spatial: subset→best; temporal: trajectory→future best), CSI compression (two‑sided autoencoder), positioning (TR 38.843). Judged by top‑k accuracy; needs LCM with a fallback safety net. [Ch.40]
38. Why is two‑sided CSI compression hard to deploy?
The UE encoder and gNB decoder must be trained together and stay compatible across vendors who don't share models (the collaboration‑level problem). One‑sided beam prediction deploys first; two‑sided CSI waits on cross‑vendor model alignment. [Ch.40]
39. Why does private 5G favour diversity over peak rank?
URLLC reliability (≈99.999%) beats peak rate for AGVs/robots — a dropped packet is worse than a slower one. Use multi‑TRP (blockage diversity), PDCP duplication, low‑rank + strong coding, low‑SE CQI. Slice it: eMBB rank, URLLC diversity. [Ch.41]
40. What is cell‑free massive MIMO?
Many distributed APs (not one array/cell) jointly serving each user in user‑centric clusters — no cell boundary, hence no edge. CoMP/MU‑MIMO to the limit; the open problem is fronthaul/coordination scalability. [Ch.42]
41. RIS and near‑field focusing — what's new?
RIS = a passive tunable surface (programmable mirror) steering a reflected path around blockers — engineering the channel. Near‑field/ELAA: arrays so large the wavefront curves, so the beam focuses on a point (range + angle), multiplexing users at the same angle/different distance — genuinely new math. [Ch.42]
42. Link‑level vs system‑level simulation?
Link‑level: one link in full PHY over CDL/TDL → "does the receiver work?" (BLER/throughput vs SNR). System‑level: many cells/users with scheduling+interference → "does the network work?" (cell & 5%‑ile SE). Report CDFs, not means. [Ch.43]
43. What's the most useful single derived KPI?
The SINR–RSRP gap: strong RSRP + poor SINR ⇒ interference‑limited (the common ceiling), instantly separating a coverage problem from an interference/beam one. [Ch.33]
44. When is rank‑1 actually the correct answer?
When the condition number is huge (strong LOS): one strong eigen‑channel beats two weak ones, so the UE's RI=1 is throughput‑optimal. Forcing rank‑2 there lowers throughput. Respect the RI unless an artificial cap (ports/restriction/CSI) is to blame. [Ch.34]
45. Why is MU‑MIMO the sensitive test of reciprocity calibration?
SU only needs the beam roughly pointed; MU needs precise nulls between users. Small calibration error fills the nulls, so MU gains vanish while SU still looks fine — MU is the calibration canary. [Ch.28,35]
▸ Advanced · rapid-fire fact sheet (memorize)
array gain ≈ 10·log₁₀N dB · beamwidth ≈ 102°/N · uniform sidelobes ≈ −13 dB SCS = 15·2^μ kHz · slot = 14 sym · slots/subframe = 2^μ · RB = 12 SC DL layers ≤8 (1CW≤4, 2CW 5–8) · UL ≤4 · CSI-RS ports ≤32 · DM-RS ports 1000–1011 L_max SSB 4/8/64 · QCL-D = beam · max streams = N_RF · BLER target ≈10% PCIs 1008 · NR PSS m-seq127 / SSS Gold127 (no CRS!) · cap = Σ log₂(1+σᵢ²ρ) specs 38.211 canvas · 212 coding · 213 control · 214 data/CSI · 215 meas · 38.901 channel

These are the numbers/facts that win rapid‑fire rounds. Drill them until automatic.

Section 44.2Scenario walk-throughs

Scenario questions test method over recall — the interviewer wants to hear you localise from the KPI tree, not guess. The universal structure is symptom → KPI localization → root cause → fix → verify; narrate it out loud every time.

Scenario A — "Good RSRP, poor SINR, low CQI, RI=1, MU pairing 0." Walk the KPI tree (Ch.33): RSRP good but SINR poor ⇒ interference or mis‑aimed beam (Ch.36/37); RI=1 ⇒ low‑rank (Ch.34); MU=0 likely follows. State the order: fix SINR first (is it location‑bound interference or motion‑bound misalignment?), then re‑check rank, then pairing. The strong candidate names the discriminator at each fork.

Scenario B — "Throughput craters at 300 km/h, RSRP fine." The RSRP‑fine‑but‑throughput‑dead signature is the fingerprint of staleness, not coverage. CSI ageing + beam lag (Ch.31): shorter CSI/SRS period, more DM‑RS positions, lower rank for robustness, wider SCS to limit ICI, and for a rail corridor track‑aligned HST‑SFN with Doppler pre‑compensation. Note it's a latency/geometry problem — power won't help.

Scenario C — "FR2 cell drops users in crowds." Dynamic human blockage outpacing recovery (Ch.32): seed the BFR candidate set with reflected‑path beams, enable multi‑TRP placed for angular diversity, add proactive prediction, densify. Diversity, not dBm — a 25 dB‑blocked beam can't be powered through.

Scenario D — "MU‑MIMO gains vanished but single‑user throughput is fine." The SU‑fine/MU‑dead split points straight at reciprocity calibration (Ch.28): small chain errors fill the MU nulls while leaving SU beams roughly pointed. Check the calibration status/alarm and recalibrate before touching pairing thresholds — MU is the calibration canary.

Scenario E — "Edge users attach but get almost no throughput." Classic control‑channel trap (Ch.37): PDSCH may be beamformed but PDCCH is too weak, so the UE camps without grants. Beamform PDCCH and raise its aggregation level (AL 8/16); then the data‑beam gains finally land.

Scenario F — "We bought 64T64R but cell throughput is mediocre with great peaks." It's SU‑bound — MU isn't pairing (Ch.35). Walk the AND‑checklist: licence → enough active users → CSI accuracy (Type II / calibrated reciprocity) → pairing threshold → DM‑RS ports. The capacity is in the box; the first closed gate (usually CSI fidelity) is the fix — no RF change.

Section 44.3Certifications & how to prepare

Beyond interviews, several certification tracks touch 5G MIMO, and they test differently from a conversation. Vendor programs (e.g. Ericsson, Nokia, Huawei RAN certifications) lean on their parameter names and OSS workflows; technology‑neutral ones lean on 3GPP concepts. The shared core is everything in this book — the difference is vocabulary and emphasis, so map a vendor's term back to the 3GPP concept you already know (their "rank restriction" is ri-Restriction; their "beam set" is the SSB/CSI‑RS beam configuration) and you're not relearning, just renaming.

For exam‑style preparation the discipline differs from interviews: certifications reward precise recall of numbers, spec mappings, and procedure steps, so drill the rapid‑fire fact sheet below until automatic and be able to write the message flows (4‑step RACH, beam‑failure recovery, CSI report chain) from memory. For interviews, recall matters less than reasoning — the scenario method above. Prepare for both modes: the facts for the written exam, the symptom→cause→fix reasoning for the live conversation. The candidate who can both quote "Lmax = 4/8/64" and walk a stuck‑rank diagnosis is the one who gets hired and certified.

▸ Advanced · the 60-second answer template
1. essence one line: what it IS # "QCL Type D tells the UE which Rx beam to use" 2. mechanism how it works, briefly 3. why/trade what it buys vs costs 4. KPI / fix close to a measurable or an action # always land here 5. spec cite if you know it (38.214 etc.) — bonus, never bluff

Every strong answer follows this arc: lead with the essence (don't make them wait), add the mechanism, name the trade‑off, and close to a KPI or a concrete action — that final step is what separates a textbook answer from an engineer's. Cite a spec only if certain; bluffing a spec number is the fastest way to lose credibility.

Worked — applying the template Q: "What is Type II CSI?" → Essence: a high‑resolution codebook that reports a weighted combination of beams. Mechanism: amplitudes+phases over L beams, near the true eigen‑beam. Trade: far better MU nulling than Type I, at higher uplink feedback. KPI/fix: enable it when MU pairing rate is low on an FDD cell. Spec: TS 38.214 §5.2.2. Four sentences, lands on a fix — that's a hire‑grade answer.

Takeaways · Summary

  • Interviews test mechanisms, troubleshooting, system trade‑offs — use the 60‑second template: essence→mechanism→trade→KPI/fix→(spec).
  • Eight themes = eight Parts; one crisp answer each covers the field. The 45‑question bank spans the whole book.
  • Rehearse the scenario method (symptom→localize→cause→fix→verify) — name the discriminator at each fork.
  • Certifications reward precise recall (drill the rapid‑fire facts, write the message flows); interviews reward reasoning. Prepare both modes.
  • Map any vendor's term back to the 3GPP concept you already know — it's renaming, not relearning.

You can now explain, troubleshoot, and reason about 5G MIMO. The last chapter distils it into a field reference you'll actually carry. Chapter 45 — Final Engineering Playbook.

— end of Chapter 44 —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)
Part Twelve — Advanced and Future Topics
CHAPTER FORTY-FIVE

Final Engineering
Playbook

"Forty-four chapters, distilled into the checklists you'll actually open on a bad night."

This is the chapter you bookmark. Everything in the book compresses into four working artifacts: a planning checklist, an optimization checklist, a troubleshooting decision flow, and a vendor‑neutral parameter map. Use them as your field reference; each line points back to the chapter that explains it.

Section 45.1The troubleshooting decision flow

The master flow ties Part 11 together: start at the symptom, walk the KPI tree, branch to the right chapter's fix.

throughput problem → walk the tree → branch to the fix low throughput RSRP low?→ coverage/tilt (Ch.37) SINR low?→ interference/beam (Ch.36/37) RI = 1?→ low-rank (Ch.34) MU pairing 0?→ MU checklist (Ch.35) also: BLER high after beam switch → TCI timing (Ch.25/36) · drops in crowds → blockage (Ch.32) fix the FIRST abnormal KPI, then re-measure
Figure 45.1 · The master troubleshooting flow — symptom to KPI to chapter
How to read this picture Start at "low throughput" and walk the KPI tree (Chapter 33) left to right, branching at the first abnormal KPI: RSRP low → coverage/tilt (Ch.37); SINR low → interference or mis‑aimed beam (Ch.36/37); RI stuck at 1 → low‑rank (Ch.34); MU pairing zero → the MU checklist (Ch.35). Side branches: BLER spiking after beam switches → TCI timing (Ch.25/36); drops in crowds → blockage (Ch.32). The discipline is the whole point: fix the first abnormal KPI, then re‑measure — don't change five things at once.
The massive-MIMO optimisation loop — the whole book in one cycle 1 · MEASURErank, CQI, BLER, beams 2 · DIAGNOSESINR / CSI / config? 3 · ACTbeams, codebook, MU, ES 4 · VERIFYKPIs improved?
Figure 45.3 · The end-to-end optimisation loop
How to read this picture The whole book reduces to this loop. Measure the headline KPIs — rank distribution, CQI, BLER, beam quality. Diagnose which of the three root causes is binding: coverage/SINR, CSI quality, or configuration. Act with the right lever — beam tuning, codebook/CSI settings, MU-MIMO pairing, or energy-saving policy. Verify the KPIs actually moved, then go round again. Every troubleshooting and optimisation chapter is one entry point into this cycle; running it deliberately — rather than tuning by reflex — is what separates an engineer from a parameter-poker.
Symptom → lever quick-reference stuck rank 1→ check SINR & correlation, lift CSI, remove rankRestriction (Ch 34) MU-MIMO idle→ more paired users, better CSI, looser pairing threshold (Ch 35) RSRP collapses→ beam mis-point: refinement rate, calibration, mobility (Ch 36) low edge rate→ coordinated beams / null-steering / joint Tx (Ch 37)
Figure 45.2 · Symptom-to-lever quick reference
How to read this picture This is the field card. Each row maps a symptom you'll actually see on a dashboard to the lever that fixes it and the chapter that explains why. A cell stuck at rank 1 sends you to SINR, correlation and codebook restrictions. MU-MIMO never pairing points at user count, CSI quality and pairing thresholds. Sudden RSRP collapse means a mis-pointed beam, not a coverage hole. Low edge rate calls for interference coordination. Internalise this table and the optimisation loop above, and you can walk into any massive-MIMO cell and know where to look first.

Section 45.2Planning checklist

  • Band & config: choose band for coverage vs capacity; match TXRU count to MU demand (8–16T rural, 64T urban workhorse, 128T dense, FR2 hotspot). [Ch.17]
  • Array: cross‑polarized, M×N×P, ~0.5λ spacing; verify cross‑pol exploited (rank 2 free). [Ch.4]
  • SSB beams: L_max per band; cover all azimuth and elevation (high‑rise). [Ch.6,22]
  • CSI‑RS: ports for needed PMI resolution; periodicity vs mobility; CMR+IMR; Type I vs II. [Ch.18,19,20]
  • TDD reciprocity: SRS coverage/period; calibration routine active. [Ch.27,28]
  • Pilots: scrambling/offsets vs neighbours (pilot contamination). [Ch.15,19]
  • Edge: tilt, coverage beams, beamformed PDCCH, CoMP/coordination. [Ch.37]
  • FR2: backup/reflected candidate beams, multi‑TRP, densify for blockage. [Ch.32]
  • Energy: NES profiles gated by traffic prediction + wake SLA. [Ch.38]
  • Private/venue: slice the MIMO philosophy (eMBB rank vs URLLC diversity); SNPN core local for latency; multi‑TRP for blockage. [Ch.41]
  • Automation: RIC xApps/rApps for pairing, beam and energy optimisation; respect the control‑loop latency budget. [Ch.39]

Section 45.3Optimization & troubleshooting checklists

Optimization (raise cell SE): enable/verify MU‑MIMO (Type II/reciprocity, relax pairing threshold), confirm rank distribution healthy, tune link‑adaptation outer loop (BLER ~10%), optimize tilt/beam coverage, coordinate beams/pilots, deploy RIC xApps for pairing/beam tuning. [Ch.16,20,33,37,39]

Troubleshooting (by symptom):

SymptomLikely causeChapter
RI=1, good RSRPlow‑rank channel/config/UE34
Good RSRP, bad SINR, location‑fixedinterference37
Good RSRP, bad SINR, moves with UEbeam misalignment36
High peaks, low cell SE, MU=0MU not activating35
BLER spike after beam switchTCI timing25,36
Throughput drops with speedCSI ageing / beam lag31
Drops in crowds (FR2)blockage32
Reciprocity beams degradedSRS coverage / calibration27,28
▸ Advanced · vendor-neutral parameter map
array/ports CSI-RS nrofPorts ≤32 · DM-RS Type1/2 (ports 1000–1011) · maxRank · ri-Restriction CSI CSI-ReportConfig: reportQuantity, cqi-Table, wideband/subband, codebookType (I/II/portSel) resources NZP-CSI-RS periodicity, CSI-IM, repetition (P2/P3), SMTC beam TCI states (MAC CE/DCI), timeDurationForQCL, BFD/BFR (maxCount, candidateBeamRSList) UL SRS-Config (usage, antennaSwitching, period, comb), txConfig, codebookSubset RACH ssb-perRACH-Occasion, msg1-FDM, rsrp-ThresholdSSB numerology μ/SCS, BWP (initial/active), CP · energy NES profiles, SSB periodicity

These are the knobs you actually turn, decoupled from any vendor's GUI naming. Map each to your OSS's parameter set. The golden rule across all of them: change one thing, re-measure the relevant KPI, then decide — the SINR–RSRP gap and RI/MU‑pairing counters tell you whether you helped.

Worked — a clean optimization loop Goal: raise cell SE. (1) Baseline RI.Distr + MU pairing. (2) Hypothesis: coarse CSI blocks MU → enable Type II + relax ρ_thresh 0.2→0.4. (3) Re-measure: MU pairing 2→6, cell SE +40%. (4) Watch PUCCH load (Type II cost) stays acceptable. One change, measured, kept. Repeat for the next lever.

Section 45.4The ten golden rules

Beneath the checklists run a handful of cross‑cutting principles that recurred in chapter after chapter. If you forget the parameter names, keep these — they're the judgment that turns a parameter‑poker into an engineer.

  1. Fix the first abnormal KPI, then re‑measure. Walk the tree; change one thing at a time. Changing five at once teaches you nothing about which helped.
  2. Read distributions, not averages. MIMO lives in the tails — the 5th‑percentile edge user and the rank‑1 fraction are where problems hide; a healthy mean can mask a starved edge. [Ch.33]
  3. The SINR–RSRP gap is your first instrument. Strong RSRP + poor SINR = interference‑limited (the common ceiling); it instantly separates a coverage problem from an interference/beam one. [Ch.33,37]
  4. Diversity, not dBm. Blockage and the cell edge are beaten by alternative paths (reflected/backup beams, multi‑TRP, nulls/CoMP), not by raw power — a 25 dB‑blocked beam can't be powered through. [Ch.32,37]
  5. Respect the RI. Over a high‑condition‑number channel, rank‑1 is the throughput‑optimal answer; forcing more layers lowers throughput. Only chase rank after removing an artificial cap. [Ch.34]
  6. Separate capability from radio limits. A device‑fixed limit (UE coherence class, MIMO category, beam correspondence) is "by design"; a location/time‑varying one (SINR, SRS, calibration) is a real network action. Don't open a network ticket for a UE limitation. [Ch.26,34]
  7. Control‑first. PDCCH must reach before PDSCH beamforming means anything; a beautifully beamformed data channel with a starved control channel serves no one. [Ch.37]
  8. CSI fidelity is the usual MU culprit; calibration is the MU canary. When MU‑MIMO won't pair, suspect coarse CSI (enable Type II) or, on TDD, miscalibration (MU nulls fail while SU looks fine). [Ch.28,35]
  9. Match cadence to mobility — fix speed before sacrificing gain. A moving user's failing narrow beam usually needs faster refinement, not a wider (lower‑gain) beam. [Ch.24,31]
  10. Space is the resource. Every technique in this book is one answer to a single question — how to use the spatial dimension well and keep the beam where the user is. When in doubt, return to that.

These outlast any release. Codebooks, interfaces and bands will change; the discipline of measure‑diagnose‑act‑verify, of reading the tails, of buying diversity instead of power, of respecting what the physics and the device allow — that is what stays true from LTE through 5G into 6G.

Section 45.5The whole book in one breath

MIMO opens parallel pipes through scattering (P1); antennas/arrays build steerable beams (P2); LTE pioneered it on CRS and LTE‑A reached the doorway (P3); NR rebuilt the PHY around on‑demand pilots and the codeword→port chain (P4); beamforming is choosing a weight vector, realized analog/digital/hybrid, drawn from codebooks or reciprocity (P5); massive MIMO's hardening/favourable‑propagation makes MU‑MIMO the capacity engine (P6); CSI feedback drives every decision (P7); beam management keeps narrow beams pointed (P8); the uplink sounds via SRS and reciprocity, with calibration (P9); mobility, failure and blockage are fought with tracking, BFR and beam diversity (P10); KPIs localize problems and checklists fix them (P11); and AI, Open RAN, and 6G carry it forward (P12). Every chapter was one facet of a single idea: use space as a resource, and keep the beam where the user is.

Closing45.6 · Go build networks

You started not knowing why a street corner could push 2.8 Gbps through 100 MHz. You can now explain it from the physics up, design the radio that does it, read the feedback that steers it, keep its beams pointed through motion and blockage, diagnose it from a dashboard, and reason about where it's going next. That's the full arc from curiosity to competence. The checklists above are your field companion; the chapters behind them are the why. Now go put beams on users.

— end of Chapter 45 · end of the book —
🔒 Paid edition

This chapter is part of the full book

Front matter and Chapters 1–3 are an open preview. Unlock all 45 chapters, 12 parts and ~130 engineering diagrams — beamforming, CSI codebooks, beam management, SRS, KPIs and troubleshooting.

₹399 · $4.99
Buy the book — instant accessI already bought it
  • 45 chapters · 12 parts
  • ~130 colour diagrams
  • 3GPP spec-cited (TS 38.211/214/331)
  • Worked numbers & KPIs
  • Interview & cert prep
  • Lifetime access + updates
One-time purchase · ₹399 / $4.99 · Works worldwide (UPI, cards, intl)