Skip to content

Class inertialsim::analysis::AllanDeviation

ClassList > inertialsim > analysis > AllanDeviation

Public Static Functions

Type Name
std::tuple< Scalar1D, Array, Array > Calculate (const sensors::Measurement & measurement, int num_clusters=100)
Calculate the Allan deviation of a uniformly sampled signal.
IntegerArray Clusters (int samples, int num_clusters)
Calculate Allan deviation cluster sizes.
Array FitModel (const NoiseModel & model, const Scalar1D & tau, const Array & allan_deviation, const std::optional< Array > & allan_deviation_deviation=std::nullopt)
Fit standard noise parameters to an Allan deviation signal.
Scalar1D Log10Interp (const Scalar1D & x, const Scalar1D & xp, const Scalar1D & fp, std::optional< double > left=std::nullopt, std::optional< double > right=std::nullopt)
Linear interpolation in base-10 logarithmic space.

Public Static Functions Documentation

function Calculate

Calculate the Allan deviation of a uniformly sampled signal.

static std::tuple< Scalar1D, Array, Array > inertialsim::analysis::AllanDeviation::Calculate (
    const sensors::Measurement & measurement,
    int num_clusters=100
) 

Parameters:

  • measurement Measurement object containing the sensor data to analyze.
  • num_clusters Number of logarithmically spaced cluster sizes to return. Default = 100.

Returns:

Tuple of (tau, allan_deviation, allan_deviation_deviation). allan_deviation and allan_deviation_deviation have shape (num_clusters, num_channels).


function Clusters

Calculate Allan deviation cluster sizes.

static IntegerArray inertialsim::analysis::AllanDeviation::Clusters (
    int samples,
    int num_clusters
) 

Parameters:

  • samples Number of samples in the signal. Must be at least 2.
  • num_clusters Number of logarithmically spaced cluster sizes to return. Must be at least 1.

Returns:

Vector of unique, logarithmically spaced, integer cluster sizes.

Exception:

  • std::invalid_argument if samples < 2 or num_clusters < 1.

function FitModel

Fit standard noise parameters to an Allan deviation signal.

static Array inertialsim::analysis::AllanDeviation::FitModel (
    const NoiseModel & model,
    const Scalar1D & tau,
    const Array & allan_deviation,
    const std::optional< Array > & allan_deviation_deviation=std::nullopt
) 

Parameters:

  • model NoiseModel specifying which coefficients to include.
  • tau Averaging time (in seconds) for each Allan deviation input.
  • allan_deviation Allan deviation.
  • allan_deviation_deviation Optional stddev of the Allan deviation.

Returns:

Matrix of up to 5 noise parameters [Q, N, B, K, R] for each channel (shape: 5 x num_channels).

Exception:

  • std::invalid_argument if model does not include any coefficients.

function Log10Interp

Linear interpolation in base-10 logarithmic space.

static Scalar1D inertialsim::analysis::AllanDeviation::Log10Interp (
    const Scalar1D & x,
    const Scalar1D & xp,
    const Scalar1D & fp,
    std::optional< double > left=std::nullopt,
    std::optional< double > right=std::nullopt
) 

Parameters:

  • x The x-coordinates at which to evaluate the interpolated values.
  • xp The x-coordinates of the data points, must be monotonically increasing.
  • fp The y-coordinates of the data points, same length as xp.
  • left Value to return for x < xp[0], default is fp[0].
  • right Value to return for x > xp[-1], default is fp[-1].

Returns:

Interpolated values with the same shape as x.



The documentation for this class was generated from the following file cpp/include/inertialsim/analysis/allan_deviation.h