Wednesday, August 27, 2014

Ultimate CW decoder

Without and with Bayesian decoding of the same signal.
For a while now AG1LE Mauri has been working on a ultimate morse decoder based on the FLdigi software . He has been very seriously studying all kind of methods. Since he contacted VE3NEA the author of the populair CWskimmer he has decided to go for the Bayesian method. You can read all about Mauri's work on his blog. Till now Mauri did only publish the work for use in Linux operating systems. But since there are many that still use Windows there is now a "alpha" test version for that OS as well. Mauri needs amateurs that will test the software and if possible give him some comments or input for new ideas and improvement. He also needs people that can develope software to solve any problems that occur developing the program.


DM780 - FLdigi up without Bayesian decoding
How does it work practically? Well, I installed this first Windows version and tested it first on the web SDR of Twente university. It did decode well, even weak signals. Not perfect but readable. But the real test would be a contest environment on a real hardware radio. Anyway, I didn't get the time to be on air when a contest was on but did test FLdigi with/without bayesian decode on against DM780 on the FT817. I tried decoding for a hour under different circumstances but this time I think DM780 won. Although DM780 has the FLdigi core I think it does a better job as FLdigi itself. I really like the autotune function of DM780, something I couldn't find on FLdigi. I made a screenshot so you can compare yourself. I think Mauri has still a lot to do, I hope he can make the ultimate CW decoder in the end. But it will never be as good as the human ear I guess.

Al een tijdje is AG1LE Mauri een stukje software gebaseerd op FLdigi aan het ontwikkelen dat uiteindelijk de ultieme morse decoder zou moeten worden. Mauri heeft allerlei mogelijkheden bestudeert. Maar sinds hij contact heeft gehad met VE3NEA de auteur van de bekende CWskimmer is hij de weg van de Bayesian methode gaan bewandelen. Je kan er van alles over lezen op het blog van Mauri. Tot nu toe heeft hij nog altijd zijn werk beschikbaar gemaakt voor het linux OS. Maar omdat veel mensen nog met Windows werken is er nu ook een "alpha" test versie voor dit OS beschikbaar. Mauri heeft meer input nodig om de software beter te kunnen maken en zoekt dus mensen die het willen testen. Hij heeft ook mensen nodig die hem helpen met programmeren om de problemen op te lossen die ontstaan tijdens de ontwikkeling.

Hoe werkt het in de praktijk? Ik heb deze eerste versie geïnstalleerd en eerst getest op de webSDR van de TU. Het decoderen ging prima, zelfs de zwakke signalen. Het is niet perfect maar wel leesbaar. Maar een echte test zou zijn in een contest situatie op een echte "hardware" radio. De tijd om in een contest te testen had ik niet maar wel heb ik FLdigi met en zonder Bayesian decode getest op de FT817. Ik heb ongeveer een uur getest onder diverse omstandigheden. Dit keer denk ik dat DM780 won. Alhoewel de decoder van DM780 in feite FLdigi is heb ik toch het idee dat DM780 het nog beter doet. Vooral de autotune functie van DM780 helpt geweldig en zoiets heb ik op FLdigi nog niet gevonden. Ik heb even een beeldscherm afdruk gemaakt zodat men het zelf wat kan vergelijken. Ik denk dat Mauri nog veel te doen heeft, ik hoop dat hij uiteindelijk inderdaad een ultieme CW decoder kan maken. Maar een menselijk oor verslaan zal denk ik nooit lukken.


11 comments:

Paul Stam PAØK said...

Hallo Bas, dat klinkt erg interessant. Ik ga eens op zijn site kijken. CWskimmer vind ik de beste CW decoding software tot nu toe. Ik gebruik het wel altijd in samenhang met mijn eigen oren. Ik check altijd of de software juist decodeert. ;-) 73 Paul

PE4BAS, Bas said...

Hallo Paul, CWskimmer heb ik helaas nog nooit goed werkend kunnen krijgen. Heel jammer want het lijkt er wel op dat het de standaard is op het moment. Deze testversie van FLdigi doet het (nog) niet zo goed. Althans bij mij niet. Maar het kan aan de instellingen liggen? 73, Bas

Angel M0HDF said...

I shall give that a try. I found Multipsk works very well with my SDR.
73 Angel M0HDF

ag1le said...

Hi Bas
Thanks for testing the new FLDIGI decoder and your post above. As you may have noticed CW decoding is a hard, multifaceted problem.

Alex VE3NEA who developed CW skimmer mentioned in email that he had spent many years and tested hundreds of algorithms before releasing a combination that he felt was good enough.

I am amazed how well skilled world class operators can copy CW. I looked at some CQWW CW contest logs, and operator error rates in copying CW in these contests are order of magnitude better than what my software can achieve. I have run my decoder against some audio recordings from these contests to figure out ways to improve accuracy. Achieving "human level performance" with CW decoders is a really difficult problem. We are nowhere near what best humans can do in this space.

I have spent also time to study different methods, both how to optimize signal processing side as well as testing different machine learning algorithms to find a combination that would work well in real life conditions. What works well in controlled "lab conditions" often fails miserable when exposed to real life, noisy and distorted (fading, QSB, speed/rhythm variations etc.) signals.

Current software version is still alpha release - the latest feature addition was the multichannel CW decoding capability. Any feedback or suggestions are welcome.

Thanks again for supporting my efforts.

73
Mauri AG1LE

PE4BAS, Bas said...

Hello Angel, tnx for your comment. I'll give multiPSK a try to see how it decodes. It has been a long time I tried that program. 73, Bas

PE4BAS, Bas said...

Hello Mauri, tnx for the comment. I really appreciate the work you do. And I hope you will continue programming. CW skimmer seems to be working fine for most people except for me as I don't get the program running on any computer. FLdigi has the advantage that it runs on several OS not only Windos like many amateurradio programs. O course we are all aware that it is a very first and experimental version. So I'm not disappointed at all. I can tell you that the multichannel decode does a fine job, at least at the TU webSDR. Any feedback or suggestions are better given at your blog. 73, Bas

Hans said...

Hallo Bas, alhoewel ik geen CW fanaat ben vind ik je artikel wel erg interessant om daar meer over te gaan lezen en mogelijk dat ik desoftware ook eens download om te kijken. Leuk artikel Bas! 73 Hans, PE1BVQ

ag1le said...

Hi Bas
I launched a "Morse Learning Machine Challenge" in kaggle.com last night. Within hours there is already quite a lot of activity, many people have downloaded sample Python code and datasets. We got even the first competitor (KR1LLR) signed up and posted two entries already.
For more details of this competition see http://ag1le.blogspot.com/2014/09/morse-learning-machine-challenge.html

73
Mauri AG1LE

PE4BAS, Bas said...

Mauri, I just finished a new post in this blog to promote your challenge. I think it is a smart idea. Hopefully it will end in a powerfull CW decoder. 73, Bas

PE4BAS, Bas said...

Hallo Hans, ben ook geen CW fanaat maar het is wel interessant. Want een programma maken dat CW een beetje correct kan decoderen is ontzettend moeilijk. Dat heeft er natuurlijk ook mee te maken dat er een menselijke factor in zit. 73, Bas

John AE5X said...

You CW8 posting - very funny! How many will believe it?

73,
John AE5X