discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] GR-Inspector Issues


From: Shalom Dubinsky
Subject: Re: [Discuss-gnuradio] GR-Inspector Issues
Date: Wed, 18 Apr 2018 05:16:07 +0000

Sebastian,
Thanks for responding!

I've been through the code, and I see what you mean now by "complex baseband".  However, it looks like you're assuming the carrier frequency is the sample rate.  Is that something I should be trying to maintain throughout my project?

I also think I found a minor bug?  In the build_threshold method, where you have `i` going up to `d_fft_len` but access `i + 1`.

Thanks for your help,
Shalom

On Thu, Apr 5, 2018 at 6:57 PM Sebastian Müller <address@hidden> wrote:
Hi Shalom,

Am 5. April 2018 um 11:14:22, Shalom Dubinsky (address@hidden) schrieb:


Hello,

My name is Shalom Dubinsky, and I'm having some trouble with the gr-inspector module.  I'm trying to use it to detect signals in the 2.4ghz range, and I can't get reliable responses from it.  Information on it seems scarce, so I'm asking here.


First, I tried playing with the default example of 3 cosine waves all summed with a noise source and run through the Signal Detector block.  This works as expected - both the GUI Inspector sink and the message debug output match. However, if I increase the sample rate too much it loses any accuracy it had.  Specifically, a sample rate of 4M only picks up two signals, and a sample rate of 40M only picks up one signal. The error is much higher in both of them, up to several hundred hz.  Decreasing it to 20k gives me two reasonably accurate signals and one garbage signal.


I also tried building my own graph.  I ran a single cosine wave broadcasting at 200M through a noise generator, the signal detector block, and the GUI Inspector block.  The sample rate was consistent throughout the graph, and the FFT length was set to 4096 across the board. The center frequency of the inspector sink was set at 200M.  The messages reported the signal to be at 8000000, while the graph displayed it as 208Mhz. Dropping the cosine frequency to 800k allowed the signal detector to work more or less correctly, but I had to change the center frequency of the inspector sink to 0 for it to display the signal correctly.  The problem at 800k was that the messages would alternate between ~800000 and ~-10183594. This isn't the only time I saw negative frequencies, either.


I next tried attaching it to a real radio.  When I broadcast a signal(from a different radio) at 2.425ghz, it detected that a signal was being broadcast, meaning it only reported something when I broadcast a signal,  but did not accurately detect the signal frequency. Instead, it would bounce around detecting different frequencies.


Questions:

Generally I’d like to point to the official documentation [1].


* What is the relationship between sampling rate and signal detection accuracy?

As described in the docs, the bandwidth of the signal is quantized with the block parameter ‚Rel. quantization‘.

This avoids high message load because of noise that slightly changes the detection boundries.

The quantization is relative to the used sample frequency. More info can be found in the docs and the code.


* What is the relationship between fft length and sampling rate?  Is it related to signal detection accuracy?

Definitely. One FFT bin covers samp_rate/fft_length Hz. This is the maximum resolution

you can get for estimating the signal parameters and highly affects your accuracy.

In other words: there is a trade-off between bandwidth and resolution.


* Why does it sometimes report signals with negative frequencies?

The frequencies are reported in *complex baseband*. Please research what that means,

but in a nutshell the frequencies are relative to the carrier frequency. This is intended behaviour.


* Why does it sometimes seem to report a frequency delta?

I’m not sure what you mean by that. The message format is (center_freq, bandwidth).


* Is there anything else I'm missing about this module?

If you’re just planning to detect signals, you might be better extending the

gr-inspector detection block or write your own. The algorithm used is very basic

and only works well for steep signal flanks. Depending on the kind of signals you plan

to detect you probably want to use a different algorithm. I tried to communicate that in

my blog [2].



I've attached the gr-inspector example signal-detection .grc as well as the modified .grcs mentioned earlier.

Also I’ve seen you mostly use the default parameters in the flowgraphs for your

application, which most likely won’t work. You need to understand the parameters and

sensibly choose them if you want the software to behave like you want.



Thank you,

Shalom Dubinsky


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





Regards,

Sebastian Müller
PGP ID DC2AA3EE
_______________________________________________
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]