File Exchange

image thumbnail

allan

version 2.28 (7.98 KB) by M. A. Hopcroft
Calculates standard Allan Deviation (ADEV) of a time domain signal.

37 Downloads

Updated 06 Sep 2019

View License

allan.m calculates the standard Allan deviation (ADEV) of a time domain signal. It is designed for stability analysis of frequency data, although the analysis can be applied to other types of data. Fractional frequency or phase data sets with sample rate or time stamp information are handled.
Note: for overlapping and modified Allan deviation analysis, please see the files allan_modified.m (ID: #26637) and allan_overlap.m (ID: #26441).

Cite As

M. A. Hopcroft (2019). allan (https://www.mathworks.com/matlabcentral/fileexchange/13246-allan), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (20)

Glad this file is helpful and always happy to see comments and ratings. If you have a question, contact me directly by clicking the Contact Author link or finding my email in the m-file.

Apologies if this is a silly question, but, can this code be used for converting from phase noise to allan deviation/variance?

tim .

Hello,

I encountered an issue while using your very helpful script. I provided a list of TAU-values, that are all divisible by my DATA.rate. However not all of the values were plotted so I investigated and found out that the "m" vector did not look like I expected it to (I had several values that were integer values but looked like this: "6.000" instead of "6", ...). The fix was changing line 300.

Original:
m = data.rate.*tau;

Fix:
m = floor(data.rate.*tau);

I did not notice any side effects.

Sean

I get the same error as Simon, when I use allan and only provide the fields 'phase' and 'rate' and set 'verbose' to 1.

I think the usage of data.time in line 220 should be guarded with an isfield(data, 'time').

Commenting out line 220 fixes the error for me, but I did not study the script well enough to know if this creates side effects.

Simon

Dear Hopcroft, i get an error when using DATA.phase together with DATA.rate (put to 1). Maybe something to do with the latest update (18 Mar 2014 v2.24 fix bug related to phase data and timestamps)? Have no old version to compare with.

Error:
Index of element to remove
exceeds matrix dimensions.

Error in ==> allan at 220
data.time(1)=[]; % make time
stamps correspond to freq data

MIN ZHOU

Hi,it is a convenient program to calculate the ADEV. However, the error bars seem incorrect. The error is not simply +/- 1-sigma estimation, as I know. I am not sure. Thank you!

@Mauricio: yes, you are correct. The values returned by the function are ADEV values and you can square them to get AVAR values.

Mauricio

Hi,
using this file produces ADEV plot, now
if I try to find the Angle Random Walk (ARW) which is found from AVAR plot at tau=1, would I just have to square the ADEV value at tau=1, or not?
thanks!

Joe Wiegand

Joe Wiegand

For some reason I can't seem to determine the value for values of Tau less than 500. Any help would be greatly appreciated.

I'll have a look at it if you send me an email with some more details.

Anca Nestor

The latest version available for download fails to plot the Allan Deviation. The error message indicates that the input to the semilogx function (tau or sm) is unknown. How can I correct this?

Excellent program, works wonderfully, very useful!

Aaron

Very handy tool, easy to use.
Thanks alot for your help!

type "help allan" to see the help file. email me directly if you are still having trouble.

can i ask how to input a series of data (100 samples data) into the code ?.. thx !!!

Bruno Sanguinetti

Very handy tool, easy to use.

Updates

2.28

Long-overdue update to handle some edge cases. Also improved data consistency checks.

1.11.0.0

v2.24 fix bug related to phase data and timestamps

1.10.0.0

v2.22 improve tau handling; plotting bugfix

1.9.0.0

v2.20 consistent behaviour for all allan_x.m functions.

1.8.0.0

v2.16 fixed some issues related to plotting

1.7.0.0

v2.14: updates to plotting, default values

1.6.0.0

minor bugfixes, data consistency checking updated

1.5.0.0

Description typo fix

1.4.0.0

handles phase data; error checking; asst. bugfixes

1.3.0.0

v1.82: performance enhancement; code/comments cleanup

1.2.0.0

v1.8: Vectorized code for significant performance enhancement.

1.1.0.0

added loglog plot option. Included test data in .mat file.

1.0.0.0

-fix bug in regular data calc for high-rate data
-fix bug in timestamp data calc for large starting gap
See code comments for details

v1.5: added errors bars, MAD calculation for outlier detection. misc bug fixes (see comments)

MATLAB Release Compatibility
Created with R14SP3
Compatible with any release
Platform Compatibility
Windows macOS Linux