[time-nuts] Thunderbolt? (re simple gpsdo.)

WarrenS warrensjmail-one at yahoo.com
Sun Jan 1 21:11:35 UTC 2012


Hal  posted:

> For those who aren't familiar with this trick, it's easy to make a low pass filter in software:
>   X = X*(1-k) + k*new   or    X = X - k*X + k*new

OR
Gives exact same results using only one multiply,  
New_X = Last_X  + k * (New_data - Last_X)
OR
For powers of square root of two 1.414 steps, which is close enough for GPSDO control loops using only shifts can add:
New_X =   Last_X  +   [  { (New_Data  + 1/2* New_Data)  -  (Last_X + 1/2* Last_Data)  } divided by 2^N ]

>I think the main problem in this area is building a low pass filter with a long time constant.

Not At ALL, That can be the easiest part  as long as it is in a CLOSED LOOP system where accuracy is not very important.
As you stated, with digital filters you can go as slow as you want as long as you do not let it loose LS_Bits when shifting and adding. 

How do I build an analog filter with a time constant that long?
The TC filter is inside a loop so Most all the bad things that slow poor analog filters do does not matter much at all.
100 meg and 10 uf Tantalum capacitor can work fine as a 0 to +5V, 1000 sec analog filter inside a loop.

I've found that a 10 Meg resistors and most small, 10 cent ,1000uf caps work fine for a closed loop 10K sec TC filter. 

>What's the input impedance of a VCXO or Rb unit?  I assume we will need an op-amp to buffer the filter.
No buffer usually needed, most are pretty Hi_Z, and many are floating inputs such as the HP10811.
MOST of the time,  for "SIMPLE" the best results are obtained by highly attenuating the EFC input so high value filter resistors can be used. 
The other thing that helps a lot is the less the EFC feedback gain the lower the RC time constant need be for the same effective loop time constant.

example of simple and high performance:
Say you need a 10,000 second time constant analog filter when using  the full +5 to - 5V EFC range of a  disciplined HP10811 osc.
You can get the same 10K sec Loop time constant using a  +5 mv to -5 mv EFC range and a 10 second filter time constant. (and a manual freq offset adjustment)
Can make that using a couple 20 meg resistors, center taped with a 1uf cap (10 sec TC), connected to the EFC with a 40K ohm to ground (plus a RF bypass cap) 
You get a 10,000 sec effective loop Time constant, low noise system that can be controlled just fine with an 8+ bit dithered Dac, to performance a nut would want.

There has been many postings of all sorts of possible bottle neck problems that are true when making a overly complicated "Rube Goldberg" kind of nut controller.
BUT for 'SIMPLE'  with a little thought and compromise, most of these do not need to apply, therefore they are not an issue even at the highest performance levels.

ws
***************

[time-nuts] Thunderbolt? (re simple gpsdo.)
Hal Murray hmurray at megapathdsl.net 
Sun Jan 1 01:56:46 UTC 2012 

> As soon as you say "Software" the device is no longer simple.    Even a
> microprocessor is a very complex device and so is its development system.
> The software inside the uP is not simple either if you count the number of
> possible paths through the code (2 raided to the power of the number of
> branches.) 

Yes and no...

Software doesn't have to be big, bloated, ugly, and complicated.  (But I agree that it often is.)

This looks like fun to me, but I like writing that sort of code.  Note that it doesn't need an OS or even any libraries.


The context for "simple" wasn't well specified.
Does simple refer to design or construction?

How good does the GPSDO have to be?  (After all, this is time nuts.)  What sort of adev at what sort of time scale?

I think the main problem in this area is building a low pass filter with a long time constant.

The time constant of the filter has to be:
  long relative to the noise from the phase detector
  short relative to aging of the oscillator
  short relative to environmental changes
   (so the osc can track temperature and voltage
   those changes may be in the PLL system rather than the osc)

If we are starting with PPS (rather than 10KHz), the filter time constant 
needs to be 10s or 100s of seconds.  How do I build an analog filter with a time constant that long?

What's the input impedance of a VCXO or Rb unit?  I assume we will need an op-amp to buffer the filter.

The ugly problem in this area is that time constant to filter out phase detector noise overlaps the time constant needed to let environmental changes through.  That doesn't matter if the filter is analog or digital.

If the osc is stable (Rb) filter time constants of 1000s of seconds might make sense.  That might help take care of some of the hanging bridges.

For those who aren't familiar with this trick, it's easy to make a low pass filter in software:
  X = X*(1-k) + k*new
or
  X = X -k*X + k*new
where k is less than one.  Smaller k makes a slower filter.
If you pick k as a (negative) power of 2, the multiplies can be done with a shift so there is nothing complicated with making filters with a very long time constant.  (You may have to use multi-precision arithmetic, but that's not a big deal.)


More information about the time-nuts mailing list