EC-23.6 Synchronisation, and Simulating the Whole Link
The standard treatment of synchronisation and link simulation: timing recovery, frequency and phase correction, frame sync and error rate curves, September 2026
What this is and why it exists
A receiver is handed a voltage and must decide three things before any of the previous topics apply.
Where does each symbol begin? What is the carrier frequency, really? And where is its phase? Getting any of them wrong makes a perfectly designed system produce noise.
The second half of the topic assembles everything in the module into one simulation. A curve of error rate against signal-to-noise ratio is the standard evidence that a design works. Producing an honest one is a skill of its own.
The vocabulary
- Timing recovery — finding the instant at which to sample each symbol.
- Eye diagram — many symbol periods overlaid, showing the sampling margin.
- Frequency offset — the difference between the two ends' oscillators.
- Constellation — the set of points a modulation scheme transmits.
- Phase-locked loop — a feedback loop that tracks a signal's phase.
- Decision directed — using the receiver's own decisions to refine its estimate.
- Preamble — a known pattern marking the start of a transmission.
- Bit error rate — the fraction of received bits that are wrong.
- Uncoded curve — the theoretical error rate with no coding, used as a reference.
The mental model
Timing first. Sampling away from the centre of a symbol collects energy from its neighbours and shrinks the margin. The eye diagram shows this directly: the widest opening is the right instant. Timing recovery finds that instant from the signal itself, because sending a separate clock would cost bandwidth.
Frequency second. The two ends have independent oscillators, and a small difference between them makes the whole constellation rotate steadily. After a few hundred symbols every decision is wrong. So the offset must be estimated and removed before anything else is attempted.
Phase third. Once the offset is roughly gone, a slow drift remains. A phase-locked loop tracks it, often using the receiver's own decisions as its reference. That works well while the decisions are mostly right, and fails badly once they are not, which is why the acquisition order matters.
Frame synchronisation is a separate question. Knowing where symbols begin is not knowing where a message begins. A known pattern is inserted for the receiver to search for, and its correlation properties are what make it findable in noise.
Then the simulation. Loop over signal-to-noise values. At each one, generate random data, encode it, pass it through a channel model, receive it, and count errors. Run enough symbols that the count is statistically meaningful, which is itself a question the simulation has to answer: ten errors is not a measurement.
Finally, honesty. A curve that beats the theoretical uncoded limit is a bug, almost always a receiver given information it would not really have. Comparing against the known uncoded curve is the first check anyone should apply to their own simulation, including yours.
What you should now be able to explain or do
- Explain what timing recovery finds and why the eye diagram shows it.
- Say what a frequency offset does to a constellation, and why it must go first.
- Describe decision-directed phase tracking and its failure mode.
- Explain why a preamble is needed even after symbol timing is known.
- Build a link simulation and decide how many symbols each point needs.
- Check an error rate curve against the uncoded reference and spot a bug.
Check yourself
Why must frequency offset be corrected before phase tracking?
Because a steady rotation quickly outruns a phase loop. The loop can follow slow drift, not a constant spin of the whole constellation.
What does an eye diagram tell you?
How much margin remains in amplitude and in time. The widest opening marks the right sampling instant and the room left before decisions fail.
Why is decision-directed tracking risky?
Because it uses its own decisions as truth. Once too many decisions are wrong, the loop follows the errors and cannot recover on its own.
Your simulated curve is better than the theoretical uncoded one. What happened?
A bug, almost certainly. The receiver has been given information it would not have in reality, such as the transmitted data or the exact channel.
Go deeper
We haven't checked most of these for screen reader use yet.
Back to Synchronisation, and Simulating the Whole Link: work through the checklist