[time-nuts] Characterising frequency standards

Steve Rooke sar10538 at gmail.com
Wed Apr 8 13:02:43 UTC 2009


Bruce,

But the sampling interval is still 1 sec and you can see by my notes
that I explicitly give this on the command line for adev1.exe.

OK, I'll have a go at compiling it as it is just a command line program.

73,
Steve

2009/4/9 Bruce Griffiths <bruce.griffiths at xtra.co.nz>:
> Steve
>
> Therein lies your problem.
> adev1  defaults to a sampling interval of 1 sec. (read the C source code).
> TvB's documentation explicitly states that you should supply the
> sampling interval. (its a command line argument for adev1.c).
>
> adev1.c is a simple command line program that uses stdin and stdout so
> porting it to a linux command line (non graphical) program should be
> straightforward.
> You can even use redirection and pipes should you need them.
>
> You can try porting it to Scilab which is free courtesy of the French
> Government.
>
>
> Bruce
>
> Steve Rooke wrote:
>> Bruce,
>>
>> I set nothing, as indicated in my text, I just delete data points, IE.
>> a file of 400000 records now becomes 200000. I'm trying to get my head
>> round this as the absolute requirement for continuous data seems
>> unneeded. What you have to remember here is that the data set I'm
>> working with consists of discrete measurements of the period of each
>> pulse. If it was timestamps, then there would be problems.
>>
>> I don't know how much MATLAB costs but I would guess it is way out of my budget.
>>
>> 73,
>> Steve
>>
>> 2009/4/9 Bruce Griffiths <bruce.griffiths at xtra.co.nz>:
>>
>>> Steve
>>>
>>> The data file doesn't include the time interval between samples so do
>>> you set this in some way?
>>> If so you need to set it to 1s for the unaltered data, to 2s when you
>>> take every 2nd sample, and 1s when you take the first 200,000 samples.
>>>
>>> In principle you could use CANVAS (available on request from USNO -
>>> however you may have to wait a few days while they decide whether to
>>> grant your request.) for such analysis in Linux but you would then need
>>> the Linux version of Matlab.
>>> Or you could request that it be compiled for Linux - a fairly simple
>>> task if one has the Linux version of Matlab.
>>>
>>> In principle you should be able to port the m source files to Scilab,
>>> but there are some subtle differences between Scilab and Matlab so this
>>> may take a while.
>>>
>>> Bruce
>>>
>>> Steve Rooke wrote:
>>>
>>>> Bruce,
>>>>
>>>> But how does that explain the output of Tom's adev1 program which
>>>> still seems to give a a good measurement at tau = 1s?
>>>>
>>>> 73,
>>>> Steve
>>>>
>>>> 2009/4/8 Bruce Griffiths <bruce.griffiths at xtra.co.nz>:
>>>>
>>>>
>>>>> Steve
>>>>>
>>>>> If you delete every second measurement then your effective minimum
>>>>> sampling time is now 2s and you can no longer calculate ADEV for tau< 2s.
>>>>> You can still calculate ADEV for tau = 100,000 sec.
>>>>>
>>>>> If you delete all but the first 200,000 lines then you can calculated
>>>>> ADEV for tau=1sec and up to tau= 25,000 sec with reasonable accuracy.
>>>>>
>>>>> You shouldn't lose sight of the fact that ADEV and OADEV are both
>>>>> estimates of the Allan deviation.
>>>>>
>>>>>
>>>>> Bruce
>>>>>
>>>>> Steve Rooke wrote:
>>>>>
>>>>>
>>>>>> Tom,
>>>>>>
>>>>>> I understand fully the points that you have made but I have obviously
>>>>>> not made my point clear to all and i apologise for my poor
>>>>>> communication skills.
>>>>>>
>>>>>> This is what I'm getting at:
>>>>>>
>>>>>> Using your adev1.exe from http://www.leapsecond.com/tools/adev1.htm
>>>>>> and processing various forms of gps.dat from
>>>>>> http://www.leapsecond.com/pages/gpsdo-sim/gps.dat.gz.
>>>>>>
>>>>>> C:\Documents and Settings\Steve Rooke\Desktop>adev1.exe 1 <gps.dat
>>>>>>
>>>>>> ** Sampling period: 1 s
>>>>>> ** Phase data scale factor: 1.000e+000
>>>>>> ** Total phase samples: 400000
>>>>>> ** Normal and Overlapping Allan deviation:
>>>>>>
>>>>>>        1 tau, 3.0127e-009 adev(n=399998),   3.0127e-009 oadev(n=399998)
>>>>>>        2 tau, 1.5110e-009 adev(n=199998),   1.5119e-009 oadev(n=399996)
>>>>>>        5 tau, 6.2107e-010 adev(n=79998),    6.1983e-010 oadev(n=399990)
>>>>>>       10 tau, 3.1578e-010 adev(n=39998),    3.1549e-010 oadev(n=399980)
>>>>>>       20 tau, 1.6531e-010 adev(n=19998),    1.6534e-010 oadev(n=399960)
>>>>>>       50 tau, 7.2513e-011 adev(n=7998),     7.3531e-011 oadev(n=399900)
>>>>>>      100 tau, 4.0029e-011 adev(n=3998),     4.0618e-011 oadev(n=399800)
>>>>>>      200 tau, 2.1512e-011 adev(n=1998),     2.1633e-011 oadev(n=399600)
>>>>>>      500 tau, 9.2193e-012 adev(n=798),      9.1630e-012 oadev(n=399000)
>>>>>>     1000 tau, 4.9719e-012 adev(n=398),      4.7750e-012 oadev(n=398000)
>>>>>>     2000 tau, 2.6742e-012 adev(n=198),      2.5214e-012 oadev(n=396000)
>>>>>>     5000 tau, 1.0010e-012 adev(n=78),       1.1032e-012 oadev(n=390000)
>>>>>>    10000 tau, 6.1333e-013 adev(n=38),       6.1039e-013 oadev(n=380000)
>>>>>>    20000 tau, 3.8162e-013 adev(n=18),       3.2913e-013 oadev(n=360000)
>>>>>>    50000 tau, 1.0228e-013 adev(n=6),        1.5074e-013 oadev(n=300000)
>>>>>>   100000 tau, 5.8577e-014 adev(n=2),        6.7597e-014 oadev(n=200000)
>>>>>>
>>>>>> So far, so good. Now I delete every even line in the file which leaves
>>>>>> me with 200000 lines of data (400000 lines in original gps.dat file).
>>>>>> (awk 'and(NR, 1) == 0 {print}' <gps.dat >gps1.dat)
>>>>>>
>>>>>> C:\Documents and Settings\Steve Rooke\Desktop>adev1.exe 1 <gps1.dat
>>>>>>
>>>>>> ** Sampling period: 1 s
>>>>>>
>>>>>>
>>> INCORRECT!!
>>> sampling period is now 2s.
>>>
>>>>>> ** Phase data scale factor: 1.000e+000
>>>>>> ** Total phase samples: 200000
>>>>>> ** Normal and Overlapping Allan deviation:
>>>>>>
>>>>>>        1 tau, 3.0257e-009 adev(n=199998),   3.0257e-009 oadev(n=199998)
>>>>>>        2 tau, 1.5373e-009 adev(n=99998),    1.5345e-009 oadev(n=199996)
>>>>>>        5 tau, 6.3147e-010 adev(n=39998),    6.3057e-010 oadev(n=199990)
>>>>>>       10 tau, 3.3140e-010 adev(n=19998),    3.3067e-010 oadev(n=199980)
>>>>>>       20 tau, 1.7872e-010 adev(n=9998),     1.7810e-010 oadev(n=199960)
>>>>>>       50 tau, 7.9428e-011 adev(n=3998),     8.1216e-011 oadev(n=199900)
>>>>>>      100 tau, 4.2352e-011 adev(n=1998),     4.3265e-011 oadev(n=199800)
>>>>>>      200 tau, 2.2001e-011 adev(n=998),      2.2593e-011 oadev(n=199600)
>>>>>>      500 tau, 9.6853e-012 adev(n=398),      9.5441e-012 oadev(n=199000)
>>>>>>     1000 tau, 5.0139e-012 adev(n=198),      5.0387e-012 oadev(n=198000)
>>>>>>     2000 tau, 2.7994e-012 adev(n=98),       2.7090e-012 oadev(n=196000)
>>>>>>     5000 tau, 1.4280e-012 adev(n=38),       1.2214e-012 oadev(n=190000)
>>>>>>    10000 tau, 7.4881e-013 adev(n=18),       6.5814e-013 oadev(n=180000)
>>>>>>    20000 tau, 7.6518e-013 adev(n=8),        3.7253e-013 oadev(n=160000)
>>>>>>    50000 tau, 2.4698e-014 adev(n=2),        1.3539e-013 oadev(n=100000)
>>>>>>
>>>>>> Obviously we don't have enough data now for a measurement of 100000
>>>>>> tau but the results for the other tau are quite close, especially when
>>>>>> there are sufficient data points. Now this is discontinuous data,
>>>>>> exactly what I was trying to allude to.
>>>>>>
>>>>>> OK, so now I take only the top 200000 lines of the gps.dat file (head
>>>>>> -200000 gps.dat >gps2.dat)
>>>>>>
>>>>>> C:\Documents and Settings\Steve Rooke\Desktop>adev1.exe 1 <gps2.dat
>>>>>>
>>>>>> ** Sampling period: 1 s
>>>>>> ** Phase data scale factor: 1.000e+000
>>>>>> ** Total phase samples: 200000
>>>>>> ** Normal and Overlapping Allan deviation:
>>>>>>
>>>>>>        1 tau, 3.0411e-009 adev(n=199998),   3.0411e-009 oadev(n=199998)
>>>>>>        2 tau, 1.4985e-009 adev(n=99998),    1.4999e-009 oadev(n=199996)
>>>>>>        5 tau, 6.1964e-010 adev(n=39998),    6.2010e-010 oadev(n=199990)
>>>>>>       10 tau, 3.1315e-010 adev(n=19998),    3.1339e-010 oadev(n=199980)
>>>>>>       20 tau, 1.6499e-010 adev(n=9998),     1.6495e-010 oadev(n=199960)
>>>>>>       50 tau, 7.1425e-011 adev(n=3998),     7.3416e-011 oadev(n=199900)
>>>>>>      100 tau, 3.9940e-011 adev(n=1998),     4.0730e-011 oadev(n=199800)
>>>>>>      200 tau, 2.1488e-011 adev(n=998),      2.1558e-011 oadev(n=199600)
>>>>>>      500 tau, 8.4809e-012 adev(n=398),      9.0886e-012 oadev(n=199000)
>>>>>>     1000 tau, 4.9223e-012 adev(n=198),      4.7104e-012 oadev(n=198000)
>>>>>>     2000 tau, 2.4335e-012 adev(n=98),       2.4515e-012 oadev(n=196000)
>>>>>>     5000 tau, 1.0308e-012 adev(n=38),       1.0861e-012 oadev(n=190000)
>>>>>>    10000 tau, 5.9504e-013 adev(n=18),       6.1031e-013 oadev(n=180000)
>>>>>>    20000 tau, 3.6277e-013 adev(n=8),        3.1994e-013 oadev(n=160000)
>>>>>>    50000 tau, 1.0630e-013 adev(n=2),        1.6715e-013 oadev(n=100000)
>>>>>>
>>>>>> Is there any Linux tools for calculating adev as I'm having to run
>>>>>> Windows in a VMware session?
>>>>>>
>>>>>> 73,
>>>>>> Steve
>>>>>>
>>>>>> 2009/4/8 Tom Van Baak <tvb at leapsecond.com>:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Steve,
>>>>>>>
>>>>>>> You've asked a couple of questions. Let me start with this.
>>>>>>>
>>>>>>> It is true that if one were only interested in the performance
>>>>>>> of a pendulum (or quartz or atomic) clock for averaging times
>>>>>>> of one day that all you would need is a series of time error
>>>>>>> (aka phase) measurements made about the same time once
>>>>>>> a day (doesn't have to be that exact). After one week, you'd
>>>>>>> have 7 error measurements (=6 frequency =5 stability points)
>>>>>>> and this is adequate to calculate the ADEV for tau 1 day.
>>>>>>> This alone allows you to rank your clock among all the other
>>>>>>> pendulum clocks out there. Note also you get time error and
>>>>>>> rate error from these few data points too.
>>>>>>>
>>>>>>> As another example, suppose you have a nice HP 10811A
>>>>>>> oscillator and want to measure its drift rate. In this case you
>>>>>>> could spend just 100 seconds and measure its frequency
>>>>>>> once a day, or even once every couple of days. Do this for
>>>>>>> a month and you'd have several dozen points. If you plot
>>>>>>> these frequency measurements you will likely see that they
>>>>>>> approximately fall on a line; the slope of the is the frequency
>>>>>>> drift rate of the 10811. The general shape of the points, or
>>>>>>> the fit of the line is a rough indication of how consistent the
>>>>>>> drift rate is or if it's increasing or decreasing.
>>>>>>>
>>>>>>> Neither of these examples require a lot of data. Both of these
>>>>>>> are real-world examples.
>>>>>>>
>>>>>>> OK so far?
>>>>>>>
>>>>>>> /tvb
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> 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.
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> 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.
>>>
>>>
>>
>>
>>
>>
>
>
> _______________________________________________
> 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.
>



-- 
Steve Rooke - ZL3TUV & G8KVD & JAKDTTNW
Omnium finis imminet




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