Posted by SillyOldDuffer on 20/02/2023 11:24:42:
Posted by John Haine on 20/02/2023 10:17:26:
Dave, I got a quick intro to using ADEV from Tom VB. What I do is this (basically what I am told).
- I measured the periods of the pendulum to get a long time series
- Then subtracted from these a mean period computed from (another, previous) long time series (but could be the same one)
- This gives an equally long series of period differences
- Then do a running sum of these to get the phase (i.e. time) deviation from a uniform tick
- Run the ADEV tool on these as phase data – I think this is the same as the "minimal demo" mentioned
…
Thanks for the Allan hints, not what I've been doing! I'll give them a try. …
I was doing OK until bullet 4: 'Then do a running sum of these to get the phase (i.e. time) deviation from a uniform tick'
Could you give an example please showing how the operation would effect a vector of period differences?
What I have so far is an array (vector) of period values called 'ticks':
[13302951. 13296366. 13300221. … 13295832. 13303944. 13284340.] Each number is a period measured in units of 62.5nS
( Only the first and last 3 elements of the vector are printed. The vector contains 531679 elements.)
np.mean(ticks) gives the average which is 13320548.098758837
ticks – np.mean(ticks) subtracts the mean from every element in the vector. Doing so gives:
array([-17597.09875884, -24182.09875884, -20327.09875884, …,
-24716.09875884, -16604.09875884, -36208.09875884])
I think of this operation as normalising the data, that is making each value relative to zero. Is that right?
By a running sum do you mean subtract each element in turn from the one in front, thus:
-17597.09875884 – -24182.09875884 = 6585,
-24182.09875884 – -20327.09875884 = -3855
-20327.09875884 – … =
which is, in python numpy:
normals = ticks – np.mean(ticks)
diffs = normals[0:-2] – normals[1:-1] # subtract each element from the one before
print(diffs)
[6585., -3855., -92042., …, 2044., -7831., -8112.]
Hope I'm on the right track, ta,
Dave