Topic hub

Synchronisation and estimation

How a receiver lines up with a transmitter it does not share a clock with. Frame and symbol timing, carrier frequency and phase recovery, pilot-based channel estimation, equalisation and the effect of phase noise.

Updated 15 Nov 2026 · timing recovery, carrier frequency offset, Costas loop, Schmidl and Cox, channel estimation, equalisation, phase noise, PLL

Overview

A receiver starts with no idea when a frame begins, where the symbol boundaries fall, what the exact carrier frequency is, or what the channel has done to the signal. Its oscillators and sample clock differ from the transmitter’s by a few parts per million, and the channel adds delay, Doppler and multipath. Before any bit can be demodulated, the receiver has to estimate all of these and keep tracking them as they drift.

This hub covers the estimation and tracking stages of a digital receiver. It is for engineers moving from simulation with perfect synchronisation to real IQ from a software-defined radio, and for anyone debugging a link that works on the bench but not on air.

Key ideas

Timing: frames and symbols

Frame timing comes first. The transmitter sends a known preamble or synchronisation signal, and the receiver correlates against it and looks for a peak. Good sequences have a sharp autocorrelation and stay detectable in the presence of a frequency offset. In 5G NR, the primary synchronisation signal defined in TS 38.211 is a BPSK-mapped m-sequence of length 127 with three cyclic shifts. Together with the secondary signal it identifies one of 1008 physical cell identities.

Symbol timing recovery then finds the best sampling instant within each symbol and tracks drift between the two sample clocks. A timing error detector measures the offset from the samples. Gardner’s 1986 detector for BPSK and QPSK uses two samples per symbol and needs no symbol decisions. The Mueller and Müller detector uses one sample per symbol but relies on symbol decisions. A loop filter smooths the error, and an interpolator or polyphase filterbank resamples the signal at the corrected instants. In OFDM, the cyclic prefix gives some tolerance, so timing can be estimated per symbol from the CP correlation or from a preamble with repeated halves, as in the method of Schmidl and Cox.

Frequency and phase

A carrier frequency offset comes from oscillator error and Doppler. A 1 ppm error at 3.5 GHz is 3.5 kHz, which is more than 10 % of a 30 kHz NR subcarrier spacing. Receivers correct it in two stages. Coarse acquisition uses a preamble, a frequency-locked loop or a training symbol with repeated parts. The phase step between two identical segments, divided by their spacing in time, gives the offset. Schmidl and Cox’s 1997 method uses an OFDM training symbol with two identical halves for both timing and frequency. Moose’s 1994 paper on OFDM frequency offset correction is the other standard reference. Fine tracking then removes the residual phase rotation with a phase-locked loop. The Costas loop is the classic form for PSK, using decisions to remove the modulation before measuring phase.

In single-carrier systems a small residual offset shows as a slowly rotating constellation. In OFDM it is worse. Even a small fraction of the subcarrier spacing breaks orthogonality and leaks energy from each subcarrier into its neighbours as inter-carrier interference, which no per-subcarrier equaliser can remove.

acquisitiontracking loopsestimationFLL or preambleTED, interpolatorCostas loopLS or MMSEZF or MMSEIQ incoarse CFOtimingfine phasechannel estequaliseto demapperloop filterNCOknown pilots
Synchronisation and estimation stages in a digital receiver. Coarse frequency correction comes first, then symbol timing and fine phase are tracked by feedback loops, each with a loop filter or numerically controlled oscillator. Known pilots drive the channel estimate that the equaliser uses.

Channel estimation and equalisation

Channel estimation uses known pilot symbols. In OFDM the pilots sit on a grid of subcarriers and symbols. The receiver divides each received pilot by its known value to get a least-squares estimate at that point, then interpolates across frequency and time. The pilot spacing must sample the channel faster than it changes: closer than the coherence bandwidth in frequency and the coherence time in time. A minimum mean-square error (MMSE) estimator uses the channel’s correlation and the noise level to filter the raw estimates, which reduces noise at the cost of needing those statistics. In NR the demodulation reference signals (DMRS) of each channel serve this purpose, and up to three additional DMRS symbols can be configured to follow faster channel variation.

Equalisation undoes the channel. In OFDM it is one complex division per subcarrier, or a small matrix operation per subcarrier for MIMO. Single-carrier links need a filter that spans the delay spread. Zero forcing inverts the channel and amplifies noise where the channel is weak. MMSE balances residual interference against noise. Adaptive equalisers update their taps from the data. The least-mean-squares (LMS) algorithm uses known or decided symbols, and the constant modulus algorithm needs no training for constant-envelope signals.

Phase noise

Real oscillators wander in phase. Their spectrum is described as single-sideband phase noise in dBc/Hz at an offset from the carrier, and Leeson’s 1966 paper gives the standard simple model of its shape. Slow phase wander shows up as a common rotation of all subcarriers in an OFDM symbol, which pilots can track. Fast wander spreads energy between subcarriers like a frequency offset that changes every symbol. A synthesiser that multiplies a reference up to a higher carrier also multiplies its phase noise, so the problem grows with frequency. NR offers wider subcarrier spacings for millimetre-wave bands, and TS 38.211 defines phase-tracking reference signals (PT-RS) for the shared channels.

Where to start

The beginner track sets up the problem. /learn/beginner/06-pulse-shaping-and-matched-filters/ explains the sampling instant that timing recovery hunts for. /learn/beginner/08-ofdm-from-scratch/ and the project /projects/ofdm-link-channel-estimation/ add pilots and channel estimation. /learn/beginner/10-recording-and-reading-iq/ shows how to capture real IQ to test against. Intermediate lessons on timing and carrier recovery loops are in preparation.

Tools and platforms

Tool What it is for Licence Platform
GNU Radio symbol_sync with Gardner and Mueller and Müller detectors, polyphase clock sync, band-edge FLL, Costas loop, Schmidl and Cox OFDM sync, LMS and CMA equalisers GPL-3.0 /platforms/gnuradio/
liquid-dsp Symbol timing recovery, NCOs and PLLs, LMS and RLS equalisers in C MIT /platforms/opensource/
Sionna OFDM channel estimation and equalisation in a link-level simulator Apache-2.0 /platforms/opensource/
SciPy Correlation, interpolation and filter design for custom receivers BSD-3-Clause /platforms/opensource/

Common mistakes

  • Testing only with perfect synchronisation in simulation. Add a frequency offset, a fractional timing offset and a sample-rate offset from the start.
  • Setting loop bandwidths by trial and error without checking lock range and noise together.
  • Correcting frequency after the FFT in OFDM. Inter-carrier interference cannot be removed there.
  • Interpolating channel estimates across pilots spaced wider than the coherence bandwidth or time.
  • Blaming the algorithm for errors caused by an unlocked reference clock on the radio.

Going deeper