Part 6 of "Building a MIL-STD-188-110 HF Modem in Modern C++." Start with the overview , Part 1, the rules I build by , Part 2, the transmit chain , Part 3, the audio front end , Part 4, acquisition , or Part 5, the first path . The code for this article is on GitHub: kg7hf/modem-core .
Part 5 ended with an anchor on the first path, a carrier estimate, the mode and the body boundary. From those, the position of every symbol of the body is known. The symbols still cannot be read. On Table XX's channels each received symbol is the transmitted one plus a copy of a symbol sent 4.8 or 12 symbols earlier, and both copies fade on their own. Read at the anchor, a symbol is two symbols added together, with weights that change several times a second.
Undoing that is the equalizer's job. It has help: every frame of data is followed by known symbols, the probes, so the receiver can keep checking its work against symbols it does not have to guess. There are two ways to use them.…