[Top][All Lists]

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

Re: [Discuss-gnuradio] Good example of AGC after RTL_SDR

From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] Good example of AGC after RTL_SDR
Date: Thu, 17 Jul 2014 10:46:22 -0400

On Thu, Jul 17, 2014 at 10:15 AM, <address@hidden> wrote:
My application is currently using an rtl_sdr (FC0013).

I get the best results when I use the built-in AGC option. However, there are a couple of corner conditions where their AGC is not desirable. My signal levels very pretty wildly from barely above the noise floor to just about saturating the input with no gain.

Not surprising. You don't have a huge dynamic range with those dongles.

When I set the gain on the rtl_sdr to nominal and put in an AGC2 block, I found that resulting SNR was significantly worse than the builtin AGC of the rtl_sdr. I limited the max gain, but I still seemed to lose most of my signal as the noise floor rises significantly.

Again, not surprising. The AGC blocks in GNU Radio are a bit of a misnomer. They don't really adjust the gain, they adjust a digital scaling factor. So you're just multiplying the signal and noise together. These blocks really just make sure your signals come in scaled around where you want them, but don't do anything with real hardware gain.

You definitely want to set the gain of the receiver to best maximize your SNR. But you're always going to have the dynamic range issue, often called the near-far problem in some application spaces.
To elaborate a little bit ... through trial and error, I found that the best gain I could get out on the rtl_sdr before the noise floor rose unacceptably was about a 12.4 db gain setting. However, a not insignificant number of signal sources are at the limits of the input stage of the RTL already (as in nearby transmitters vs over the horizon transmitters) and over-modulates/distorts with that gain. What I'm thinking I need is something that will measure the output of the rtl_sdr and feed back through a conditioning algorithm to set the gain on the rtl_sdr. A little more insight: My signal is a voice modulated NBFM signal, 25khz channel separation, in a 1 MSPS wide baseband -- I use xlating FIR's to select the specific channel.

Does anyone have a good example or suggestion of an AGC usage to place right after the source?

Thank you guys! This forum, the gnuradio and its collateral project, and the community have been awesome!


You've stumbled onto a pretty difficult problem that tends to be very application-specific and hardware-specific. Hope I've given enough basics above to help you tweak your app.


reply via email to

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