Beamforming & MIMO

Massive MIMO —
Many antennas, focused beams

5G NR base stations typically have 32, 64, or even 192 antenna elements — orders of magnitude more than LTE. This large antenna array enables spatial beamforming: concentrating signal energy in specific directions rather than radiating equally in all directions. This section covers the physics and mathematics behind beamforming and why massive MIMO is central to 5G capacity.

TS 38.214 §5.2 TS 38.211 §7.3.1.4 TS 38.214 §5.2.2

Why more antennas help

A single antenna radiates energy in all directions — only a tiny fraction reaches the intended UE. An array of antennas, each transmitting the same signal with carefully chosen phase offsets, creates constructive interference in the desired direction and destructive interference in all other directions. This is a beam.

With N antennas, the maximum beamforming gain is N times the single-antenna power in the beam direction. For a 64-antenna array: 18 dB gain. This is why 5G can operate at higher frequencies (more path loss) and still achieve good coverage.

64
typical antenna ports
32 cross-pol elements = 64 ports in a typical 5G panel
18 dB
max beamforming gain
10·log₁₀(64) = 18 dB vs omnidirectional
MU-MIMO
multi-user MIMO
Serve multiple UEs simultaneously on same RBs
CSI-RS
channel sounding
UE measures CSI-RS, reports PMI/CQI/RI to gNB

Beamforming mathematics

Consider a uniform linear array (ULA) of N antennas spaced half a wavelength apart. To steer a beam at angle θ from broadside, the signal at antenna n is delayed by n × (d/λ) × sin(θ) wavelengths, equivalent to a phase shift.

Beamforming weight vector — ULA, N=8 antennas, θ=30°Array signal processing
// Uniform Linear Array (ULA) steering vector:
d = λ/2  (half-wavelength spacing)
θ = 30°  (desired beam direction)

// Phase shift per element:
ψ = 2π × (d/λ) × sin(θ) = 2π × 0.5 × sin(30°)
  = 2π × 0.5 × 0.5 = π/2 radians

// Beamforming weight vector w (N=8):
w = [1,  e^(jπ/2),  e^(jπ),  e^(j3π/2),  e^(j2π),  e^(j5π/2),  e^(j3π),  e^(j7π/2)]
  = [1,  j,  -1,  -j,  1,  j,  -1,  -j]

// Array gain at θ=30°:
|w^H × a(θ)|² = N² = 64  (8² = 18 dB gain)

// Array gain at θ=60° (interference null):
|w^H × a(60°)|² ≈ 0.02  (−17 dB nulling)
Beam pattern — 8-element ULA steered to 30° Array factor computation

Precoding — connecting beamforming to 3GPP

In 3GPP, beamforming is implemented through precoding. The gNB multiplies the data symbols by a precoding matrix W before transmitting from multiple antenna ports. The UE reports a Precoding Matrix Indicator (PMI) — an index into a codebook of predefined precoding matrices — telling the gNB which precoder it prefers.

For transmission on physical channels using multiple antenna ports, the UE assumes that the precoding matrix W applied to the symbols on the antenna ports corresponds to a codebook-based precoding or a non-codebook-based precoding as configured.
3GPP TS 38.214, Section 5.2.2.2

CSI feedback — how the gNB learns the channel

The gNB transmits CSI-RS (Channel State Information Reference Signals) — known pilot signals from specific antenna ports. The UE measures these, estimates the channel, and reports back:

CSI feedback loopTS 38.214 §5.2.1
ReportFull nameDescriptionBits
CQIChannel Quality IndicatorRecommended MCS index (0–15)4
PMIPrecoding Matrix IndicatorBest precoder from codebookvaries
RIRank IndicatorNumber of spatial layers (1–4)1–2
LILayer IndicatorBest layer for single-layer PDSCHvaries
CRICSI-RS Resource IndicatorBest CSI-RS beam (for SSB beam management)varies

Spatial multiplexing — multiple layers

With enough antenna elements and sufficient scattering in the environment, the gNB can transmit multiple independent data streams (layers) simultaneously to the same UE. This is spatial multiplexing. The maximum number of layers equals the minimum of the number of transmit and receive antennas and the channel rank.

For our UE: RI=1 (single layer reported). If RI=2, the throughput doubles — 2 independent streams occupy the same time-frequency resources.

Massive MIMO — key numbers
Antenna ports     → typically 32 or 64 per panel
Beamforming gain  → up to 18 dB (64 antennas)
Max layers (SU)   → 4 DL, 4 UL per UE (Release 17)
CSI feedback      → CQI + PMI + RI reported on PUCCH/PUSCH
Our UE            → RI=1, single layer, PMI=0 (codebook index)