CW (morse) decoder extension in KiwiSDR [added in v1.224]
Hi, I have been looking everywhere but there seems to be no "integrated" extension in KiwiSDR do decode CW transmissions... I found several video tutorials how to decode CW via virtual audio cable but building dedicated extension directly into the KiwiSDR would allow to decode CW on every web browser on any PC.
Is there any project to add CW decoder as an extension?
Comments
This looks basically a simple 3 step process to do it:
https://stackoverflow.com/questions/34747693/how-do-i-get-babel-6-to-compile-to-es5-javascript/34747852#34747852
Just requires wiring up npm, the package manager for node.js to fetch this.
EDIT: Sorry, found it myself (at least the one benson mentioned): https://github.com/scp93ch/morse-pro/blob/master/src/morse-pro-decoder.js
Any reason to avoid those new JavaScript features, BTW? The vast majority of them are covered by way more than 90% of currently used browser versions.
Trying to use more advanced Javascript and HTML/CSS/framework features with a large user base using a wide variety of browsers has been a problem. I added some contributed code sometime back. My email inbox started filling up because that code was using ES2015 "let" statements ("var" with different scope) that was failing on older browsers. Despite the fact that the feature compatibility charts on developer.mozilla.org showed good availability.
This situation is just as bad as when you have to include JS workarounds for early Internet Explorer versions. One of the many reasons I don't support IE at all!
Good job, it works surprisingly well, not quite as good as CW skimmer, but at least as good as some other (paid for) CW decoders I have tried.
I think this new extension will be of interest to the 'Numbers' Station spotters.
Regards,
Martin - G8JNJ
73, Bob
Ron - KA7U
When it does run it's quite effective. I've been reading CW on the 60m (10MHz) amateur band without any major problems.
Regards,
Martin - G8JNJ
Ron - KA7U
None of the CW decoding programs I have tried are particularly good and will certainly not beat a proficient human decoder.
However I think the new extension holds up well in comparison to some of the other reasonably well regarded offerings on the market such as CwGet and MultiPSK.
http://www.dxsoft.com/en/products/cwget/
http://f6cte.free.fr/
Maybe when get some spare time I'll try performing a comparison.
Regards,
Martin - G8JNJ
hence unusable...for now.
To switch OFF the extension the web page must be reloaded loosing time.
It is a young_extension and has a lot to learn ;-)
I prefer much more CW_GET as it copies every strenght of signal and of course human_cw
is very difficult to copy.
attacehd is a 1to1 commparison on a S1 signal
73
Attachments:
https://forum.kiwisdr.com/uploads/Uploader/d5/d7e9d9d62291b2f0640e2bfce4d494.jpg
Since the decoder code is not my own I'm not sure I can do much about it. I've noticed that its "training" time to determine wpm is longer than the periods during ham contest exchanges. And if it its error correction procedure fails it assumes the wpm has changed and restarts the training. This is not ideal. For ham rag chews or long-period utility transmissions where the signals are strong with little fading it seems to work fine. I've run some simultaneous comparisons against the decoder in fldigi which is marginally better for these cases.
So there is good reason you pay for decoders targeted at the ham market. Those developers have invested considerable effort in optimizing their code.
I'm not quite sure what level of performance folks were expecting for 'free' ?
It seems good enough to me. I can decode most morse signals reasonably well if they register >S4 on the signal strength meter, I suspect that CwGet performs slightly better because it has more user adjustments to play with.
I've been experimenting with the KiWi extension and have found that selecting a narrow <50Hz CW bandwidth and then adjusting the AGC threshold for best results seems to be quite effective. Too low a threshold produces too much background noise and generates garbage like strings of EEEEEEEE and too high a level results in only decodes from very strong signals. A lot depends upon the noise floor of the KiWi in use. Reducing the AGC delay to 50ms also helps with fading signals.
I suspect that some software tweaking of the level into the decoder may be required to optimise the extension. Maybe a simple graphical indication of the CW detection (slice) level could be provided to help fine tune reception.
Regards,
Martin - G8JNJ
A "train" indicator that lights when cw speed training is active.
Checkboxes for the threshold correction and word space correction options that were in the code. When threshold is checked signals around S3 are better decoded. A lot of times adjacent words are missing inter-word spacing. Changing the word space algorithm can improve that situation.
The reset button will force the code to reinitialize and start over.
I was wrong in my earlier comment about training. The dot and dash lengths during training are saved up. So once the wpm has been determined the dot/dash history is decoded at the computed wpm and you'll see a long burst of decoded characters appear. If the signal is strong enough (and the background level quiet enough so the total S/N is reasonable) then even contest traffic will decode.
Ron
Thanks for all your hard work.
Unfortunately the v1.227 CW extension doesn't open on my iPad, the other extensions are OK, I suspect it's the same problem as previous times.
Regards,
Martin - G8JNJ