- gr-digitalhf contains an adaptive decision feedback equalizer (DFE) and a local oscillator for Doppler correction, implemented in C++. These are separated from the description of the physical layer (synch preamble, frame format, constellation, ...) which is provided in Python. You may have a look at the description of STANAG 4285 here which is an almost literal translation of the standard document.
- The DFE unscrambles a given symbol, computes a hard decision using the constellation valid for the unscrambled symbol, and then uses the scrambled symbol from the hard decision for computing the error. For this it only needs to have (1) an estimate of the Doppler (=frequency offset) correction and it needs to know (2) if a given symbol is known or unknown. Both, (1) and (2) are provided by the description of the physical layer in Python.
- Currently the implementation is limited to providing soft decisions. The two final steps, deinterleaving and convolutional decoding, are still missing.
|STANAG 4285 signal (BPSK unscrambled data, 600 baud) with severe multi-path.|
|Another STANAG 4285 signal (BPSK unscrambled data, 600 baud)|
|An example of a 1200 baud STANAG 4285 signal (QPSK unscrambled data)|