Thanks to the Realtek 2832U I'm just discovering the world of Software Defined Radio. There are a lot of signals I'm able to pick up with this device, but identifying them is not always easy and cannot be done automatically.
When scanning for radio transmissions, I can look at a waterfall plot and see whether a broadcast is AM, FM or a handful of digital modes I have learnt to identify, but this is slow and error prone. I am wondering whether there is a way to automate this.
What I am after is an algorithm to examine the block of RF spectrum that has been digitised, to identify any signals along with their transmission modes. For example, in a particular part of the spectrum it might identify three broadcasts, two that are FM and one that is a POCSAG data stream.
I am thinking that for this you would need to generate some sort of signature for each detected signal, and then compare that to a list of known modulation types. Is it possible to generate a signature like this, taking into account the different amplitudes (signal strength) that result from varying distances to the transmitter? The signature (i.e. an identifying number) would need to be the same for all instances of that signal - for instance, each consumer FM radio station would have the same signature.
I am not really sure where to start, or how to deal with the bandwidth ranges involved (some signals are narrow and close together, others are very wide.) I'm also unsure whether you would have to pick out strong signals first and only process those (losing weaker ones) or whether you would examine the spectrum uniformly regardless of the power level at that particular frequency, discarding any frequencies that matched the signature for "no signal present."
The reason I am asking is that I would like to write a program that can tune the radio to a given frequency and then display all the transmissions it picks up, decoding them all automatically where possible. In order to do this, it must be able to identify signals in enough detail to demodulate them.