Class Utils

java.lang.Object
com.irurueta.navigation.indoor.Utils

public class Utils extends Object
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final double
    Speed of light expressed in meters per second (m/s).
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Prevents instantiation
  • Method Summary

    Modifier and Type
    Method
    Description
    static double
    dBmToPower(double dBm)
    Converts from dBm's to linear power value expressed in mW.
    static double
    powerTodBm(double mW)
    Converts from mW to logarithmic power value expressed in dBm's.
    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).
    static com.irurueta.statistics.MultivariateNormalDist
    propagateVariancesToDistanceVariance(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.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)
    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.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)
    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.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)
    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.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)
    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.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)
    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.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)
    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.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)
    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.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)
    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.

    Methods inherited from class java.lang.Object

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

    • SPEED_OF_LIGHT

      public static final double SPEED_OF_LIGHT
      Speed 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.