pflarue / ardop

ardopcf - A multi-platform implementation of the Amateur Radio Digital Open Protocol (ARDOP)
Other
30 stars 7 forks source link

Reorganize modulation of PSK/QAM data frames. #83

Closed pflarue closed 3 months ago

pflarue commented 3 months ago

The functions to encode data for PSK/QAM modulation are reorganized to make them easier to understand and debug.

While this PR mostly restructures the process for preparing PSK/QAM data for transmission without changing the results from the earlier implementation, it does fix a bug that previously failed to properly encode the reference symbol transmitted before all PSK/QAM data. As a result, this fixes Issue #78 relating to failure of 16QAM.2000.100 data frames to be reliably decoded even without any added noise. This change shows that the problem had been in the encoder, not the decoder. Following this change, these data frames now reliably decode in the absence of added noise. However, these fastest and least robust of the frames used by Ardop are still unlikely to be useful except where the received signal to noise ratio is very high. Future testing scripts should help quantify the required signal to noise ratio for this and other frame types.

Fixing this bug may also result in slight improvements to usability of the 2kHz bandwidth PSK frame types as well as the other multi-carrier 16QAM frame types. However, these improvements are minor compared to the improvements to the 16QAM.2000.100 frames. Limited testing shows that with no added noise, this bugfix reduces the bit error rate of 16QAM.2000.100 frames by about 30%.