Name That Unknown RF Signal With A Little FFT Magic

Time was once that the amateur radio bands were an aurally predictable place. Spinning the dial up and down the bands, one heard familiar sounds – the staccato of Morse, the [Donald Duck] of sideband voice transmissions, and the occasional flute-like warble of radioteletype signals. Now, the ham bands are full of exotic signals encoding all manner of digital signals, each one with a unique sound and unique demodulation needs. What’s a ham to do?

Help is on the way. [José Carlos Rueda] has made progress toward automatically classifying unknown signals by modifying a Shazam-like app. Shazam is a popular smartphone app that listens to a few seconds of a song, creates an audio fingerprint of it, and searches a massive database of songs for a match. [Rueda] used a homebrew version of the app to search a SQL-lite database of audio fingerprints populated not with a playlist of popular music, but with samples from every known signal type in the Signal Identification Wiki. The database contains hashes for an FFT of each sample, which can be easily searched. With a five to ten second sample of a signal, captured either live over a microphone or from a recording,  he is able to identify the signal automatically.

Whether it be the weird, dissonant wail of PSK-31 or the angry buzzing of PACTOR, the goings-on across the bands no longer have to remain a mystery. We really like the idea here, and wonder if it can be expanded upon to visually decode signals based on their waterfall signatures using TensorFlow. There are some waterfall examples in [Danie Conradie]’s excellent article on RF modulation that could get you started.


27 thoughts on “Name That Unknown RF Signal With A Little FFT Magic

  1. You wonder if you could use machine learning to solve something that’s more elegantly solved with a simpler, more thoughtful approach? Of course you can, that’s what half the field of computer science is doing these days.

    1. If you can implement a solution in a feed forward neural network (one that is not using memory functions) you can build that network as an optical filter and do complex recognition tasks as fast as it takes the photons to traverse the stack of optical filters, i.e. effectively instantly and while using a tiny amount of energy. This is the end goal, not continuing to run them on turing machines by pushing electrons around.

    2. Nielsen could use this to replace their current PPM meter system. Currently they send data on modulated 1-3kHz tones. It makes the music sound like a big sheet of metal is rattling along with it and voices sound like they’re talking into a metal pot. Anything to replace Nielsen’s eCBET and Telos Alliance’s Voltair!!!

    3. From a retired naval officer and former tech, KISS. One takes a spectrum snapshot and compares it a library if known signals and using image compare, you can narrow it down.

      The differences in any standard mode can be equipment or operator that the fact cannot show.

  2. So once it, the signal be it CW, SSB, RTTY, &c., can it be directed to program that will read it as there are CW readers for HAMs that are to lazy to learn Morse akin to making change like inept high school store clerks are nowadys. You know what I mean. Thanks, Jim AA0PP

    1. There’s a difference between the elementary mathematics required to “make change” and the whole new skill that is Morse. Your own radio authority has determined that Morse is no longer a required skill, so take it up with them if you think “kids these days” should have the skill.
      Personally I think you kids these days should be casting bronze arrowheads, but you just don’t want to do it!

      1. It’s 1950’s thinking: “it’s the person’s fault that they have an inability to do ${thing}.”

        Some people have issues with social interaction:
        – 1950’s thinking: the person is just being difficult!
        – today: Ahh, this person might have ASD, ADHD, etc…

        Some people have problems reading:
        – 1950’s thinking: the person is just stupid!
        – today: Ahh, this person might have dyslexia, myopia, etc…

        Some people have problems with motor control:
        – 1950’s thinking: the person is “spastic”!
        – today: Ahh, this person might have Cerebral palsy, etc…

        Some people have problems decoding Morse code:
        – 1950’s thinking: the person is lazy!
        – today: Ahh, this person might have tinnitus, auditory processing delay, etc…

        Sometimes the older thinking is right, but more often there’s an underlying condition that can explain some of it and that fundamentally, it isn’t that person’s fault that they can’t do ${thing}. In the latter case, blaming them for their apparent failings does nothing. Understanding the problem someone is facing usually works better.

        Sometimes these “failings” are a problem, sometimes they are not.

        CW has its advantages, among them bandwidth efficiency, simplicity and good weak-signal performance, however I fail to see how it is better at calling a farrier to a distant check-point at a horse riding event or informing us how many bicycle have past a given rest stop; than the FM system that Brisbane WICEN presently uses.

        Voice modes (FM, SSB, FreeDV) are far less likely to get me in trouble with police for “operating a vehicle without due care or attention” than “text”-based modes (CW, RTTY, PSK*, etc…).

        I’ll leave the bicycle-mobile CW to LY2KW, FM and SSB work just fine for me thanks!

        1. Thanks for that, I have a documented brain injury and due to that injury can not learn CW despite many attempts, and holding a Technician license for 27 years.

          I really wanted to learn CW because I was very interested in weak signal VHS work and tried off and on for years, utilizing all the different ways to learn it, no way, and it’s quite frustrating.

          And yes, old grumpy Hams still deride me for not knowing CW, it’s a sad testament to the sorry state of Ham Radio.

          73, ke6ebz

    1. Thanks for that clue. It’s based on maximizing the hash collisions rather than minimizing them as other applications require. It occurred to me that this is also what facial recognition software tries to do.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.