allan_variance Function

public function allan_variance(x, dt, err) result(rst)

Computes the Allan variance of a data set.

Remarks

This implementation computes the fully overlapped Allan variance using the method presented by Yadav et. al.

Yadav, Shrikanth & Shastri, Saurav & Chakravarthi, Ghanashyam & Kumar, Viraj & Rao, Divya & Agrawal, Vinod. (2018). A Fast, Parallel Algorithm for Fully Overlapped Allan Variance and Total Variance for Analysis and Modeling of Noise in Inertial Sensors. IEEE Sensors Letters. PP. 1-1. 10.1109/LSENS.2018.2829799.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in), dimension(:) :: x

The N-element data set to analyze.

real(kind=real64), intent(in), optional :: dt

An optional input specifying the time increment between samples in x. If not specified, this value is set to 1.

class(errors), intent(inout), optional, target :: err

A mechanism for communicating errors and warnings to the caller. Possible warning and error codes are as follows. - FS_NO_ERROR: No errors encountered. - FS_MEMORY_ERROR: Occurs if there is a memory allocation error.

Return Value real(kind=real64), allocatable, dimension(:,:)

An M-by-2 array containing the results where M is N / 2 - 1 if N is even; else, M is (N - 1) / 2 - 1 if N is odd. The first column contains the averaging times associated with the M results stored in the second column.


Contents