Monthly Archives: August 2025

David August 2025, BBFM write up, RADE V2 OTA, Fine timing

BBFM Documentation

Given our fine results from last months Baseband FM (BBFM) tests, I set about wrapping up the current phase of the project by documenting the work. I’ve been working on a draft paper that describes the work at a professional engineering/signal processing level, which has quite a lot of math, especially around the use of FM demodulators. Once I have this reviewed by some colleagues I’ll put it up on ArXiv.

The second documentation effort was a Ham friendly RADE-BBFM web page to provide a more gentle introduction to the technology. Third was a GitHub branch (dr-bbfm, off the RADE repo) that provides the open source software and some instructions for the advanced experimenter to reproduce the work.

First RADE V2 Over the Air Test

After some more careful development I reached the point where I could finally test the “smoke test” version of RADE V2 over the air. The goal of this test was to see if the many new and novel techniques we’ve developed for RADE V2 will work together to send speech over a real radio channel. It was not a performance test, so we weren’t looking for that last dB of performance. Given the number of new techniques, just working over a real world radio channel is enough.

Using a 10 second sample of my own voice, I generated a file that contained a chirp signal to measure SNR, followed by my own voice encoded with SSB, RADE V1, and RADE V2. On the 8th of August 2025 I transmitted the file from my home station to a KiwiSDR about 100 km away, over a 40m near vertical incidence (NVIS) channel with significant fading.

Somewhat to my surprise, the RADE V2 prototype worked first time!

Block Diagram of Prototype RADE V2 Receiver. The blue boxes are implemented with Machine Learning (ML). The “RADE Decoder” does most of the heavy lifting, taking off air QPSK symbols and converting them to features for the FARGAN speech synthesis stage. Not much classical DSP left…

This waveform has many new and novel features including:

  • Using ML to handle phase distortion from the HF channel, fine frequency offsets, and small timing offsets (normally performed using classical DSP).
  • No pilot or unique word symbols which is pretty novel compared to any other waveform I’ve ever seen, (saving bandwidth and power, framing overheads).
  • Low latency frames of around 40 ms (very low for robust digital voice, supporting rapid PTT turn around, faster sync).
  • A 800 Hz 99% power occupied bandwidth (3x bandwidth efficiency of SSB).
  • A PAPR of 3 dB through commodity SSB radio filters (this is pretty good for OFDM and compared to SSB, and we may be able to improve this further).
  • ML frame sync and fine timing (normally done with classical DSP, supports low overhead no pilot/UW operation).
  • Compared to RADE V1 (and most other modems), very little classical DSP code.

Here is a spectrogram (time flowing left to right) of the received signals:

From left to right Chirp – SSB – RADE V1 – RADE V2 received over a NVIS path.

You can see how narrow the V2 signal (far right) is, and it’s out of band energy falls off quickly. It also appears “brighter” – the narrower waveform means more power packed into a smaller bandwidth. The fading is quite obvious in both the V1 and V2 signals. Here are the received speech samples after decoding:

SSB
Decoded RADE V1
Decoded RADE V2

The decoded V2 speech sounds more or less the same as RADE V1 (and better than SSB), which is what I was aiming for in this “functional” test. Real world HF channels evolve all the time, so it’s tricky to perceive fine differences even with two signals close together in time – e.g. from the spectrogram you can see they are experiencing fades at different points in the sample. That’s OK for now – drilling down into speech quality improvements will come later.

Here are the “off air” RADE V1 and V2 signals. V2 sounds like an old school fax machine to me, and the fast fading typical of NVIS channels is quite obvious on both signals.

Off air RADE V1 (first) and V2 (second) signals. The fading is easy to hear.

On a subsequent transmission I could hear (and by observing the metrics see) a few issues in the V2 prototype. This is expected as I took a few short cuts to get this rough V2 prototype on the air ASAP to support the functional test. Now that we know the many novel techniques in RADE V2 actually work in practice, we can start carefully tuning each subsystem to optimise performance.

Fine Timing

