Class WindowedAccelerationTriadNoiseEstimator
java.lang.Object
com.irurueta.navigation.inertial.calibration.noise.WindowedTriadNoiseEstimator<com.irurueta.units.AccelerationUnit,com.irurueta.units.Acceleration,AccelerationTriad,WindowedAccelerationTriadNoiseEstimator,WindowedAccelerationTriadNoiseEstimatorListener>
com.irurueta.navigation.inertial.calibration.noise.WindowedAccelerationTriadNoiseEstimator
- All Implemented Interfaces:
AccelerometerNoiseRootPsdSource
public class WindowedAccelerationTriadNoiseEstimator
extends WindowedTriadNoiseEstimator<com.irurueta.units.AccelerationUnit,com.irurueta.units.Acceleration,AccelerationTriad,WindowedAccelerationTriadNoiseEstimator,WindowedAccelerationTriadNoiseEstimatorListener>
implements AccelerometerNoiseRootPsdSource
Estimates accelerometer noise variances and PSD's (Power Spectral Densities)
along with the accelerometer average values for a windowed amount of samples.
This estimator must be used when the body where the accelerometer is attached
remains static on the same position with zero velocity while capturing data.
To compute PSD's, this estimator assumes that accelerometer samples are
obtained at a constant provided rate equal to
WindowedTriadNoiseEstimator.getTimeInterval() seconds.
If not available, accelerometer sampling rate average can be estimated using
TimeIntervalEstimator.
This estimator does NOT require the knowledge of current location and body
orientation.
Because body location and orientation is not known, estimated average values
cannot be used to determine biases. Only norm of noise estimations can be
(variance or standard deviation) safely used.
Notice that if there are less than WindowedTriadNoiseEstimator.getWindowSize() processed
samples in the window, this estimator will assume that the remaining ones
until the window is completed have zero values.
This implementation of noise estimator will use the following units:
- meters per squared second (m/s^2) for acceleration, average or standard deviation values.
- (m^2/s^4) for acceleration variances.
- (m^2 * s^-3) for accelerometer PSD (Power Spectral Density).
- (m * s^-1.5) for accelerometer root PSD (Power Spectral Density).-
Field Summary
Fields inherited from class com.irurueta.navigation.inertial.calibration.noise.WindowedTriadNoiseEstimator
DEFAULT_TIME_INTERVAL_SECONDS, DEFAULT_WINDOW_SIZE, MIN_WINDOW_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected AccelerationTriadcopyTriad(AccelerationTriad input) Creates a copy of a triad.protected com.irurueta.units.AccelerationcreateMeasurement(double value, com.irurueta.units.AccelerationUnit unit) Creates a measurement with provided value and unit.protected AccelerationTriadcreateTriad(double valueX, double valueY, double valueZ, com.irurueta.units.AccelerationUnit unit) Creates a triad with provided values and unit.protected AccelerationTriadcreateTriad(com.irurueta.units.Acceleration valueX, com.irurueta.units.Acceleration valueY, com.irurueta.units.Acceleration valueZ) Creates a triad with provided values.doubleGets accelerometer base noise level root PSD (Power Spectral Density) expressed in (m * s^-1.5).protected com.irurueta.units.AccelerationUnitGets default unit for a measurement.Methods inherited from class com.irurueta.navigation.inertial.calibration.noise.WindowedTriadNoiseEstimator
addTriad, addTriad, addTriad, addTriadAndProcess, addTriadAndProcess, addTriadAndProcess, getAverageStandardDeviation, getAverageStandardDeviationAsMeasurement, getAverageStandardDeviationAsMeasurement, getAvgNoisePsd, getAvgNorm, getAvgNormAsMeasurement, getAvgNormAsMeasurement, getAvgTriad, getAvgTriad, getAvgX, getAvgXAsMeasurement, getAvgXAsMeasurement, getAvgY, getAvgYAsMeasurement, getAvgYAsMeasurement, getAvgZ, getAvgZAsMeasurement, getAvgZAsMeasurement, getFirstWindowedTriad, getFirstWindowedTriad, getLastWindowedTriad, getLastWindowedTriad, getListener, getNoiseRootPsdNorm, getNumberOfProcessedSamples, getNumberOfSamplesInWindow, getPsdX, getPsdY, getPsdZ, getRootPsdX, getRootPsdY, getRootPsdZ, getStandardDeviationNorm, getStandardDeviationNormAsMeasurement, getStandardDeviationNormAsMeasurement, getStandardDeviationTriad, getStandardDeviationTriad, getStandardDeviationX, getStandardDeviationXAsMeasurement, getStandardDeviationXAsMeasurement, getStandardDeviationY, getStandardDeviationYAsMeasurement, getStandardDeviationYAsMeasurement, getStandardDeviationZ, getStandardDeviationZAsMeasurement, getStandardDeviationZAsMeasurement, getTimeInterval, getTimeIntervalAsTime, getTimeIntervalAsTime, getVarianceX, getVarianceY, getVarianceZ, getWindowSize, isRunning, isWindowFilled, reset, setListener, setTimeInterval, setTimeInterval, setWindowSize
-
Constructor Details
-
WindowedAccelerationTriadNoiseEstimator
public WindowedAccelerationTriadNoiseEstimator()Constructor.
-
-
Method Details
-
createTriad
protected AccelerationTriad createTriad(double valueX, double valueY, double valueZ, com.irurueta.units.AccelerationUnit unit) Creates a triad with provided values and unit.- Specified by:
createTriadin classWindowedTriadNoiseEstimator<com.irurueta.units.AccelerationUnit,com.irurueta.units.Acceleration, AccelerationTriad, WindowedAccelerationTriadNoiseEstimator, WindowedAccelerationTriadNoiseEstimatorListener> - Parameters:
valueX- x coordinate value.valueY- y coordinate value.valueZ- z coordinate value.unit- unit.- Returns:
- created triad.
-
createTriad
protected AccelerationTriad createTriad(com.irurueta.units.Acceleration valueX, com.irurueta.units.Acceleration valueY, com.irurueta.units.Acceleration valueZ) Creates a triad with provided values.- Specified by:
createTriadin classWindowedTriadNoiseEstimator<com.irurueta.units.AccelerationUnit,com.irurueta.units.Acceleration, AccelerationTriad, WindowedAccelerationTriadNoiseEstimator, WindowedAccelerationTriadNoiseEstimatorListener> - Parameters:
valueX- x coordinate value.valueY- y coordinate value.valueZ- z coordinate value.- Returns:
- created triad.
-
getDefaultUnit
protected com.irurueta.units.AccelerationUnit getDefaultUnit()Gets default unit for a measurement.- Specified by:
getDefaultUnitin classWindowedTriadNoiseEstimator<com.irurueta.units.AccelerationUnit,com.irurueta.units.Acceleration, AccelerationTriad, WindowedAccelerationTriadNoiseEstimator, WindowedAccelerationTriadNoiseEstimatorListener> - Returns:
- default unit for a measurement.
-
createMeasurement
protected com.irurueta.units.Acceleration createMeasurement(double value, com.irurueta.units.AccelerationUnit unit) Creates a measurement with provided value and unit.- Specified by:
createMeasurementin classWindowedTriadNoiseEstimator<com.irurueta.units.AccelerationUnit,com.irurueta.units.Acceleration, AccelerationTriad, WindowedAccelerationTriadNoiseEstimator, WindowedAccelerationTriadNoiseEstimatorListener> - Parameters:
value- value to be set.unit- unit to be set.- Returns:
- created measurement.
-
getAccelerometerBaseNoiseLevelRootPsd
public double getAccelerometerBaseNoiseLevelRootPsd()Gets accelerometer base noise level root PSD (Power Spectral Density) expressed in (m * s^-1.5).- Specified by:
getAccelerometerBaseNoiseLevelRootPsdin interfaceAccelerometerNoiseRootPsdSource- Returns:
- accelerometer base noise level root PSD.