compat.allantools¶
Drop-in functions with allantools-style signatures, computed by ntpstats.
Code written for allantools <https://github.com/aewallin/allantools>_ can
switch with one import::
# import allantools as at
from ntpstats.compat import allantools as at
taus, devs, errs, ns = at.oadev(phase, rate=1.0, data_type="phase", taus="octave")
Every function takes (data, rate=1.0, data_type="phase", taus=None) and
returns (taus_used, devs, errs, ns) as allantools does:
data_type="freq"data are integrated to phase (x[0] = 0);tausis"octave"(the default),"decade","all"or an array of averaging times in seconds (rounded to multiples of1/rate);errsisdev / sqrt(ns), and points withns < 2are dropped.
Deliberate differences:
mtotdev/ttotdevreturn the raw NIST SP 1065 eq. (27) value, like allantools; :func:ntpstats.stability.computebias-corrects by default.theo1returns taus of0.75 * m / rate(the effective tau).htotdevis raw (no bias correction), likemtotdev;m = 1is the overlapping HDEV.
For confidence intervals, noise identification and gap handling use
:func:ntpstats.stability.compute directly.
frequency2phase(freqdata, rate)
¶
Integrate fractional frequency to phase (seconds), with x[0] = 0.
phase2frequency(phase, rate)
¶
Fractional frequency from phase (seconds).
adev(data, rate=1.0, data_type='phase', taus=None)
¶
Allan deviation (non-overlapping).
oadev(data, rate=1.0, data_type='phase', taus=None)
¶
Overlapping Allan deviation.
mdev(data, rate=1.0, data_type='phase', taus=None)
¶
Modified Allan deviation.
tdev(data, rate=1.0, data_type='phase', taus=None)
¶
Time deviation.
ohdev(data, rate=1.0, data_type='phase', taus=None)
¶
Overlapping Hadamard deviation.
hdev(data, rate=1.0, data_type='phase', taus=None)
¶
Hadamard deviation (non-overlapping, from phase decimated by m).
totdev(data, rate=1.0, data_type='phase', taus=None)
¶
Total deviation.
mtotdev(data, rate=1.0, data_type='phase', taus=None)
¶
Modified total deviation (raw, without bias correction, as allantools).
ttotdev(data, rate=1.0, data_type='phase', taus=None)
¶
Time total deviation (raw, without bias correction, as allantools).
theo1(data, rate=1.0, data_type='phase', taus=None)
¶
Theo1 deviation; returned taus are the effective 0.75 * m / rate.
mtie(data, rate=1.0, data_type='phase', taus=None)
¶
Maximum time interval error.
tierms(data, rate=1.0, data_type='phase', taus=None)
¶
RMS time interval error.
htotdev(data, rate=1.0, data_type='phase', taus=None)
¶
Hadamard total deviation (raw, without bias correction).