AGC recovery rate?
Is there a setting to control the rate at which the KiwiSDR AGC recovers gain after a strong signal goes away? It seems to do this a little fast for my taste. There's a hang parameter, but after this expires the gain increases very rapidly.
The AGC I've implemented for my own SDR lets you set the recovery rate. I typically use 20 dB/sec for SSB, but that's a personal preference.
As an aside here's how my AGC works. I have the following parameters with my usual values for SSB:
Headroom = -15 dBFS (good for typical gaussian signal statistics)
Threshold = -15 dB (target level below "headroom" on noise only)
Hang time = 1.1 sec
Recovery rate = 20 dB/s
The headroom sets the target output level, averaged over a processing block time (typically 20 ms). -15 dBFS is good for the gaussian statistics of a typical signal.
"Threshold" is implemented rather differently because it uses a real-time measurement of the noise floor (done by looking at a wide frequency range and finding the lowest FFT bins). On pure noise the gain is set to bring the output noise level to "threshold" dB below the headroom setting (i.e., -15 dBFS - 15 dB = -30 dBFS). When a signal appears and gradually increases in level, the output level will increase from -30 dBFS to -15 dBFS and then the receiver gain will decrease to keep the signal at -15 dBFS as the signal continues to get stronger. (I haven't felt the need for a slope parameter, i.e., it's 0 dB).
When the signal disappears, gain is held constant for 1.1 sec and then begins to increase at 20 dB/s until the noise level again reaches -30 dBFS.