This month I worked on RADE V2 acquisition – the algorithms required to determine when a RADE V2 signal is present (instead of just noise), then start decoding. This includes estimating and tracking frequency and timing offsets, and determining when the signal is no longer present. This involved integrating many of the building blocks developed over previous months into a complete receiver, and building up a state machine to control the receiver.
Then followed several weeks of “testing and tuning” to make sure several important tests passed:, including performance on AWGN and multipath channels at high and low SNRs . The acquisition system needs to work at lower SNRs that the speech decoding (down to -5 dB on AWGN channels), so we tend to test it beyond where the decoding breaks.
All of the core algorithms required for a practical RADE V2 receiver have now been built, and are passing initial tests. The next step is to perform some more detailed tests such as simulations to track frequency and timing drift, comparisons to an equivalent RADE V1 receiver and some initial “stored file” over the air tests to sanity check the complete receiver in the real world.
I also updated our Internal FreeDV-038 RADE V2 project plan to update status and plan the next steps of RADE V2 development and documentation work. Documentation is important as it’s a way to review the RADE V2 system and spot any design issues early. RADE V2 performs most of the signal processing using machine learning, leaving just a small amount of classical DSP code. This will hopefully lead to lower CPU load, and simpler C porting and maintenance.