[time-nuts] irregular data and Stable32

Tom Van Baak tvb at LeapSecond.com
Thu Jan 21 03:31:31 UTC 2021


Demetrios,

 > In my personal software I don’t deal with outliers or data gaps by 
interpolating,
 > spline-fitting, or any other fancier things.
 > Instead I compute the standard statistical measures by simply 
ignoring terms
 > in the summation that hit upon a data gap or outlier.

For critical data, consider doing it both ways and comparing the 
results. If the ADEV plots come out the same then it doesn't matter 
which one you choose. If the plots are different then pick the right 
one, which could be the interpolated method, or it could be the gap method.

I say this because I use Stable32 for mechanical clock data as well as 
quartz or atomic data. In these cases one must never ignore "bad" data 
or it will ruin any FFT / PSD / ACF processing. The periodic effects are 
large and often interesting in mechanical clock so playing games with 
even a single data point can ruin your day.

 > I don’t think Stable32 does that, so I’d like to pose this challenge 
to anyone

Actually, Stable32 already has code to handle gaps. It's buried in the 
manual somewhere. Any zero data is automatically treated as a gap and, 
like your method, it is excluded from statistical measures. It applies 
to both phase and frequency data.

You can see this in action for yourself. Take these 10 random points:

   0.516603
  -0.327618
   0.415049
   0.138100
   0.0
   0.730480
  -0.762049
   1.586196
   0.648489
  -1.586448

and import them as phase and then click plot. You'll notice that 
Stable32 does not shift the data down to cover the gap. Gaps are visible 
by a break in the plot line. And they are not part of the statistics. 
The same is true if you import them as frequency and click plot. Note if 
you convert phase->freq or freq->phase the double break.

All this seems carefully thought out in Stable32. It must have been a 
pain to implement.

Note that this automatic gap logic is awkward if you have legitimate 
phase 0 or frequency 0 data. One trick is to replace 0's by 1e-99 in 
your data so that Stable32 doesn't treat them as gaps.

/tvb





More information about the Time-nuts_lists.febo.com mailing list