- Added support for 16APSK and 32APSK modcodes
- Fixed demodulator using wrong modcodes in ACM/VCM mode
- Fixed a crash occuring while cleaning up buffers on program exit
- Fixed wrong scaling of TCP input samples using the F32 format
- Fixed IQPlot imaginary axis being flipped
- Removed QCustomPlot dependency
The main feature is obviously 16APSK and 32APSK support, which i've tested mostly on ACM/VCM data transponders on various broadcast satellites. Otherwise, i did tests with GNURadio. Locking 16APSK and especially 32APSK with small symbolrates can take some time and isn't as robust as i'd like it to be, but i'll make this version available for you for being able to test it.
One of the next steps will be improving the demodulator, especially when it comes to carrier recovery, and detecting the start of frame header.
For receiving 16APSK and 32APSK, the carrier recovery damping value needs to be very low after acquiring lock.
Of Note: I had problems with receiver sentitivity using the HackRF on 32APSK signals. LimeSDR works better, and i assume it's because of the better resolution of the ADC, which is higher than the 8 bit ADC that the HackRF uses. I had to be very careful with the Baseband Gain setting. Using Hardware RF filters helps, too. I could see the constellation improve every time i increased the Gain setting, which is why i came to this conclusion.
Also: this version might be less sensitive for QPSK / 8PSK constellations due to the method i use for demapping symbols into bits.
I'll try to improve this in future versions, or use the old method for non-APSK constellations.