discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] AGC loop


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] AGC loop
Date: Wed, 20 Sep 2006 22:33:48 -0700
User-agent: Mutt/1.5.9i

On Tue, Sep 19, 2006 at 01:36:55PM -0400, Robert W McGwier wrote:
> Tom:
> 
> A good agc has at least two time constants.  One for attack and one for 
> decay.  Your attack is much too slow.
> 
> tmp = (reference - sqrt(real(y)^2 + imag(y)^2));
> rate = rate1;
> if   tmp > gain    rate = rate2;
> 
> gain += tmp*rate;


Shouldn't this read:

> if   tmp > reference    rate = rate2;
             ^^^^^^^^


> rate2 is decay (where gain needs to be increased)  and rate1 is attack 
> where gain needs to be decreased.  rate1 > rate2 and rate1 must be fast 
> enough that you do not clip and destroy the first bits of information in 
> a packet.  If the packet has some idles, or other announcement data, 
> then you want to recover fast enough to recover receiver parameters such 
> as clock and carrier in addition to gain.  
> 
> Since you are doing dsp and have data in buffers,  you can do noncausal 
> agc as well.   I do sense of the required signal level three time 
> constants ahead of the place I apply the actual gain where time constant 
> is determined by the attack rate.   This works spectacularly well in 
> DttSP.  In addition to this,  we actually complicate things a bit more 
> much to our advantage by having two tracks of agc.  One where rapids 
> peaks and impulses flatten the gain but they release quickly.   The 
> other is a slower agc channel.  The gain is the min of the two gains.  
> Again,  from all indications of the users of the SDR-1000,  this is a 
> spectacular agc.    We allow for thresholded agc which does decrease the 
> dynamic range but this is subject to user preference.  Where you are 
> doing data,  and not listening to it,  you probably don't care about 
> thresholding.
> 
> 
> Bob




reply via email to

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