[time-nuts] PLL Math Question
bob at evoria.net
Wed Mar 12 15:39:37 EDT 2014
In the moving averages I'm doing, I'm saving the last bit to be shifted out and if it's a 1 (i.e. 0.5) I increase the result by 1.
> From: Hal Murray <hmurray at megapathdsl.net>
>To: Discussion of precise time and frequency measurement <time-nuts at febo.com>
>Cc: hmurray at megapathdsl.net
>Sent: Wednesday, March 12, 2014 2:25 PM
>Subject: Re: [time-nuts] PLL Math Question
>magnus at rubidium.dyndns.org said:
>> Exponential averger takes much less memory. Consider this code:
>> x_avg = x_avg + (x - x_avg) * a_avg;
>> Where a_avg is the time-constant control parameter.
>Also note that if a_avg is a power of 2, you can do it all with shifts rather
>Note that the shift is to the right which drops bits. That suggests that you might want to work with x scaled relative to the raw data samples. Consider a_avg to be 1/8, or a shift right 3 bits. Suppose x_avg is 0 and you get a string of x samples of 2. The shift throws away the 2 so x_avg never changes.
>These are my opinions. I hate spam.
>time-nuts mailing list -- time-nuts at febo.com
>To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
>and follow the instructions there.
More information about the time-nuts