Class WindowedAngularSpeedMeasurementNoiseEstimator
java.lang.Object
com.irurueta.navigation.inertial.calibration.noise.WindowedMeasurementNoiseEstimator<com.irurueta.units.AngularSpeedUnit,com.irurueta.units.AngularSpeed,WindowedAngularSpeedMeasurementNoiseEstimator,WindowedAngularSpeedMeasurementNoiseEstimatorListener>
com.irurueta.navigation.inertial.calibration.noise.WindowedAngularSpeedMeasurementNoiseEstimator
- All Implemented Interfaces:
GyroscopeNoiseRootPsdSource
public class WindowedAngularSpeedMeasurementNoiseEstimator
extends WindowedMeasurementNoiseEstimator<com.irurueta.units.AngularSpeedUnit,com.irurueta.units.AngularSpeed,WindowedAngularSpeedMeasurementNoiseEstimator,WindowedAngularSpeedMeasurementNoiseEstimatorListener>
implements GyroscopeNoiseRootPsdSource
Estimates measurement noise variances and PSD's (Power Spectral Density)
along with angular speed average value for a windowed amount of samples.
This estimator must be used when the body where the gyroscope is attached to
keeps a constant angular speed while capturing data (i.e. when body is static has
a constant overall angular speed due to Earth rotation).
To compute PSD's, this estimator assumes that gyroscope samples are
obtained at a constant provided rate equal to
WindowedMeasurementNoiseEstimator.getTimeInterval()
seconds.
If not available, gyroscope sampling rate average can be estimated using
TimeIntervalEstimator
.
Notice that if there are less than WindowedMeasurementNoiseEstimator.getWindowSize()
processed
samples in the window, this estimator will assume that the remaining ones
until the window is completed have zero values.
This estimator does NOT require the knowledge of current location and body
orientation.
This implementation of noise estimator will use the following units:
- radians per second (rad/s) for angular speed, average or standard deviation values.
- (rad^2/s^2) fr angular speed variances.
- (rad^2/s) for gyroscope PSD (Power Spectral Density).
- (rad * s^-0.5) for gyroscope root PSD (Power Spectral Density).-
Field Summary
Fields inherited from class com.irurueta.navigation.inertial.calibration.noise.WindowedMeasurementNoiseEstimator
DEFAULT_TIME_INTERVAL_SECONDS, DEFAULT_WINDOW_SIZE, MIN_WINDOW_SIZE
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor.WindowedAngularSpeedMeasurementNoiseEstimator
(WindowedAngularSpeedMeasurementNoiseEstimatorListener listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected double
convertToDefaultUnit
(com.irurueta.units.AngularSpeed value) Converts provided measurement into default unit.protected com.irurueta.units.AngularSpeed
createMeasurement
(double value, com.irurueta.units.AngularSpeedUnit unit) Creates a measurement with provided value and unit.protected com.irurueta.units.AngularSpeedUnit
Gets default unit for a measurement.double
Gets gyroscope base noise level root PSD (Power Spectral Density) expressed in (rad * s^-0.5)Methods inherited from class com.irurueta.navigation.inertial.calibration.noise.WindowedMeasurementNoiseEstimator
addMeasurement, addMeasurement, addMeasurementAndProcess, addMeasurementAndProcess, getAvg, getAvgAsMeasurement, getAvgAsMeasurement, getFirstWindowedMeasurement, getFirstWindowedMeasurement, getFirstWindowedMeasurementValue, getLastWindowedMeasurement, getLastWindowedMeasurement, getLastWindowedMeasurementValue, getListener, getNumberOfAddedSamples, getNumberOfProcessedSamples, getNumberOfSamplesInWindow, getPsd, getRootPsd, getStandardDeviation, getStandardDeviationAsMeasurement, getStandardDeviationAsMeasurement, getTimeInterval, getTimeIntervalAsTime, getTimeIntervalAsTime, getVariance, getWindowSize, isRunning, isWindowFilled, reset, setListener, setTimeInterval, setTimeInterval, setWindowSize
-
Constructor Details
-
WindowedAngularSpeedMeasurementNoiseEstimator
public WindowedAngularSpeedMeasurementNoiseEstimator()Constructor.
-
-
Method Details
-
getDefaultUnit
protected com.irurueta.units.AngularSpeedUnit getDefaultUnit()Gets default unit for a measurement.- Specified by:
getDefaultUnit
in classWindowedMeasurementNoiseEstimator<com.irurueta.units.AngularSpeedUnit,
com.irurueta.units.AngularSpeed, WindowedAngularSpeedMeasurementNoiseEstimator, WindowedAngularSpeedMeasurementNoiseEstimatorListener> - Returns:
- default unit for a measurement.
-
createMeasurement
protected com.irurueta.units.AngularSpeed createMeasurement(double value, com.irurueta.units.AngularSpeedUnit unit) Creates a measurement with provided value and unit.- Specified by:
createMeasurement
in classWindowedMeasurementNoiseEstimator<com.irurueta.units.AngularSpeedUnit,
com.irurueta.units.AngularSpeed, WindowedAngularSpeedMeasurementNoiseEstimator, WindowedAngularSpeedMeasurementNoiseEstimatorListener> - Parameters:
value
- value to be set.unit
- unit to be set.- Returns:
- created measurement.
-
convertToDefaultUnit
protected double convertToDefaultUnit(com.irurueta.units.AngularSpeed value) Converts provided measurement into default unit.- Specified by:
convertToDefaultUnit
in classWindowedMeasurementNoiseEstimator<com.irurueta.units.AngularSpeedUnit,
com.irurueta.units.AngularSpeed, WindowedAngularSpeedMeasurementNoiseEstimator, WindowedAngularSpeedMeasurementNoiseEstimatorListener> - Parameters:
value
- measurement to be converted.- Returns:
- converted value.
-
getGyroscopeBaseNoiseLevelRootPsd
public double getGyroscopeBaseNoiseLevelRootPsd()Gets gyroscope base noise level root PSD (Power Spectral Density) expressed in (rad * s^-0.5)- Specified by:
getGyroscopeBaseNoiseLevelRootPsd
in interfaceGyroscopeNoiseRootPsdSource
- Returns:
- gyroscope base noise level root PSD.
-