discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Scanning frequency GSM


From: Marcus Müller
Subject: Re: [Discuss-gnuradio] Scanning frequency GSM
Date: Sat, 6 Feb 2016 22:05:51 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0

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
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


reply via email to

[Prev in Thread] Current Thread [Next in Thread]