Also known as: clock recovery, symbol timing
Clock recovery determines a digital signal’s symbol timing from the signal itself, since the transmitter’s clock is not shared with the receiver.1 It lets the receiver sample each symbol at its centre, where the eye is widest and the decision is most reliable. Without it, samples drift across symbol boundaries and the decoded stream collapses even when the signal is otherwise clean.
How it works
The transmitter and receiver run independent oscillators, so the receiver knows the nominal symbol rate but not the exact phase — where within each symbol period the centre falls — nor the precise rate, which differs by a few parts per million and slowly drifts. Clock recovery is a feedback loop that closes both gaps:
- A timing-error detector (TED) estimates whether the current sampling instant is early or late relative to the symbol centre, usually by examining the signal near the transitions between symbols, where timing error shows up most strongly.
- A loop filter smooths that noisy error estimate into a stable correction, setting the loop’s tracking bandwidth: wide enough to follow drift, narrow enough to reject noise.
- An interpolator or controlled resampler shifts the effective sampling phase by a fraction of a sample so the next symbol is read at its centre, and the loop repeats.
The result tracks slow clock drift automatically. The loop must first acquire lock (pull the sampling phase to the centre) and then track it; a preamble of known alternating symbols in the transmitted frame gives it clean transitions to lock onto quickly.
Variants
- Gardner — a non-data-aided detector that needs two samples per symbol and is insensitive to carrier phase, which makes it a common first choice for QPSK and PSK modes.
- Mueller–Müller — a decision-directed detector that works at one sample per symbol but assumes the carrier is already phase-locked.
- Early–late gate and zero-crossing detectors — older, intuitive schemes that compare samples taken slightly before and after the estimated centre, or watch where the waveform crosses zero.
The choice trades sample-rate cost, sensitivity to residual carrier error, and acquisition speed. All feed the same kind of loop filter and interpolator.
In practice
Clock recovery comes after demodulation and before frame synchronization: timing recovery finds where each symbol is, frame sync then finds which symbol starts the frame. It is one of the most failure-prone stages to watch, because it can hold a false lock — sampling consistently off-centre — and still produce a plausible-looking but wrong bit stream. An eye diagram is the direct diagnostic: a wide-open eye with the sample points clustered at its centre means the loop is locked correctly.
Relevance to SDR
Every digital mode GopherTrunk decodes runs a timing-recovery loop between the demodulator and the symbol slicer. Loss of symbol lock — from low SNR or multipath — closes the eye and breaks the decode, which is exactly what the receiver scopes are meant to reveal. Because the loop tracks small rate offsets, it also absorbs residual clock error that survives coarse PPM correction upstream.
Sources
-
Clock recovery — Wikipedia, on recovering symbol timing from a received signal. ↩