LoRa-SDR
LoRa-SDR copied to clipboard
Implement maximum likelyhood for PPM == SF
In the case where the symbol set is equal to (and not greater) than spread factor, we are guaranteed +/-1 decoding errors. When the symbol set is greater, the detector error is simply shifted out. To correctly decode this, we need to take into account all of the symbol possibilities that go into one set of interleaved symbols and use the hamming errors to select the best decode option.
Two major complications to implement this:
- Because of interleaving, errors are spread across every N symbols. The maximum likely hood path is as long as 1 group of interleaved symbols. But not as long as the entire payload, the process just repeats for every group
- The header options support their own code rate separate from the payload (usually 4/8). So doing this requires its once in a generic way for the payload, and somewhat specifically for the header decode.