Forum: GNU Radio Scanoo_rx: New GUI, Center Freq Hopping & SSB Modulation

C2ed5433862330f8d76de8eb807851ca?d=identicon&s=25 Mike Jameson (Guest)
on 2014-06-09 18:33
(Received via mailing list)
Attachment: scanoo.com_rx.grc (100 KB)
Hi all,

The latest version of my scanoo_rx GRC SDR scanning application is now
available via GitHub.  Please star the project if you like it and report
bugs by creating an issue on the GitHub page.

Quick overview of the features:

   - AM, NBFM, WBFM, LSB & USB modulation.
   - Spectrum sense mode with center frequency hopping.
   - Frequency lockout.
   - FFT & waterfall displays.
   - Adjustable squelch.
   - Auto saves settings to '.scanoo'.
   - Selectable channel bandwidth.

GitHub URL:

https://github.com/m0mik/scanoo

Direct link to the GRC file:

https://raw.githubusercontent.com/m0mik/scanoo/mas...

BTC Donation Address: 1LCMXmjLipzoiWD5Ahc6kBkJQwQNRLbjGa

Mike
D2595f4322a69535ddb92617d17f0eef?d=identicon&s=25 Louis Brown (madengr)
on 2014-06-10 18:51
(Received via mailing list)
Mike,

Can you give a general overview of how the program works, and maybe what
you
are doing with the FFT and IFFT, and how you accomplish the tuning via
mouse
click in GRC?  I assume this is entirely done in GRC and there was no
modification of the generated Python?

Thanks,
Lou
KD4HSO



Mike Jameson-2 wrote
>
> --
> Mike Jameson M0MIK BSc MIET
> Email:

> mike@

> Web: http://scanoo.com





--
View this message in context:
http://gnuradio.4.n7.nabble.com/Scanoo-rx-New-GUI-...
Sent from the GnuRadio mailing list archive at Nabble.com.
C2ed5433862330f8d76de8eb807851ca?d=identicon&s=25 Mike Jameson (Guest)
on 2014-06-11 14:35
(Received via mailing list)
Lou, thanks for your interest.  Yes the entire thing was made purely
with
GRC and there was no modification to the generated Python.  All that is
required to run the scanoo_rx GRC file unmodified is a UHD compatible
device and an installation done with "./pybombs install uhd gnuradio".
Johnathan's GNURadio Live DVD should work too -
http://gnuradio.org/redmine/projects/gnuradio/wiki... .

For reference, here is a screenshot of the scanoo_rx GRC flowgraph -
https://raw.githubusercontent.com/m0mik/scanoo/mas...

Starting at the top left, the 'UHD USRP Source' block receives complex
time
domain samples from your UHD compatible SDR hardware and sends these
complex time domain samples to the 'Stream to Vector' block and the
three
'WX GUI' display blocks.

The 'Stream to Vector' block sends the complex time domain samples in
vector chunks of size 'fft_len' to the 'FFT' block which outputs the
vector
chunks of complex samples in frequency domain format. FYI, the 'WX GUI
FFT
Sink' blocks (aka 'FFT Rough Tune'/'FFT Fine Tune') do this internally
in
order to display the signals in the frequency domain.

The output of the 'FFT' block is sent to a 'Selector' block which is the
pathway to the 'Probe Signal Vector' block used for spectrum sensing.
The
'FFT' block also sends samples to a 'Vector to Stream' block which puts
the
vector chunks back into a single stream of samples in frequency domain
format.

The 'Vector to Stream' block sends the stream of frequency domain
samples
to the 'Keep M in N' block which is responsible for picking out the
channel
we want and at the same time it decimates the signal to
'channel_samp_rate'
in order to reduce the amount of data processing required for blocks
further down the chain.  The channel is chosen by either a mouse click
on
the 'FFT Fine Tune' / 'FFT Zoom' displays or by enabling 'Spectrum
Sense'
mode.  When 'Spectrum Sense' mode is enabled, the maximum signal found
is
selected as determined by the 'Probe Signal Vector' block.

The 'Keep M in N' block sends the selected complex frequency domain
samples
to the 'Stream to Vector' block in order for the samples to be converted
back into complex time domain format by the 'FFT' block which is set to
'Reverse' (IFFT).

The 'FFT' block outputs a vector of complex time domain samples of the
chosen channel and sends these via a 'Vector to Stream' block to an 'FFT
Filter' block. The 'FFT Filter' block is responsible for decimating and
filtering the time domain sample stream.  The bandwidth of the filter is
adjustable in the 'Main' section of the GUI controls and can be seen
when
viewing with the 'FFT Zoom' display.  In the 'FFT Filter' block there is
logic to change the filter automatically when the modulation is changed.
AM/NBFM/WBFM use a lowpass filter and LSB/USB use a complex bandpass
filter.

From the 'FFT Filter' block the sample stream is sent at a rate of
'quad_samp_rate' to the 'Power Squelch' block.  This squelch block is
responsible for determining whether the chosen signal is powerful enough
to
lock on to.  If so, the samples are passed through a 'Feed Forward AGC'
for
signal level normalisation and then on to the audio demodulation blocks
via
the modulation 'Selector' block. The 'Probe Avg Mag^2' block after the
'Power Squelch' block is used to halt the spectrum sensing and center
frequency hopping in order to lock onto the selected channel.  This
'Probe
Avg Mag^2' block is also the reason for the signal holding on channel
for a
few seconds after the squelch cuts out. This delay is adjustable with
the
block's alpha setting.

If there are any queries as to the use of raw FFT bin indexes then I'll
be
happy to explain that too, such as in the frequency lockout feature.

Mike

--
Mike Jameson M0MIK BSc MIET
Email: mike@scanoo.com
Web: http://scanoo.com
D2595f4322a69535ddb92617d17f0eef?d=identicon&s=25 Louis Brown (madengr)
on 2014-06-15 02:07
(Received via mailing list)
Mike, thanks for the detailed explanation.  Is there a reason for doing
the
channel selection via FFT/IFFT method as opposed to a frequency xlating
filter?  Maybe it's more efficient since you needed to do the FFT anyway
for
the spectrum sense.

I see the frequency selection with the mouse is a feature of the WX FFT
sink
(Freq Set Varname).  I wonder if the same functionality is in the QT
sink.

Anyway, yours is a good example to wrap my head around how the Probe
Signals
work.  Looks like it may be a better method than the message queues I
was
experimenting with.  I was using a queue to grab the FFT data and
compute
the max value.

Thanks,
Lou
KD4HSO


Mike Jameson-2 wrote
> Lou, thanks for your interest.  Yes the entire thing was made purely with
> GRC and there was no modification to the generated Python.  All that is
> required to run the scanoo_rx GRC file unmodified is a UHD compatible
> device and an installation done with "./pybombs install uhd gnuradio".
> Johnathan's GNURadio Live DVD should work too -
> http://gnuradio.org/redmine/projects/gnuradio/wiki... .





--
View this message in context:
http://gnuradio.4.n7.nabble.com/Scanoo-rx-New-GUI-...
Sent from the GnuRadio mailing list archive at Nabble.com.
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.