AllanDeviations.jl
AllanDeviations.jl is a package for the Julia programming language.
It provides fast frequency and phase stability deviations/variances for different purposes and timescales in a unified API (API guide) and plain Julia without any dependencies.
It was build and tested against Julia v1 and should be therefore upwards compatible for a long time.
Implemented Deviations/Functions
Allan deviation
- Overlapping & non-overlapping
- Frequency- & phase data
- General purpose choice
Modified Allan deviation
- Overlapping & non-overlapping
- Frequency- & phase data
- Used to distinguish W and F PM
Hadamard deviation
- Overlapping & non-overlapping
- Frequency- & phase data
- Rejects frequency drift, and handles divergent noise
Time deviation
- Overlapping & non-overlapping
- Frequency- & phase data
- General time error of time source
Total deviation
- Overlapping & non-overlapping
- Frequency- & phase data
- Better confidence at long averages for Allan
Maximum time interval error
- Overlapping & non-overlapping
- Frequency- & phase data
- Measure of clock error commonly used in the tele-communications industry
Example Calculation
This is an example plot of some AllanDeviations.jl calculations of a Potassium-D2-Frequency beat note from two reference lasers.
References
The main algorithms where implemented with the help of a C Reference implementations from leapsecond.com and the main Literature from NIST - Riley, William J. "Handbook of frequency stability analysis." (2008): 81.. The Python package allantools was used as reference test implementation to verify the results against.