Class MeasurementNoiseCovarianceEstimator

java.lang.Object
com.irurueta.numerical.signal.processing.MeasurementNoiseCovarianceEstimator

public class MeasurementNoiseCovarianceEstimator extends Object
Estimates noise covariance matrix for a given set of measures. Covariance matrix is updated each time that measures are added. This class also computes average values of samples to estimate the bias on given noise samples. This class should only be used for samples obtained while system state is held constant.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final com.irurueta.algebra.Matrix
    Estimated measurement noise covariance matrix.
    private final int
    Number of measurement vector dimensions (measure parameters).
    private final double[]
    Estimated sample average.
    private long
    Number of samples used for estimation.
    private final com.irurueta.algebra.Matrix
    A sample expressed in matrix form.
    private final double[]
    A sample after removing its mean.
    private final com.irurueta.algebra.Matrix
    A covariance matrix for a single sample.
    private final com.irurueta.algebra.Matrix
    The transposed sample matrix.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    com.irurueta.algebra.Matrix
    Obtains estimated measurement noise covariance matrix.
    int
    Obtains the number of measurement vector dimensions (measure parameters).
    double[]
    Obtains estimated sample average.
    long
    Obtains number of samples used for estimation.
    com.irurueta.algebra.Matrix
    update(double[] sample)
    Updates currently estimated covariance matrix by adding provided sample data.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • mp

      private final int mp
      Number of measurement vector dimensions (measure parameters).
    • measurementNoiseCov

      private final com.irurueta.algebra.Matrix measurementNoiseCov
      Estimated measurement noise covariance matrix.
    • sampleAverage

      private final double[] sampleAverage
      Estimated sample average.
    • sampleCount

      private long sampleCount
      Number of samples used for estimation.
    • sampleNoMean

      private final double[] sampleNoMean
      A sample after removing its mean. This is used internally, and it is kept as an instance variable for reuse purposes.
    • sampleMatrix

      private final com.irurueta.algebra.Matrix sampleMatrix
      A sample expressed in matrix form. This is used internally, and it is kept as an instance variable for reuse purposes.
    • transposedSampleMatrix

      private final com.irurueta.algebra.Matrix transposedSampleMatrix
      The transposed sample matrix. This is used internally, and it is kept as an instance variable for reuse purposes.
    • singleCov

      private final com.irurueta.algebra.Matrix singleCov
      A covariance matrix for a single sample. This is used internally, and it is kept as an instance variable for reuse purposes.
  • Constructor Details

    • MeasurementNoiseCovarianceEstimator

      public MeasurementNoiseCovarianceEstimator(int measureParams) throws SignalProcessingException
      Constructor.
      Parameters:
      measureParams - number of measurement parameters for each sample (i.e. when sampling 3D acceleration samples, this value must be 3, since each sample contains acceleration values for x, y, and z axes).
      Throws:
      IllegalArgumentException - if provided number of measure parameters is less than 1.
      SignalProcessingException - if something fails.
  • Method Details

    • update

      public com.irurueta.algebra.Matrix update(double[] sample) throws SignalProcessingException
      Updates currently estimated covariance matrix by adding provided sample data.
      Parameters:
      sample - sample to be added to update covariance matrix.
      Returns:
      covariance matrix after update.
      Throws:
      IllegalArgumentException - if provided sample length is not equal to the number of measure parameters set for this instance.
      SignalProcessingException - if something fails.
    • getMeasureParams

      public int getMeasureParams()
      Obtains the number of measurement vector dimensions (measure parameters).
      Returns:
      number of measurement vector dimensions (measure parameters).
    • getMeasurementNoiseCov

      public com.irurueta.algebra.Matrix getMeasurementNoiseCov()
      Obtains estimated measurement noise covariance matrix.
      Returns:
      estimated measurement noise covariance matrix.
    • getSampleAverage

      public double[] getSampleAverage()
      Obtains estimated sample average.
      Returns:
      estimated sample average.
    • getSampleCount

      public long getSampleCount()
      Obtains number of samples used for estimation.
      Returns:
      number of samples used for estimation.