DJ5CW's Ham Radio Stuff


All kinds of things too precious not to share, in short articles. Constantly under construction or destruction. Note that code snippets are usually working minimum examples (often stripped of extra features). If you plan to use and of the code for anything serious, you may want to contact me. It's likely that I can provide you with some updates and good (?) advice.

Fabian KurzHam RadioStuff

Morse Distance Calculator

Impatient? Here's the direct link.

On the CW Ops mailing list, Tim/N3QE started a discussion titled Measuring "nearness" of callsigns in Morse Code space?.

Are there any measures for "code space" difference between callsigns in Morse

For example, "different by only one element" (nothing<->dit<->dash) would be
one possible measure. Most of these would change the length of the callsign but
if the change happened at the beginning or the end then you might not notice
that something was missing.

Another possible measure would be "different by bit elements but same in
length". For example if there's a deep fade in the middle of a "T" then it
sounds like an "I". Or a longer fade in the middle of a "O" could make it sound
like two T's "T T".

Super Check Partial does callsign nearness in alphabet space, not morse-space.
And I'm thinking that measuring the difference in morse-space might be more

Any ideas or brainstorming?

Tim N3QE

My little contribution to this is a PHP script which calculates the Levenshtein distance of callsigns in Morse "samples":

> Any ideas or brainstorming?

the Levenshtein distance can be used for this. It's a metric to
measure the difference between two strings.

However applying it directly to callsign letters would only give a
very approximate measure of similarity when we're concerned about
Morse code.

Using Dits and Dahs instead of letters already brings us closer, e.g.

-.- --... ... ...-   K7SV
-.- --... ... ...    K7SS

only has a distance of 1 whereas for example K7SQ has a much greater

Even better, we break down the code into time samples which would then
give a reasonably small error distance for errors where two dits are
merged into a dash, like K7SV <-> K7AV.

--- - ---   --- --- - - -    - - -   - - - ---    K7SV
--- - ---   --- --- - - -    - ---   - - - ---    K7AV

I put this to the test with a small PHP script which can be found

You can enter any callsign and it will be tested against all calls of
the current MASTER.SCP file (38k callsigns). Hovering over a callsign
visualises the difference.

It only shows the callsigns up to a Levenshtein distance of up to 10,
but you will see that really similar calls are usually not found
beyond a distance of 4.

Fabian, DJ1YFK

P.S.: The source code is available and linked from the page.

Added: 06-Dec-2018. Last modified: 06-Dec-2018.

Fabian KurzHam RadioStuff