Automatic signal classification

edited March 2020 in KiwiSDR Discussion
An interesting attempt to classify demodulated signals by using audio fingerprinting of known samples is published by Jose Rueda (http://jcrueda.com/?p=916). It is based on a Python program called Dejavue which is meant to recognise songs from just "listening" to a small fragment. A good explanation is in the program description at ( http://willdrevo.com/fingerprinting-and-audio-recognition-with-python ).

This looks like a great idea, but trying this out on live signals from a Kiwi SDR gives rather low accuracy and a lot of false captures (mis-identification). This perhaps is not surprising because of the large amount of QRM and QRN mixed in with the audio signals. In addition filter bandwidth, gain and center frequency chosen for demodulation can make identification more difficult. It may be worth an attempt to use live recordings from the Kiwi as "known samples" to replace the mostly high SNR sample data that Jose extracted from the sigidwiki.com database.

Another route would be to use deep learning based signal classification and train a Convolutional Neural Network (CNN) using a much larger set of sampled data that would covering a wide range of SNR's and other variations. This would involve a lot of work though.
Aside from demodulated data as input the IQ datastream could be used to also classify the modulation type. Using either Tensorflow or Python Keras deep learning networks by Randaller shows some promising results ( https://github.com/randaller/cnn-rtlsdr ).

It is still early days for BB-AI adaptation into the Kiwi project but it seems the AI would be quite capable for this type of classification job.
Probably some folks on this forum have already looked at this and are willing to contribute ideas, code and results.
Anyway I just bring up auto signal classification as one of the many possible further development directions that would be unique.

Best regards, Ben
KA7U

Comments

  • edited March 2020
    The article you site is really nice page that explains the process in more detail.
    https://willdrevo.com/fingerprinting-and-audio-recognition-with-python/

    This looks like the "real deal" to me and could be extended in a number of exciting ways.
    Imagine being able to hit a "send sample to Dejavu" button that sends 5 seconds audio up to a Dejavu server out on the net.
    A couple of seconds later, the signal type is identified.
    This could be a very useful tool for signal identification, and in any case is just some flat out awesome technology!
Sign In or Register to comment.