MIMO and beamforming
How multiple antennas make links more reliable, faster and more directional. Diversity, spatial multiplexing, precoding and channel state feedback, massive MIMO, and analogue, digital and hybrid beamforming.
Overview
Adding antennas at either end of a link gives it new dimensions to work with. The same hardware can be used three ways. Diversity uses the antennas to make fading less likely to wipe out the signal. Spatial multiplexing sends several data streams at once over the same bandwidth. Beamforming focuses energy towards a user and away from others. Every current cellular and Wi-Fi standard relies on all three, and in millimetre-wave bands beamforming is what makes the link budget close at all.
This hub is for engineers who need to understand what a MIMO rank, a precoder or a beam report means, how many antennas buy how much, and why base station arrays are built the way they are.
Key ideas
Diversity
If two antennas are far enough apart, usually half a wavelength or more in a rich scattering environment, their fading is close to independent. The chance that both fade at once is much smaller than the chance that one does. Receive diversity with maximum ratio combining weights each branch by its conjugate channel gain and adds them, which gives an array gain on average SNR and a diversity gain that steepens the error-rate curve. With L independent branches the error rate at high SNR falls roughly as SNR to the power −L.
Transmit diversity needs a trick because the transmitter does not know the channel. Alamouti’s 1998 scheme sends two symbols over two antennas and two time slots in a pattern that lets a simple linear receiver recover full second-order diversity without channel knowledge at the transmitter.
Spatial multiplexing
With Nt transmit and Nr receive antennas and a well-conditioned channel, the link can carry up to min(Nt, Nr) parallel streams, called layers. Each layer is a spatial degree of freedom, so capacity at high SNR grows linearly with their number rather than logarithmically with power. The papers by Foschini and Gans and by Telatar below set out this result. The condition matters. In line-of-sight or poorly scattering channels the channel matrix is close to rank 1, and the extra streams carry little. The receiver separates the layers with linear MMSE detection, successive interference cancellation or near-maximum-likelihood search.
In 3GPP TS 38.300 (Release 19 version), NR supports up to 8 downlink layers per UE for single-user spatial multiplexing. In the uplink a UE supports up to 4 or up to 8 layers, depending on capability, and DFT-s-OFDM is limited to a single layer. The UE’s capability and the channel’s rank decide how many layers a link actually uses.
Precoding and channel knowledge
Precoding shapes the transmitted signal to the channel: it steers layers onto the strongest spatial directions and, in multi-user MIMO, keeps users’ signals apart. It needs channel state information (CSI) at the transmitter. There are two ways to get it. With feedback, the base station sends CSI reference signals and the UE reports a rank, a precoder from a codebook and a channel quality indicator. TS 38.214 defines Type I codebooks with coarse beam selection and Type II codebooks that describe the channel in more detail. With reciprocity, used in TDD, the UE sends sounding reference signals and the base station estimates the downlink channel from the uplink, after calibrating its transmit and receive chains. Classic linear precoders are zero forcing, which removes inter-user interference at the cost of noise enhancement, and regularised zero forcing, which balances the two.
Massive MIMO and beamforming architectures
Massive MIMO uses base stations with very many antennas to serve many users at once. Marzetta’s 2010 paper on cells with unlimited numbers of base station antennas is the usual starting point. As the array grows, channels to different users become nearly orthogonal and small-scale fading averages out, so simple linear processing works well. The limiting factor becomes pilot contamination between cells that reuse the same pilot sequences. The glossary and the 5G NR hub cover how the idea is used in cellular networks.
How an array is driven depends on cost and power. Fully digital beamforming gives each element its own RF chain and converters, which gives the most flexibility and the most power draw. Analogue beamforming uses one RF chain and a network of phase shifters, so it forms one beam at a time. Hybrid beamforming, shown below, sits between them: a small digital precoder feeds a few RF chains, each driving many elements through phase shifters. It is the usual choice at millimetre wave, where arrays are large and converters at those bandwidths are expensive in power. Beam management procedures in NR sweep beams over synchronisation signal blocks and CSI reference signals so the UE can report the best one.
Where to start
The beginner track builds the background: /learn/beginner/07-fading-channels/ for the fading that diversity fights, and /learn/beginner/08-ofdm-from-scratch/ because MIMO in LTE, NR and Wi-Fi runs per subcarrier. Intermediate lessons on MIMO detection, precoding and beamforming are in preparation. Keep /reference/capacity-and-spectral-efficiency/ and the glossary open.
Tools and platforms
| Tool | What it is for | Licence | Platform |
|---|---|---|---|
| Sionna | MIMO detection and precoding with TR 38.901 channel models in a link-level simulator | Apache-2.0 | /platforms/opensource/ |
| CommPy | MIMO Rayleigh and Rician channels for quick experiments | BSD-3-Clause | /platforms/opensource/ |
NumPy linalg |
SVD, QR and least squares for precoders and detectors | BSD-3-Clause | /platforms/opensource/ |
| UHD | Driver for USRP radios, including multi-channel configurations | GPL-3.0 by default | /platforms/ni-ettus/ |
| OpenAirInterface | Open 5G RAN and UE stack for over-the-air MIMO experiments | CSSL v1.0, per the repository | /platforms/openairinterface/ |
| Keysight 89600 VSA | Custom OFDM analysis option that covers MIMO signals | Commercial | /platforms/keysight/ |
Specifications for multi-channel radios are on /reference/hardware/.
Common mistakes
- Assuming N antennas give N times the throughput. The channel’s rank and conditioning decide.
- Simulating MIMO with independent Rayleigh entries and expecting the same rank in a line-of-sight lab.
- Using channel state that is older than the coherence time. Fast-moving users break CSI-based precoding.
- Forgetting reciprocity calibration in TDD. The over-the-air channel is reciprocal, the transceiver chains are not.
- Running multi-channel radios without a shared reference clock and LO, then blaming the algorithm for random phase drift.
Going deeper
- S. M. Alamouti, A simple transmit diversity technique for wireless communications, IEEE Journal on Selected Areas in Communications 16(8), 1998.
- G. J. Foschini and M. J. Gans, On limits of wireless communications in a fading environment when using multiple antennas, Wireless Personal Communications 6(3), 1998, and E. Telatar, Capacity of multi-antenna Gaussian channels, European Transactions on Telecommunications 10(6), 1999.
- T. L. Marzetta, Noncooperative cellular wireless with unlimited numbers of base station antennas, IEEE Transactions on Wireless Communications 9(11), 2010.
- E. G. Larsson, O. Edfors, F. Tufvesson and T. L. Marzetta, Massive MIMO for next generation wireless systems, IEEE Communications Magazine 52(2), 2014, and E. Björnson, J. Hoydis and L. Sanguinetti, Massive MIMO networks, Foundations and Trends in Signal Processing 11(3-4), 2017.
- O. El Ayach et al., Spatially sparse precoding in millimeter wave MIMO systems, IEEE Transactions on Wireless Communications 13(3), 2014, and R. W. Heath et al., An overview of signal processing techniques for millimeter wave MIMO systems, IEEE Journal of Selected Topics in Signal Processing 10(3), 2016.
- D. Tse and P. Viswanath, Fundamentals of Wireless Communication, Cambridge University Press, 2005, chapter 7, and 3GPP TS 38.214 for NR CSI reporting and codebooks.