DC Coupled Baseband FM Testing

Tibor Bece and George Karan are collaborating with me on the baseband FM (BBFM) project. Tibor and George are veterans of the land mobile radio (LMR) industry, having worked together for many years and helped develop commercial VHF and UHF radio hardware with over 2 million units manufactured. They are pretty excited about the Radio Autoencoder work and what it could mean for LMR.

George has managed to build the RADE V1 stack, and run the ctests on a variety of embedded platforms, including AM625 – this is a high end embedded processor with enough power to run RADE (including the FARGAN stack); and a Librem 5 phone!

Tibor has been interfacing the BBFM ML stack to a COTs LMR radio, using a modified conventional digital voice frame structure to carry the “analog” BBFM symbols. Unlike my passband demo, this implementation has direct access to the FM modulator and discriminator so it’s a “DC coupled” arrangement – closer to what a real world, commercial implementation would look like.

Like me, Tibor was initially thinking the speech quality and low SNR performance of this technology was in the “too good to be true” category. However he has now performed controlled experiments on his (very well equipped) RF work bench, as was quite surprised to be getting high quality speech at RX signals levels down to -125dBm, several dB lower than analog FM or digital LMR systems like P25 would allow. At this low RF level the cut off is due to framing of the RADE symbols (not BBFM), as he never dreamed it would be necessary to operate at such a low SNR.

Tibor writes:

The 11dB SINAD point (around -121dBm) is where the squelch would normally fail to open, and a P25 frame would start dropping out. The RADE decoder munches through this with great ease, there is some barely perceptible degradation.

All I can say – WOW!

Here are samples (over the same radios) of analog FM and BBFM at various RF input levels from Tibor’s workbench:

FM at -124dBm
BBFM at -124dBm
FM at -121dBm
BBFM at -121dBm
FM at -117dBm
BBFM at -117dBm
FM at -110dBm
BBFM at -110dBm

Mooneer’s FreeDV Update – November 2024

This month was focused on improving the integration of RADE with the freedv-gui application. One way this was done is through the creation of an automated test framework in the latter. This framework allows for the injection of audio into the receive or transmit chain and analysis of the result. Currently, we can retrieve the number of times FreeDV goes in and out of sync as well as analyze the loss between the result decoded by freedv-gui and the loss from the RADE reference decoder.

Another benefit of this automated test framework is that we can now automate testing of the FreeDV receive and transmit chain as part of our Continuous Integration process (CI). CI allows FreeDV developers to get immediate feedback when a change breaks existing functionality versus waiting until a user reports breakage after a release, improving the user experience. That said, there was significant initial effort involved in getting virtual audio devices working in our CI environment (and in the case of Linux testing, getting a working virtual GUI environment running).

On the RADE side, some minor work was done as part of the C port to ensure that freedv-gui could still compile. This involved ensuring that files weren’t defined more than once, as well as removing the version of libopus built by FreeDV in favor of the RADE version.

Further improvements will be made in our testing process over the next few months to ensure that freedv-gui produces the best result from RADE and integrates functionality currently missing from RADE (such as reporting of received callsigns).

More information can be found in the commit history below:

(Note that all commit logs above were generated with the following command line:)

git log --author="member@email" --after "Month 1, 2024" --before "Month 31, 2024" --all > commit.log