this post was submitted on 21 Jun 2025
6 points (100.0% liked)

Amateur Radio

1657 readers
3 users here now

General amateur radio (ham radio) chat, questions, and news

founded 2 years ago
MODERATORS
 

Foundations of Amateur Radio

The other day Randall, VK6WR, encouraged me to get on-air. He described it like this:

"There is a mystery signal on 40m that you can try your new Universal Radio Hacker skills on. It appears to be a FSK signal separated by 7kHz with the two signals at 7.0615 and 7.0685 MHz. Each of them on their own sounds a bit like a Morse signal, but my CW decoder decodes junk. But if you can see it on a spectrum scope, it is clearly FSK because either one of them is on at any time."

He went on to say: "You'll need an SDR to receive the signal given the separation, but could be a fun investigation!"

Having just discovered "Universal Radio Hacker", a tool that can help you decode radio signals, that sounded like something I'd love to have a go at. Unfortunately, after the demise of my main workstation last year, my current set-up doesn't allow me to do such recordings, but Randall, ever the gentleman, provided a recording of the signal.

He writes: "This was captured with gqrx demodulating the signal as SSB audio with the VFO tuned to 7.060, so both "signals" are there, one very low freq and one very high freq."

If you're curious, I've uploaded the file as it was shared with me to my VK6FLAB GitHub repository under "signals".

Over the next two days I spent my time attempting to decode this signal. I opened up Universal Radio Hacker and spent delightful hours getting precisely .. nowhere. Some of that is absolutely my unfamiliarity with the tool, but this is a great exercise in learning on the fly, where truth be told, I tend to live most of my life.

It wasn't until several hours later that I decided I should at least listen to the audio. To my ear it sounded like 25 WPM Morse Code, but being still in the learning phases, while my brain was triggering on the sequences, decoding wasn't happening. Of course I could cheat and forward the audio to one of my fellow amateurs, but the actual message wasn't really the point of the exercise, at least not at this stage.

Instead I fired up "multimon-ng" which has an in-built Morse decoder. I spent some hours doing more Yak Shaving than I was expecting, but even then, I still didn't get more than gobbledegook out of the process. I used "Audacity" to shift one of the signals by one wavelength and mixed them together. This allowed me to reduce the noise significantly, but still none of my tools did anything useful. In case you're wondering why, if you have a tone and noise and shift one signal by the wavelength of the tone, then mix them, the tone adds to itself, but the noise, random in nature, is just as likely to add as it is to subtract, so in effect, you're increased the signal to noise ratio.

After multimon-ng failed, I tried an online Morse decoder, which gave me all manner of text, but none of it made sense to me. Of course it's possible that this is someone rag chewing in a different language, but I couldn't make any sense of the thing.

I did come up with some issues that prompted me to create the signal repository. I realised that I didn't have any known "good" signals. Previously I'd tried decoding a sample FT4 signal, but that went nowhere, mainly because the signal was noisy.

So, what I'm going to do over the next couple of weeks is create some clean, as-in, computer generated, known signals, and add them to the repository. The aim is to have a known good starting point to learn from. In software development this technique is often used to limit the number of unconstrained variables. In our case, if I generate a known good Morse Code signal, then I can learn how to use Universal Radio Hacker to decode it, so when I come across an unknown signal, I can use the techniques I learnt to attempt to decode it.

Feel free to make pull requests with known good signals yourself. RTTY, PSK31, WSPR, FT8, etc. Feel free to include non-amateur modes.

One thing, I'm not looking for off-air recordings of signals, yet, that can come later, right now I need signals that are pure, as-in, as I said, computer generated. Of course at some point, perhaps sooner rather than later, I'll discover that generated signals are no easier to decode than off-air recordings, but that's for another day.

Meanwhile, you too can play. Download one or more sample files and decode them. Let me know what you learn.

I'm Onno VK6FLAB

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 1 points 18 hours ago* (last edited 16 hours ago) (1 children)

Very interesting! I've installed it and attempted to look at the mystery signal, but I cannot make inspectrum show anything other than red. I think it's sampled at 225144, but that's speculation based on the filename. Any thoughts?

Source file: https://github.com/vk6flab/signals/tree/main/recorded

Edit: Update, once I played with the file format, testing c8, c16 and c32, I finally got something worth looking at. It appears to be c16 and there look to be 4 bits per symbol.

Edit 2: If I use URH, 2500 samples per symbol, I can decode bits as FSK and get the following string:

7cdc5d32a92284d1f5a53f01b512f2c4663860ec2b273abfdb3c6b90f77a0816f9b8ba65524509a3eb4a7e036a25e588cc70c1d8564e757fb6746b90f77a002df37174caa48a1347d694fc06d44bcb1198e183b0ac9ceaff6cf1ae43dde8205be6e2e9954914268fad29f80da897962331c307615939d5fed9e35c87bbd040b7cdc5d32a92284d1f5a53f01b512f2c4663860ec2b273abfdb3c6b90f77a0816f9b8ba65524509a3eb4a7e036a25e588cc7

[โ€“] [email protected] 1 points 12 hours ago* (last edited 12 hours ago)

I used inspectrum mainly with raw IQ-files from gqrx, so the c16 format is indeed correct.

For me, the great thing about the tool is that it is very visual. (*)

It allows you to get an idea what kind of signal you are looking at (on-off, FSK, PSK, ...) and get a rought idea about timing. That then gives you information to better apply the proper filtering in urh and work from there on. It also allows you to see any "abnormallities" .. e.g. I once came across a signal that sounded to be two-tone FSK, but after closer investigation, you could see that the two tones overlapped (in the time domain).

Concerning the bitstream you demodulated, I am not at all an expert in SIGINT, but I guess we can do some basic research like search forrepeating pattern (that could indicated a start-of-frame indicator), maximum number of consecutive all-0 or all-1 (that can indicate bit-stuffing) etc. The problem with unknown digital signals is that the number of variations of different processing-techniques is almost infinite: scrambling (not encryption, but scrambling) , FEC, ...

(*) The visual element of inspectrum is the reason why I use it in a workshop I give. The workshop I do is similar to the one done by Mike Walters that is on youtube: https://www.youtube.com/watch?v=tGff31uGXQU