tern — reading HF signals below the noise
tern is an HF weak-signal digital mode — in the family of things like FT8, built to carry a small message reliably over a shortwave path where the signal can sit below the noise floor. This is the initial implementation.
What makes a shortwave path hard is that it is not a fixed channel: the ionosphere makes it fade and spread, so a tone arrives smeared and time-varying. tern's receiver is built around modeling that channel rather than ignoring it.
Tracking the channel, not just the symbol. The receiver treats the channel as a Gauss–Markov process and smooths it with a Kalman filter and an RTS smoother, estimating how the path is distorting the signal across a frame instead of assuming it is constant. The modulation is 16-FSK — robust tones rather than a dense constellation, which is what survives fading.
Spending redundancy where it counts. Error correction is CRC-aided polar coding, and frames are combined across repetitions, so confidence accumulates from several weak copies instead of depending on one.
Validating against a standard channel. A weak-signal mode is only as trustworthy as the channel you test it on. tern is validated against an ITU-R F.1487 Watterson channel — the standard model for HF fading — and cross-calibrated against WSJT-X's FT8, so its performance has a known reference rather than a self-made benchmark.
It is early: the initial release ships with a reference manuscript describing the design. tern is on GitHub.