Hi Anderson,

Yes, that is possible.
Detection purely based on power should be pretty simple; now, you're
using "uhd_fft.py", which indicates you're using an Ettus USRP; these
devices often are capable of capturing *all* of the GSM downlink in a
specific Band (e.g. EGSM900) at once (that only being <35MHz), so simply
doing an FFT of appropriate size and averaging the digital power (i.e.
magnitude squared) of the resulting vectors should give you a reasonable
insight on where there's power.
Throw in a few lines of python to convert these DFT bins to Channel
Numbers, and you'll have your system. Later, replace the FFT by a
filterbank to get better estimates based on the signal "fitting" a
typical GSM pulse shape.

That system is something that I'd say should be possible for you to
implement by the end of reading our Guided Tutorials [1], assuming you
can deal with what signal theory is required for that (don't worry, it's
not that much, just the bare necessities of complex baseband signal,
sampling rate/bandwidth, and what a DFT does (roughly)). The overall
flow graph would look like:

USRP source -> FFT -> Magnitude squared -> Python Block that converts
bin numbers to Channel Numbers and logs the detected free channels based
on some power threshold.

If you actually want to retune (e.g. because your device bandwidth is
smaller than the Downlink you want to find unused channels in, or
because you want to do EGSM900 and 1800), then things get slightly more
complicated, and you'll probably end up using message passing and stream
tags. Still not "complex", but not as conceptually trivial.

Note that base station detection based on power alone is going to get
you into trouble if you want to use these frequencies, possibly: Assume
the Base Station (BS), a primary user (PU) and you, the one who's
interested in re-using a free channel, are standing on a free plane, on
a line, in that order:

BS
|
|      PU     SU
|      |      |
----------------


The PU is as far from the base station BS as from you , the SU. Now, you
can't hear the BS, because power goes down quadratically with distance;
you're twice as far from the BS as the PU is, so you only get 0.25 of
the BS transmit power that the PU sees. However, from the perspective of
the PU, the base station's signal suffers the same path loss as yours,
and your signal will collide with the signal from the base station;
that's basically the well-known hidden node problem[2]. Wifi networks
suffer from that all the time -- unlike GSM, Wifi devices don't get
frequency allocations; they share the same spectrum by listening to
whether the channel they want to use is free or not.

Best regards,
Marcus

[1] https://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorials
[2] https://en.wikipedia.org/wiki/Hidden_node_problem


On 06.02.2016 21:02, Anderson Moreira wrote:
> Good afternoon everyone.
> I'm starting in radio frequency. Making analysis of spectra using
> uhd_fft.py in search of a channel (ARFCN) not used by the operator
> (GSM), one doubts arose: is it possible to automate this process? A
> script, library, etc. running a scan on a GSM frequencies of range and
> find unused channels.
>
> Thanks.
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to