Morse code signal analyzer
The ordinary decoder gives you a result. When it is wrong you stand there not knowing why. This page shows the intermediate steps.
Spectrum
Envelope and threshold
Segment by segment
| No. | State | Length (ms) | Units | Read as |
|---|
Four steps, and each can go wrong
- Find the tone. A Goertzel filter measures across a range which frequency is strongest. With two stations in the recording it finds the louder one - not necessarily the one you wanted.
- Build the envelope. How strong that one frequency is over time. The window sets the resolution: too coarse swallows short dots, too fine turns noise into structure.
- Set the threshold. From what level the tone counts as on. Automatically by Otsu; with a varying level, by hand is often better.
- Estimate the unit. The segment lengths give the length of a dot - and everything else follows from it.
The table is where the value is
Below, every segment appears with its length and its multiple of the estimated unit. A dot should sit at 1.0, a dash at 3.0, a character gap at 3.0, a word gap at 7.0.
Anyone seeing a 2.1 there knows immediately what is wrong. 2.1 is neither dot nor dash - either the unit is misjudged, or at that point the sending really was uneven. Segments off by more than thirty per cent are highlighted.
What it computes with
The same functions as the ordinary decoder. Here they are simply made visible one at a time instead of being computed away in sequence.
Which also means: what this page shows is exactly what the decoder sees. If the segments are uneven here, no other result is waiting there.
Frequently asked questions
-
Which files can I load?
Anything your browser can play - WAV, MP3, M4A, OGG. Decoding happens in the browser; the file goes to no server.
-
I have no recording.
"Generate a sample" builds one with a little noise added. A perfectly clean sample would not show what the controls are for.
-
The result is nonsense although the recording sounds fine.
Check the tone in the spectrum first - the amber bar must sit on the peak. Then the threshold: in the envelope it should lie between the noise floor and the tone level, not inside either.
-
Why is the window adjustable?
Because it sets the resolution. At 40 WPM a dot is 30 milliseconds; with a 20-millisecond window almost nothing of it survives. At 8 WPM a fine window is merely extra work and turns noise into structure.