Forum: GNU Radio Fun with filter banks - grab many NBFM signals at once

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Cec0a4bf0e0575f3a3171892e6097e59?d=identicon&s=25 Johnathan Corgan (Guest)
on 2006-06-09 18:55
(Received via mailing list)
Here is a quick and dirty app I cooked up to grab a slice of spectrum
and simultaneously demodulate NBFM and create .wav files for each of an
equally spaced set of channels.

In other words, you can grab a MHz of spectrum, specify 25 KHz centers,
and get .wav files of all the audio transmissions on each center
frequency (using NBFM modulation.)

The start and stop frequencies, channel spacing, channel filter
parameters, demodulated audio filter parameters, and final audio output
file rate are all configurable (though none are checked for sanity at
this point.)

The heart of the app uses gr.analysis_filterbank to channelize a swath
of spectrum, then attaches an FM demodulator to each output channel.

As almost no resampling is done, there are a few restrictions in usage:

The difference in the start and stop frequency must be a possible
decimated output rate of the USRP.  So you can grab a MHz or two or
800K, but not, say, 625K of spectrum.

Furthermore, the spectrum width must be an even multiple of the channel
spacing.  This complicates things, as it ultimately requires that the
channel spacing be an integral divisor of the USRP ADC rate.  This
means, for example, you can do 20K or 25K centers, but not 15K centers,
common in the ham bands.

The audio output from the low pass filter is resampled to equal the
specified 'output-rate' parameter.

Finally, the output files will contain the audio transmissions
interspersed with all the white noise in between transmissions, unless
you apply the "squelch skipping" patch mentioned a couple days ago.
This updates the simple_squelch_cc block to optionally drop samples
instead of outputting zeros when the signal is below the power
threshold.  The result in this case is that the final audio files have
all the inter-transmission silence/white-noise removed.

Here is an example command line to grab 464.0 to 465.0 MHz from
daughterboard B with gain of 70, set the channel squelch level to 0 db,
demodulate 40 channels at 25 KHz centers, use a channel bandpass filter
of 8000 KHz (one-sided), an audio filter of 3 KHz, and create output
files resampled to 8000 sps:

./channelizer.py 		\
	--rx-board	      B \
	--gain		     70 \
        --lower-freq     464.0M \
	--upper-freq     465.0M \
	--channel-rate    25000 \
	--channel-pass     8000 \
	--channel-stop    10000 \
	--squelch	      0 \
	--audio-pass       3000 \
	--audio-stop       4000 \
	--audio-rate      25000 \
	--output-rate      8000

The sox program is then be used to convert the output files into .wav
format.

Enjoy.

-Johnathan, AE6HO
63d6de710dcc83e3c19af98ab6c401d7?d=identicon&s=25 Marcus Leech (Guest)
on 2006-06-09 23:45
(Received via mailing list)
Johnathan Corgan wrote:
> Here is a quick and dirty app I cooked up to grab a slice of spectrum
> and simultaneously demodulate NBFM and create .wav files for each of an
> equally spaced set of channels.
>
> In other words, you can grab a MHz of spectrum, specify 25 KHz centers,
> and get .wav files of all the audio transmissions on each center
> frequency (using NBFM modulation.)
>
>
Sounds groovy.

The FBI would now like to talk to you about deploying the new "lawful
intercept" technology you've
  so kindly built for them :-) :-) :-)

Examples like this are precisely why SDR is so cool.  Doing this in
hardware would be many $$$$, and I'm
  certain that there's commercial equipment out there, costing thousands
of dollars, that does precisely what this
  cute little Gnu Radio application does.

Were it not for the "illegal along a couple of dimensions", you could
tune this to the cellular bands and record
  conversations.  But I'm certain that the FBI would always get a
warrant before they did such things.  Unlike
  the NSA, which doesn't need one :-)
Cec0a4bf0e0575f3a3171892e6097e59?d=identicon&s=25 Johnathan Corgan (Guest)
on 2006-06-10 00:40
(Received via mailing list)
Marcus Leech wrote:

> Sounds groovy.

Movie trivia--where does this come from: Groovus!

> Examples like this are precisely why SDR is so cool.  Doing this in
> hardware would be many $$$$, and I'm certain that there's commercial
> equipment out there, costing thousands of dollars, that does precisely
> what this cute little Gnu Radio application does.

It is pretty cool, and lots of fun to work with.  GNU Radio has all the
pieces a radio experimenter needs and you don't even have to snort
solder fumes to get it working (Matt has already snorted enough for all
of us on the USRP.)

I'm pretty new to the code, so I'm hacking up these little apps as much
for the learning as for the actual functionality.  Fortunately I have a
long history with Python, C++, wxPython, cvs, autotools, etc., so I
really can focus on learning the GNU Radio stuff.  If others can make
use of my experiments, all the better.

> Were it not for the "illegal along a couple of dimensions", you could
> tune this to the cellular bands and record conversations.

Well, there is nothing to listen to anymore with scanners since AMPS
will be officially dead in a few months, and then what remains is all
TDMA/GSM/CDMA.  And the FBI/NSA already has the tech they need to
monitor these over the air...

-Johnathan
This topic is locked and can not be replied to.