pmonta / GNSS_Firehose

Wideband front-end digitizer for GPS, GLONASS, Galileo, BeiDou
Other
57 stars 35 forks source link

AGC control algorithm #2

Open jr9910 opened 1 year ago

jr9910 commented 1 year ago

Hi, I want to know if there are some papers for the AGC control algorithm used in GNSS_Firehose

pmonta commented 1 year ago

I didn't find too much in the literature about AGC specific to GNSS. As with any AGC algorithm, it must not be too slow, since tracking some amount of dynamics in gain is desired (for example, temperature-dependent gain in the antenna's LNA, or variation in the Firehose's front-end gain blocks), but it also must not be too fast, to avoid nonlinearities resulting from artificially amplitude-modulating the desired signals.

The scheme in GNSS Firehose is very simple: integrate a 2-bit histogram over some time interval (a few tens of milliseconds I think). If the histogram is too narrow (relative to the ideal histogram of Gaussian noise optimally quantized to 2 bits), increase gain by a step, else decrease gain a step. The steps are quite small, 0.02 dB or so.

If there's a better scheme, I'd be glad to hear about it. I should probably write a quick "theory of operation" document with these sorts of details in it. By the way, the Firehose's AGC can be disabled if desired, and a fixed gain applied instead.