The OTA test samples I collected suggested I needed another look at fine timing. So this month I spent time working on the math, simulation, and training code. The fine timing algorithm consists of some initial DSP which extracts “features” which are fed to a small ML network. This outputs a fine timing estimate (delta in the block diagram above) that tells us the best time to sample the received OFDM symbols

Here are some figures that show the fine timing estimator in action. The input signal is a RADE V2 signal with fast fading at a SNR of 0dB (sample below). This is a tough example – it’s really hard to even hear the RADE signal at this SNR, however from the plot below you can see the ML producing good results. The plots have time (in symbols) on the x axis, and the fine timing estimate (a number between 0 and 159) on the y axis.

The correct answer (90 +/- 8 for this simulation) bounces about as the fading channel is modeled by two paths with a delay that is 16 samples (2 ms) apart. Some times one path is stronger, sometimes the other path (16 samples delayed) is stronger.

Note the spurious value at the start of the ML (and also DSP) output. This can be viewed as a synchronization or acquisition delay. For this sample it’s about 12 symbols or 240 ms long. Some more work required to see if we can reduce this, to speed up acquisition.

Simulated received signal at the input to the fine timing estimator, a RADE V2 signal with fading at 0 dB SNR
Fine Timing DSP Feature Extractor output – the correct answer (90 +/- 8) is “in there” but a lot of crazy values
Output from ML Network – all cleaned up and we have our correct answer (90 +/- 8) (most of the time). Note spurious output at the start, the ML takes 240ms to synchronise – we can hopefully improve that.

FreeDV at the JARL Ham Fair 2025

This is a guest post by Kanda-san, JH0PCF. He and Matsui-san JH0VEQ attended the Ham Fair and discussed FreeDV and RADE. Here is a summary of their fine work at the Ham Fair. Thank you Kanda and Matsui for helping us promote FreeDV – we have noticed that RADE is very popular in Japan so you are doing a great job!

Kanda writes:

On August 23rd and 24th, the Japan Amateur Radio League (JARL) hosted Ham Fair 2025 at Ariake GYM-EX, a facility built for the 2020 Tokyo Olympics. We were able to borrow a portion of the JARL Tokyo branch’s exhibition space to hold a FreeDV demonstration and give a 50-minute lecture on the main stage on the appeal and practical application of FreeDV, a digital voice communication system that can be used over HF.

During the lecture, I, JH0PCF Kanda, explained operation and configuration, introducing the people involved in development, and JH0VEQ Matsui provided a detailed explanation of the RADE V1 specifications.

Many attendees were interested in trying FreeDV for the first time, and they were enthusiastic about the setup process and were amazed by the excellent sound quality in RADE mode.

Hiroyuki Kanda JH0PCF
Yuichi Matsui JH0VEQ

FreeDV Demo

Mooneer’s FreeDV Update – July 2025

Due to stuff happening in my life outside of FreeDV/ham radio, not much progress was made this month. The good news is that version 2.0.1 was released a few weeks ago, which contains a lot of bugfixes reported by users since 2.0.0 was released. Additional bugfixes have gotten into the tree since that release:

  • Incorrect sorting behavior for the SNR field in the built-in FreeDV Reporter client was fixed: Basically, it was incorrectly using text sorting instead of numeric sorting.
  • A compiler error in the FreeDV 2.0.1 tarball was found and fixed.
  • Microphone/speaker volume can now be adjusted from the main window (no need to go into the Filter window to do so now).
  • General performance was improved.

I also worked to organize a few hams in the southeastern US to begin a weekly FreeDV net. This net is currently every Tuesday at 2200/10PM Eastern (0200 UTC) and has already seen success: 23 hams checked into the most recent net. Given the high interest in FreeDV, other nets centered around the rest of the United States could have similar (if not more) success.

This coming month, I’m going to begin preparing for FreeDV to attend Pacificon up in northern California in October. I am also going to give some virtual talks to various ham clubs in the interim, as well as hopefully be able to get back into a bit more development.

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, 2025" --before "Month 31, 2025 23:59:59" --all