Baseband Demodulator Feedback

Please use this thread to provide feedback or ask questions about the implementation of the M17 baseband demodulator posted here:

I plan to post my modulator notes and implementation, hopefully within a week, and then maybe another notebook with just my notes on the digital encoding/decoding bits.

Some of the implementation choices were made because I plan to re-implement the code in C++, targetting an 80MHz STM32L433.

If you know of a good GPL Viterbi implementation in C or C++ that handles erasure or accepts LLR inputs, please let me know.

The one in the MMDVM will do the job. It’s already in use for NXDN which has the same polynomial with different puncturing pattern, and works well. You can find it in the M17 branch of the MMDVM Host in the file M17Convolution.{cpp,h}

Awesome. Thanks.

Amazing work. Could you please rename “randomize” to “decorrelate” etc.?

Sure thing.

I prefer the term randomize in this context. I feel it is clearer. I will clarify that the term “decorrelate” is used in the M17 spec. This is made a little clearer in the modulator document which explains the process a bit more, but is not yet published.

Fine :slight_smile:

The modulator implementation notes been posted. The notebook can be viewed here: