Package com.irurueta.navigation.indoor
Class Utils
java.lang.Object
com.irurueta.navigation.indoor.Utils
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleSpeed of light expressed in meters per second (m/s). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doubledBmToPower(double dBm) Converts from dBm's to linear power value expressed in mW.static doublepowerTodBm(double mW) Converts from mW to logarithmic power value expressed in dBm's.static doublepropagatePowerVarianceToDistanceVariance(double txPower, double rxPower, double pathLossExponent, double frequency, Double rxPowerVariance) Propagates variance on received power measure into distance variance by considering the following formula for received power (expressed in dBm's): rxPower = pathLossExponent * kdB + txPower - 5.0 * pathLossExponent * logSqrDistance, where logSqrDistance is the logarithm in base 10 of the squared distance logSqrDistance = Math.log(d^2).static com.irurueta.statistics.MultivariateNormalDistpropagateVariancesToDistanceVariance(double txPower, double rxPower, double pathLossExponent, double frequency, Double txPowerVariance, Double rxPowerVariance, Double pathLossExponentVariance) Propagates provided variances (transmitted power variance, received power variance and path-loss variance) into distance variance by considering the following formula for received power (expressed in dBm's): rxPower = pathLossExponent * kdB + txPower - 5.0 * pathLossExponent * logSqrDistance, where logSqrDistance is the logarithm in base 10 of the squared distance logSqrDistance = Math.log(d^2).static com.irurueta.statistics.MultivariateNormalDistpropagateVariancesToRssiDifferenceVariance2D(double pathLossExponent, com.irurueta.geometry.Point2D fingerprintPosition, com.irurueta.geometry.Point2D radioSourcePosition, com.irurueta.geometry.Point2D estimatedPosition, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) Propagates provided variances (path-loss exponent variance, fingerprint position covariance and radio source position covariance) into difference of rssi variance by considering the 2D expression.static com.irurueta.statistics.MultivariateNormalDistpropagateVariancesToRssiDifferenceVariance3D(double pathLossExponent, com.irurueta.geometry.Point3D fingerprintPosition, com.irurueta.geometry.Point3D radioSourcePosition, com.irurueta.geometry.Point3D estimatedPosition, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) Propagates provided variances (path-loss exponent variance, fingerprint position covariance and radio source position covariance) into difference of rssi variance by considering the 3D expression.static com.irurueta.statistics.MultivariateNormalDistpropagateVariancesToRssiVarianceFirstOrderNonLinear2D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point2D fingerprintPosition, com.irurueta.geometry.Point2D radioSourcePosition, com.irurueta.geometry.Point2D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 2D 1st order Taylor expression of received power.static com.irurueta.statistics.MultivariateNormalDistpropagateVariancesToRssiVarianceFirstOrderNonLinear3D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point3D fingerprintPosition, com.irurueta.geometry.Point3D radioSourcePosition, com.irurueta.geometry.Point3D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 3D 1st order Taylor expression of received power.static com.irurueta.statistics.MultivariateNormalDistpropagateVariancesToRssiVarianceSecondOrderNonLinear2D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point2D fingerprintPosition, com.irurueta.geometry.Point2D radioSourcePosition, com.irurueta.geometry.Point2D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 2D 2nd order Taylor expression of received power.static com.irurueta.statistics.MultivariateNormalDistpropagateVariancesToRssiVarianceSecondOrderNonLinear3D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point3D fingerprintPosition, com.irurueta.geometry.Point3D radioSourcePosition, com.irurueta.geometry.Point3D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 3D 1st order Taylor expression of received power.static com.irurueta.statistics.MultivariateNormalDistpropagateVariancesToRssiVarianceThirdOrderNonLinear2D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point2D fingerprintPosition, com.irurueta.geometry.Point2D radioSourcePosition, com.irurueta.geometry.Point2D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 2D 3rd order Taylor expression of received power.static com.irurueta.statistics.MultivariateNormalDistpropagateVariancesToRssiVarianceThirdOrderNonLinear3D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point3D fingerprintPosition, com.irurueta.geometry.Point3D radioSourcePosition, com.irurueta.geometry.Point3D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 3D 3rd order Taylor expression of received power.
-
Field Details
-
SPEED_OF_LIGHT
public static final double SPEED_OF_LIGHTSpeed of light expressed in meters per second (m/s).- See Also:
-
-
Constructor Details
-
Utils
private Utils()Prevents instantiation
-
-
Method Details
-
dBmToPower
public static double dBmToPower(double dBm) Converts from dBm's to linear power value expressed in mW.- Parameters:
dBm- value to be converted expressed in dBm's.- Returns:
- converted value expressed in mW.
-
powerTodBm
public static double powerTodBm(double mW) Converts from mW to logarithmic power value expressed in dBm's.- Parameters:
mW- value to be converted expressed in mW's.- Returns:
- converted value expressed in dBm's.
-
propagatePowerVarianceToDistanceVariance
public static double propagatePowerVarianceToDistanceVariance(double txPower, double rxPower, double pathLossExponent, double frequency, Double rxPowerVariance) Propagates variance on received power measure into distance variance by considering the following formula for received power (expressed in dBm's): rxPower = pathLossExponent * kdB + txPower - 5.0 * pathLossExponent * logSqrDistance, where logSqrDistance is the logarithm in base 10 of the squared distance logSqrDistance = Math.log(d^2). Taking into account the previous formula, distance can be expressed as: d = 10.0^((pathLossExponent * kdB + txPower - rxPower)/(10.0 * pathLossExponent)) where kdB is a constant having the following expression: kdB = 10.0 * log(c / (4 * pi * f)), where c is the speed of light and f is the frequency.- Parameters:
txPower- transmitted power expressed in dBm's.rxPower- received power expressed in dBm's.pathLossExponent- path loss exponent.frequency- frequency expressed in Hz.rxPowerVariance- received power variance.- Returns:
- distance variance.
-
propagateVariancesToDistanceVariance
public static com.irurueta.statistics.MultivariateNormalDist propagateVariancesToDistanceVariance(double txPower, double rxPower, double pathLossExponent, double frequency, Double txPowerVariance, Double rxPowerVariance, Double pathLossExponentVariance) throws IndoorException Propagates provided variances (transmitted power variance, received power variance and path-loss variance) into distance variance by considering the following formula for received power (expressed in dBm's): rxPower = pathLossExponent * kdB + txPower - 5.0 * pathLossExponent * logSqrDistance, where logSqrDistance is the logarithm in base 10 of the squared distance logSqrDistance = Math.log(d^2). Taking into account the previous formula, distance can be expressed as: d = 10.0^((pathLossExponent * kdB + txPower - rxPower)/(10.0 * pathLossExponent)) where kdB is a constant having the following expression: kdB = 10.0 * log(c / (4 * pi * f)), where c is the speed of light and f is the frequency.- Parameters:
txPower- transmitted power expressed in dBm's.rxPower- received power expressed in dBm's.pathLossExponent- path loss exponent.frequency- frequency expressed in Hz.txPowerVariance- transmitted power variance.rxPowerVariance- received power variance.pathLossExponentVariance- path loss exponent variance.- Returns:
- a normal distribution containing both expected distance and its variance.
- Throws:
IndoorException- if something fails.
-
propagateVariancesToRssiVarianceFirstOrderNonLinear2D
public static com.irurueta.statistics.MultivariateNormalDist propagateVariancesToRssiVarianceFirstOrderNonLinear2D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point2D fingerprintPosition, com.irurueta.geometry.Point2D radioSourcePosition, com.irurueta.geometry.Point2D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) throws IndoorException Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 2D 1st order Taylor expression of received power. Notice that any unknown variance is assumed to be zero.- Parameters:
fingerprintRssi- closest located fingerprint reading RSSI expressed in dBm's.pathLossExponent- path-loss exponent.fingerprintPosition- position of closest fingerprint.radioSourcePosition- radio source position associated to fingerprint reading.estimatedPosition- position to be estimated. Usually this is equal to the initial position used by a non-linear algorithm.fingerprintRssiVariance- variance of fingerprint RSSI or null if unknown.pathLossExponentVariance- variance of path-loss exponent or null if unknown.fingerprintPositionCovariance- covariance of fingerprint position or null if unknown.radioSourcePositionCovariance- covariance of radio source position or null if unknown.estimatedPositionCovariance- covariance of position to be estimated or null if unknown. (This is usually unknown).- Returns:
- a normal distribution containing expected received RSSI value and its variance.
- Throws:
IndoorException- if something fails.
-
propagateVariancesToRssiVarianceFirstOrderNonLinear3D
public static com.irurueta.statistics.MultivariateNormalDist propagateVariancesToRssiVarianceFirstOrderNonLinear3D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point3D fingerprintPosition, com.irurueta.geometry.Point3D radioSourcePosition, com.irurueta.geometry.Point3D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) throws IndoorException Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 3D 1st order Taylor expression of received power. Notice that any unknown variance is assumed to be zero.- Parameters:
fingerprintRssi- closest located fingerprint reading RSSI expressed in dBm's.pathLossExponent- path-loss exponent.fingerprintPosition- position of closest fingerprint.radioSourcePosition- radio source position associated to fingerprint reading.estimatedPosition- position to be estimated. Usually this is equal to the initial position used by a non-linear algorithm.fingerprintRssiVariance- variance of fingerprint RSSI or null if unknown.pathLossExponentVariance- variance of path-loss exponent or null if unknown.fingerprintPositionCovariance- covariance of fingerprint position or null if unknown.radioSourcePositionCovariance- covariance of radio source position or null if unknown.estimatedPositionCovariance- covariance of position to be estimated or null if unknown. (This is usually unknown).- Returns:
- a normal distribution containing expected received RSSI value and its variance.
- Throws:
IndoorException- if something fails.
-
propagateVariancesToRssiVarianceSecondOrderNonLinear2D
public static com.irurueta.statistics.MultivariateNormalDist propagateVariancesToRssiVarianceSecondOrderNonLinear2D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point2D fingerprintPosition, com.irurueta.geometry.Point2D radioSourcePosition, com.irurueta.geometry.Point2D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) throws IndoorException Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 2D 2nd order Taylor expression of received power. Notice that any unknown variance is assumed to be zero.- Parameters:
fingerprintRssi- closest located fingerprint reading RSSI expressed in dBm's.pathLossExponent- path-loss exponent.fingerprintPosition- position of closest fingerprint.radioSourcePosition- radio source position associated to fingerprint reading.estimatedPosition- position to be estimated. Usually this is equal to the initial position used by a non-linear algorithm.fingerprintRssiVariance- variance of fingerprint RSSI or null if unknown.pathLossExponentVariance- variance of path-loss exponent or null if unknown.fingerprintPositionCovariance- covariance of fingerprint position or null if unknown.radioSourcePositionCovariance- covariance of radio source position or null if unknown.estimatedPositionCovariance- covariance of position to be estimated or null if unknown. (This is usually unknown).- Returns:
- a normal distribution containing expected received RSSI value and its variance.
- Throws:
IndoorException- if something fails.
-
propagateVariancesToRssiVarianceSecondOrderNonLinear3D
public static com.irurueta.statistics.MultivariateNormalDist propagateVariancesToRssiVarianceSecondOrderNonLinear3D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point3D fingerprintPosition, com.irurueta.geometry.Point3D radioSourcePosition, com.irurueta.geometry.Point3D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) throws IndoorException Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 3D 1st order Taylor expression of received power. Notice that any unknown variance is assumed to be zero.- Parameters:
fingerprintRssi- closest located fingerprint reading RSSI expressed in dBm's.pathLossExponent- path-loss exponent.fingerprintPosition- position of closest fingerprint.radioSourcePosition- radio source position associated to fingerprint reading.estimatedPosition- position to be estimated. Usually this is equal to the initial position used by a non-linear algorithm.fingerprintRssiVariance- variance of fingerprint RSSI or null if unknown.pathLossExponentVariance- variance of path-loss exponent or null if unknown.fingerprintPositionCovariance- covariance of fingerprint position or null if unknown.radioSourcePositionCovariance- covariance of radio source position or null if unknown.estimatedPositionCovariance- covariance of position to be estimated or null if unknown. (This is usually unknown).- Returns:
- a normal distribution containing expected received RSSI value and its variance.
- Throws:
IndoorException- if something fails.
-
propagateVariancesToRssiVarianceThirdOrderNonLinear2D
public static com.irurueta.statistics.MultivariateNormalDist propagateVariancesToRssiVarianceThirdOrderNonLinear2D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point2D fingerprintPosition, com.irurueta.geometry.Point2D radioSourcePosition, com.irurueta.geometry.Point2D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) throws IndoorException Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 2D 3rd order Taylor expression of received power. Notice that any unknown variance is assumed to be zero.- Parameters:
fingerprintRssi- closest located fingerprint reading RSSI expressed in dBm's.pathLossExponent- path-loss exponent.fingerprintPosition- position of closest fingerprint.radioSourcePosition- radio source position associated to fingerprint reading.estimatedPosition- position to be estimated. Usually this is equal to the initial position used by a non-linear algorithm.fingerprintRssiVariance- variance of fingerprint RSSI or null if unknown.pathLossExponentVariance- variance of path-loss exponent or null if unknown.fingerprintPositionCovariance- covariance of fingerprint position or null if unknown.radioSourcePositionCovariance- covariance of radio source position or null if unknown.estimatedPositionCovariance- covariance of position to be estimated or null if unknown. (This is usually unknown).- Returns:
- a normal distribution containing expected received RSSI value and its variance.
- Throws:
IndoorException- if something fails.
-
propagateVariancesToRssiVarianceThirdOrderNonLinear3D
public static com.irurueta.statistics.MultivariateNormalDist propagateVariancesToRssiVarianceThirdOrderNonLinear3D(double fingerprintRssi, double pathLossExponent, com.irurueta.geometry.Point3D fingerprintPosition, com.irurueta.geometry.Point3D radioSourcePosition, com.irurueta.geometry.Point3D estimatedPosition, Double fingerprintRssiVariance, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) throws IndoorException Propagates provided variances (fingerprint rssi variance, path-loss exponent variance, fingerprint position covariance and radio source position covariance) into rssi variance by considering the 3D 3rd order Taylor expression of received power. Notice that any unknown variance is assumed to be zero.- Parameters:
fingerprintRssi- closest located fingerprint reading RSSI expressed in dBm's.pathLossExponent- path-loss exponent.fingerprintPosition- position of closest fingerprint.radioSourcePosition- radio source position associated to fingerprint reading.estimatedPosition- position to be estimated. Usually this is equal to the initial position used by a non-linear algorithm.fingerprintRssiVariance- variance of fingerprint RSSI or null if unknown.pathLossExponentVariance- variance of path-loss exponent or null if unknown.fingerprintPositionCovariance- covariance of fingerprint position or null if unknown.radioSourcePositionCovariance- covariance of radio source position or null if unknown.estimatedPositionCovariance- covariance of position to be estimated or null if unknown. (This is usually unknown).- Returns:
- a normal distribution containing expected received RSSI value and its variance.
- Throws:
IndoorException- if something fails.
-
propagateVariancesToRssiDifferenceVariance2D
public static com.irurueta.statistics.MultivariateNormalDist propagateVariancesToRssiDifferenceVariance2D(double pathLossExponent, com.irurueta.geometry.Point2D fingerprintPosition, com.irurueta.geometry.Point2D radioSourcePosition, com.irurueta.geometry.Point2D estimatedPosition, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) throws IndoorException Propagates provided variances (path-loss exponent variance, fingerprint position covariance and radio source position covariance) into difference of rssi variance by considering the 2D expression. Notice that any unknown variance is assumed to be zero.- Parameters:
pathLossExponent- path-loss exponent.fingerprintPosition- position of closest fingerprint.radioSourcePosition- radio source position associated to fingerprint reading.estimatedPosition- position to be estimated. Usually this is equal to the initial position used by a non-linear algorithm.pathLossExponentVariance- variance of path-loss exponent or null if unknown.fingerprintPositionCovariance- covariance of fingerprint position or null if unknown.radioSourcePositionCovariance- covariance of radio source position or null if unknown.estimatedPositionCovariance- covariance of position to be estimated or null if unknown. (This is usually unknown).- Returns:
- a normal distribution containing expected received RSSI value and its variance.
- Throws:
IndoorException- if something fails.
-
propagateVariancesToRssiDifferenceVariance3D
public static com.irurueta.statistics.MultivariateNormalDist propagateVariancesToRssiDifferenceVariance3D(double pathLossExponent, com.irurueta.geometry.Point3D fingerprintPosition, com.irurueta.geometry.Point3D radioSourcePosition, com.irurueta.geometry.Point3D estimatedPosition, Double pathLossExponentVariance, com.irurueta.algebra.Matrix fingerprintPositionCovariance, com.irurueta.algebra.Matrix radioSourcePositionCovariance, com.irurueta.algebra.Matrix estimatedPositionCovariance) throws IndoorException Propagates provided variances (path-loss exponent variance, fingerprint position covariance and radio source position covariance) into difference of rssi variance by considering the 3D expression. Notice that any unknown variance is assumed to be zero.- Parameters:
pathLossExponent- path-loss exponent.fingerprintPosition- position of closest fingerprint.radioSourcePosition- radio source position associated to fingerprint reading.estimatedPosition- position to be estimated. Usually this is equal to the initial position used by a non-linear algorithm.pathLossExponentVariance- variance of path-loss exponent or null if unknown.fingerprintPositionCovariance- covariance of fingerprint position or null if unknown.radioSourcePositionCovariance- covariance of radio source position or null if unknown.estimatedPositionCovariance- covariance of position to be estimated or null if unknown. (This is usually unknown).- Returns:
- a normal distribution containing expected received RSSI value and its variance.
- Throws:
IndoorException- if something fails.
-