Class WindowedMagneticFluxDensityTriadNoiseEstimator
java.lang.Object
com.irurueta.navigation.inertial.calibration.noise.WindowedTriadNoiseEstimator<com.irurueta.units.MagneticFluxDensityUnit,com.irurueta.units.MagneticFluxDensity,MagneticFluxDensityTriad,WindowedMagneticFluxDensityTriadNoiseEstimator,WindowedMagneticFluxDensityTriadNoiseEstimatorListener>
com.irurueta.navigation.inertial.calibration.noise.WindowedMagneticFluxDensityTriadNoiseEstimator
public class WindowedMagneticFluxDensityTriadNoiseEstimator
extends WindowedTriadNoiseEstimator<com.irurueta.units.MagneticFluxDensityUnit,com.irurueta.units.MagneticFluxDensity,MagneticFluxDensityTriad,WindowedMagneticFluxDensityTriadNoiseEstimator,WindowedMagneticFluxDensityTriadNoiseEstimatorListener>
Estimates magnetometer noise variances and PSD's (Power Spectral Densities)
along with the magnetometer average values for a windowed amount of samples.
This estimator must be used when the body where the magnetometer is attached
remains static on the same position and orientation with zero velocity while
capturing data.
To compute PSD's, this estimator assumes that magnetometer samples are
obtained at a constant provided rate equal to
WindowedTriadNoiseEstimator.getTimeInterval()
second.
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 know, estimated average values
cannot be used to determine biases. Only norm of noise estimations can be
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:
- Teslas (T) for magnetic flux density, average or standard deviation values.
- squared Teslas (T^2) for magnetic flux density variances.
- (T^2 * s) for magnetometer PSD (Power Spectral Density).
- (T * s^0.5) for magnetometer 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.WindowedMagneticFluxDensityTriadNoiseEstimator
(WindowedMagneticFluxDensityTriadNoiseEstimatorListener listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected MagneticFluxDensityTriad
Creates a copy of a triad.protected com.irurueta.units.MagneticFluxDensity
createMeasurement
(double value, com.irurueta.units.MagneticFluxDensityUnit unit) Creates a measurement with provided value and unit.protected MagneticFluxDensityTriad
createTriad
(double valueX, double valueY, double valueZ, com.irurueta.units.MagneticFluxDensityUnit unit) Creates a triad with provided values and unit.protected MagneticFluxDensityTriad
createTriad
(com.irurueta.units.MagneticFluxDensity valueX, com.irurueta.units.MagneticFluxDensity valueY, com.irurueta.units.MagneticFluxDensity valueZ) Creates a triad with provided values.protected com.irurueta.units.MagneticFluxDensityUnit
Gets 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
-
WindowedMagneticFluxDensityTriadNoiseEstimator
public WindowedMagneticFluxDensityTriadNoiseEstimator()Constructor.
-
-
Method Details
-
createTriad
protected MagneticFluxDensityTriad createTriad(double valueX, double valueY, double valueZ, com.irurueta.units.MagneticFluxDensityUnit unit) Creates a triad with provided values and unit.- Specified by:
createTriad
in classWindowedTriadNoiseEstimator<com.irurueta.units.MagneticFluxDensityUnit,
com.irurueta.units.MagneticFluxDensity, MagneticFluxDensityTriad, WindowedMagneticFluxDensityTriadNoiseEstimator, WindowedMagneticFluxDensityTriadNoiseEstimatorListener> - Parameters:
valueX
- x coordinate value.valueY
- y coordinate value.valueZ
- z coordinate value.unit
- unit.- Returns:
- created triad.
-
createTriad
protected MagneticFluxDensityTriad createTriad(com.irurueta.units.MagneticFluxDensity valueX, com.irurueta.units.MagneticFluxDensity valueY, com.irurueta.units.MagneticFluxDensity valueZ) Creates a triad with provided values.- Specified by:
createTriad
in classWindowedTriadNoiseEstimator<com.irurueta.units.MagneticFluxDensityUnit,
com.irurueta.units.MagneticFluxDensity, MagneticFluxDensityTriad, WindowedMagneticFluxDensityTriadNoiseEstimator, WindowedMagneticFluxDensityTriadNoiseEstimatorListener> - Parameters:
valueX
- x coordinate value.valueY
- y coordinate value.valueZ
- z coordinate value.- Returns:
- created triad.
-
getDefaultUnit
protected com.irurueta.units.MagneticFluxDensityUnit getDefaultUnit()Gets default unit for a measurement.- Specified by:
getDefaultUnit
in classWindowedTriadNoiseEstimator<com.irurueta.units.MagneticFluxDensityUnit,
com.irurueta.units.MagneticFluxDensity, MagneticFluxDensityTriad, WindowedMagneticFluxDensityTriadNoiseEstimator, WindowedMagneticFluxDensityTriadNoiseEstimatorListener> - Returns:
- default unit for a measurement.
-
createMeasurement
protected com.irurueta.units.MagneticFluxDensity createMeasurement(double value, com.irurueta.units.MagneticFluxDensityUnit unit) Creates a measurement with provided value and unit.- Specified by:
createMeasurement
in classWindowedTriadNoiseEstimator<com.irurueta.units.MagneticFluxDensityUnit,
com.irurueta.units.MagneticFluxDensity, MagneticFluxDensityTriad, WindowedMagneticFluxDensityTriadNoiseEstimator, WindowedMagneticFluxDensityTriadNoiseEstimatorListener> - Parameters:
value
- value to be set.unit
- unit to be set.- Returns:
- created measurement.