Some interesting links

469 views
Skip to first unread message

Steve Haynal

unread,
Jan 9, 2021, 2:37:06 AM1/9/21
to Hermes-Lite
Hi Group,

I received a private e-mail with some interesting new-to-me links:

To learn more about SDR and DSP with Python:

Alternate FT8 decoders:

73,

Steve
kf7o

Alan Hopper

unread,
Jan 9, 2021, 1:49:38 PM1/9/21
to Hermes-Lite
Hi Steve,
thanks for the links, I'm always interested in alternative ft8 decoders, I have various unfinished and mostly barely started attempts to create a decode server.  Need to find a way to spend more time on this:)
73 Alan M0NNB
ps sorry for sending directly first

Steve Haynal

unread,
Jan 9, 2021, 3:29:56 PM1/9/21
to Hermes-Lite
Hi Alan,

I'm very interested in the performance of the ft8_lib. I was quite frustrated wrapping the Fortran with Python as Fortran keeps so much live state.

73,

Steve
kf7o

Alan Hopper

unread,
Jan 11, 2021, 12:41:50 PM1/11/21
to Hermes-Lite
Hi Steve,
I've had a very quick play with using ft8_lib in spark. I've only changed things to make it fit the spark codebase so the funtionality should be unchanged, in a quick test it produced almost the same number of spots as jt9.exe in level 1 and about 45% of the spots of jt9 level 3. I've not tried tweaking the various settings yet. I'll do some timings vs jt9, it appears fast and there are perf advantages to building it into spark.  It does not report snr which I'll have a look at as that is really needed for reporting.

73 Alan M0NNB

Steve Haynal

unread,
Jan 13, 2021, 1:26:29 AM1/13/21
to Hermes-Lite
Hi Alan,

Thanks for the update! Does ft8_lib lack support for various depths of decode?

73,

Steve
kf7o

Alan Hopper

unread,
Jan 13, 2021, 12:18:01 PM1/13/21
to Hermes-Lite
Hi Steve,
there is not a direct depth control but there are a few parameters that can be tweaked.  On a slightly longer run, wsjtx on depth 1 spotted 996 and ft8_lib 926 but was about 7 times faster. Some of the speed difference maybe the cost of lauching jt9 for each decode vs calling ft8_lib directly.  I shall offer it as an option in spark and will look at trying to improve the detection rate.  
73 Alan M0NNB

ron.ni...@gmail.com

unread,
Jan 13, 2021, 5:18:36 PM1/13/21
to Hermes-Lite
I noticed that ft8_lib uses kfft.  
But on my Raspberry Pi 4, pffft, compiled with -mfpu=neon, seems to run around twice a fast as kfft.
The licenses appear compatible, so I may attempt some surgery to see if swapping fft libraries inside ft8_lib boosts decode speed even more on Raspberry Pi's.
73,
Ron
n6ywu

Steve Haynal

unread,
Jan 14, 2021, 1:33:23 AM1/14/21
to Hermes-Lite
Pavel's ft8d for RPi also uses pfft.

73,

Steve
kf7o

Alan Hopper

unread,
Jan 15, 2021, 12:24:10 PM1/15/21
to Hermes-Lite
Hi All,
I did a little more timing, with the default settings a decode takes 43ms on an old I5 assuming you have cached the fft planning, the fft takes 17ms of that so there would be some gain with a faster fft. With settings tweaked to get close to wsjtx level 1 decode performance the time goes to 85ms , most time being spent in bp_decode. On the same machine wsjtx takes ~600ms on level 1.  I've replace some bits with spark dsp libs but the timings should be in the same ballpark with the unmodified lib.  I think it will take more than tweaking a few params to get close to the higher wsjtx detection levels.  As is, it should allow multiband skimming on much lower power machines.  The fft part is done in blocks so could be done as the signal is received rather than at the end which could flatten cpu peaks a little.

73 Alan M0NNB

ron.ni...@gmail.com

unread,
Jan 27, 2021, 5:25:49 PM1/27/21
to Hermes-Lite
Hi Alan,
Did you figure out how to get SNR reporting using ft8_lib?  I currently have it modified to use pffft instead of kfft, but only saw an improvement in decode speed of on the order of 10% on a Raspberry Pi 4.
73,
Ron
n6ywu

Alan Hopper

unread,
Jan 27, 2021, 6:05:34 PM1/27/21
to Hermes-Lite
Hi Ron,
I did a quick bodge for snr by averaging all the fft bins that the decoded signal covers, there is a bit of code that walks then anyway, I'm not looking at the wsjtx code so it is a bit tricky to know how this should really be done.  kiss fft has a simd mode that does 4 ffts in parallel, this might fit neatly with the way ft8_lib works and might be faster than pffft.  ft8_lib now works nicely in spark on pi4, decoding multiple bands of ft4&8 at once is now possible.
73 Alan M0NNB

Alan Hopper

unread,
Mar 14, 2021, 8:22:23 AM3/14/21
to Hermes-Lite
Hi Group,
just came across this  MSHV Amateur Radio Software | LZ2HV Amateur Radio Website  that appears to have various decoders from WSJTX converted to c++. I've not looked at the code but it might be another option for creating a decode server.
73 Alan M0NNB 

Mark Wild

unread,
Mar 14, 2021, 10:00:15 PM3/14/21
to Hermes-Lite
Hi Alan,
That would be an interesting option, especially for anyone wanting to use the HL2 as a transverter base, giving access to more protocols and especially those relating to meteor, aircraft and ionospheric scatter like MSK144, Q65 when its released etc.

Christo is pretty active in updating MSHV and is regularly on https://groups.io/g/MSHV

73 Mark G6DDX

Steve Haynal

unread,
Mar 16, 2021, 12:24:39 AM3/16/21
to Hermes-Lite
Hi Alan,

Thanks for the link. It does look interesting.

73,

Steve
kf7o
Reply all
Reply to author
Forward
0 new messages