The new beta version of WSJT-X by K1JT gives us access to another new digital mode called FST4.
There are some similarities to FT8: it consumes a similar bandwidth, it’s also a single-carrier FSK (GFSK-4, to be exact), transmission period is (by default) 15 seconds.
I’ve created two wav files using WSJT-X: one containing FT8 transmission (12.5 seconds of actual audio) and FST4 (just 9.5 (!) seconds – leaving over 5 seconds out of 15 second period to the operator). FT8 on top, FST4 at the bottom:
Just so you know – it’s not a laboratory setup, just a quick compare of an old, well-known mode with new and.. better?
I’ve created the following flowgraph in Gnuradio 3.8:
It can’t be simpler. It plays a .wav file, multiplies all of the samples with some predefined value – lowering the amplitude, then we add some random noise, and the noisy audio goes back out to an actual audio output, monitored by an instance of WSJT-X 2.3.
I’ve also written a simple Linux shell script to take care of running the flowgraph in the right time:
while [ 1 ]; do if [ date +%S == "29" ] || [ date +%S == "14" ] || [ date +%S == "44" ] || [ date +%S == "59" ]; then ./ft8_vs_fst4.py; break; fi; sleep 0.05; done
It starts playing the audio a second before period begins, so :59, :14, :29, :44. Convenient for testing.
Let’s start with the new guy first, FST4. I’m playing the recorded message round and round with constant noise level, and gradually increase the signal level by a factor of 0.001. Finally, the message gets decoded with signal level of 0.041.
It’s almost invisible in the waterfall – look at 1000 Hz:
Let’s see how FT8 decoder deals with such a weak transmission. I increase the amplitude to 0.050, then 0.055.. and still no decode. Even though some people would call the signal a booming one, by the way it looks:
Only when I reach amplitudes of 0.059 and 0.060, I get some decodes:
I’ve spotted an interesting difference between the built-in decoders: with FST4, WSJT-X gives me the decoded message about 10 seconds into the transmission period – lot of time for me to take some action before the next period. With FT8, decodes appear only during ~14th second. And it’s not that I’m running a Pentium III under the bonnet – it’s a semi decent i7-4702MQ.
The big one? FST4 is better. It’s quicker and it decodes with much weaker signal than FT8.
Obviously it’s just a simulation and it may not translate well to the real life conditions, but in theory, FST4 can decode a message transmitted with 30% less power than FT8 needs.
he difference between 100 W and 70 W is about 1.5 dB. Not much, huh? Still, enough to finish an FT8 QSO, where you missed it by just 0.5 dB 😉
Morning update: we’re talking about amplitudes (aka voltages) here, so the difference in dB is 20*log(0.059/0.041) = ~3.16 dB. ~30% amplitude reduction is equal to a drop in power of a half. That’s even more impressive. A difference between 100W (FT8) and 50W (FST4).
You can check it out on your own – I’ve posted Gnuradio 3.8 flowgraph, wav files (feel free to try your own!) and the terrible runner script in my Github repository: https://github.com/olgierd/ft8_vs_fst4. Get WSJT-X 2.3 from https://physics.princeton.edu/pulsar/K1JT/wsjtx.html.