[time-nuts] Characterising frequency standards
Steve Rooke
sar10538 at gmail.com
Wed Apr 8 13:09:03 UTC 2009
John,
OK, I see what you mean if I re-run with a 2 second period:-
C:\Documents and Settings\Steve Rooke\Desktop>adev1.exe 2 <gps1.dat
** Sampling period: 2 s
** Phase data scale factor: 1.000e+000
** Total phase samples: 200000
** Normal and Overlapping Allan deviation:
2 tau, 1.5129e-009 adev(n=199998), 1.5129e-009 oadev(n=199998)
4 tau, 7.6863e-010 adev(n=99998), 7.6727e-010 oadev(n=199996)
10 tau, 3.1574e-010 adev(n=39998), 3.1529e-010 oadev(n=199990)
20 tau, 1.6570e-010 adev(n=19998), 1.6533e-010 oadev(n=199980)
40 tau, 8.9359e-011 adev(n=9998), 8.9051e-011 oadev(n=199960)
100 tau, 3.9714e-011 adev(n=3998), 4.0608e-011 oadev(n=199900)
200 tau, 2.1176e-011 adev(n=1998), 2.1633e-011 oadev(n=199800)
400 tau, 1.1001e-011 adev(n=998), 1.1296e-011 oadev(n=199600)
1000 tau, 4.8426e-012 adev(n=398), 4.7721e-012 oadev(n=199000)
2000 tau, 2.5069e-012 adev(n=198), 2.5194e-012 oadev(n=198000)
4000 tau, 1.3997e-012 adev(n=98), 1.3545e-012 oadev(n=196000)
10000 tau, 7.1400e-013 adev(n=38), 6.1070e-013 oadev(n=190000)
20000 tau, 3.7441e-013 adev(n=18), 3.2907e-013 oadev(n=180000)
40000 tau, 3.8259e-013 adev(n=8), 1.8627e-013 oadev(n=160000)
100000 tau, 1.2349e-014 adev(n=2), 6.7697e-014 oadev(n=100000)
Although it diverges a bit at the end.
73,
Steve
2009/4/9 John Ackermann N8UR <jra at febo.com>:
> I've compiled adev1 under Linux with no changes required; don't recall
> the exact gcc line I used but it was pretty much the obvious one.
>
> Steve, one other point -- your results with every sample versus
> every-other-sample aren't hugely different because ADEV doesn't usually
> change dramatically over very short differences in tau (unless there's
> some sort of periodicity in the noise). So, it would not be unusual to
> see that the result for tau=2 seconds (what you got when you removed
> every other sample) will be only slightly different than for tau=1 second.
>
> John
> ----
> Bruce Griffiths wrote:
>> 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.
>
>
> _______________________________________________
> 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
mailing list