discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] pll_refout_cc - finding optimum alpha & beta ??


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] pll_refout_cc - finding optimum alpha & beta ??
Date: Thu, 16 Mar 2006 14:39:49 -0800
User-agent: Mutt/1.5.9i

On Thu, Mar 16, 2006 at 05:24:26PM -0500, Charles Swiger wrote:
> On Thu, 2006-03-16 at 12:35 -0800, Eric Blossom wrote:
> 
> > Chuck, I could have this totally wrong (the code definitely needs some
> > comments), but it's a second order control loop.  We're adjusting both the
> > estimates of the phase and the derivative of the phase (commonly
> > called frequency ;)) 
> > 
> > I believe that setting
> > 
> >   alpha = some value
> >   beta = 0.25 * alpha * alpha
> > 
> > will result in a critically damped control loop.
> > Try some experiments that maintain this relationship.
> > 
> 
> Nothing meaningful.
> 
> Here's the only place they're used:
> 
>     d_freq = d_freq + d_beta * error;
>     d_phase = mod_2pi(d_phase + d_freq + d_alpha * error);
> 
> It's way over my head but is d_freq supposed to be in the d_phase
> calculation, 2nd line? phase is mod_2pi but freq can be a very big
> number, like mod_2pi(100000 + 1.572849). That is I'm USING very big
> numbers for max_freq and min_freq - don't suppose they're normalized
> somehow.

OK.  I can see why that would be a problem.  mod_2pi is optimized for
the expected "close in case" (symmetric around zero), thus the phase
isn't *really* getting folded down to [-pi,pi].
 
Try changing mod_2pi to make the bounds check and then compute the
modulus if it needs to using division, floor, multiplication and
subtraction. It's not cheap, but it'll probably compute the right
answer.

Eric




reply via email to

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