Class GnssMeasurement

Class Documentation

class GnssMeasurement

Public Functions

GnssMeasurement(const std::vector<GnssTransmission> transmissions)
GnssMeasurement ExtractSignal(std::string freq_label)
inline int GetTrackedSatelliteNum() const
inline std::vector<int> GetTxIds() const
inline VecX GetCN0() const
inline VecXd GetEarthOccultation() const
inline VecXd GetMoonOccultation() const
inline VecXd GetAntennaOccultation() const
inline VecXd GetIonosOccultation() const
inline VecXd GetAtmosOccultation() const
VecX ComputeGnssPseudorange(VecX r_rx, Real dt_rx, bool with_noise = false, int seed = 0)

Compute the pseudorange measurement.

Parameters:
  • r_rxReceiver position [km]

  • dt_rxReceiver clock offset from Gnss time [s]

  • with_noise – use noise

  • seed – random seed

Returns:

VecX

VecX ComputeGnssPseudorangerate(VecX r_rx, VecX v_rx, Real dt_rx_dot, bool with_noise = false, int seed = 0)
VecX ComputeGnssCarrierPhase(VecX r_rx, Real dt_rx, VecX N_rx, bool with_noise = false, int seed = 0)
VecX GetGnssMeasurement(std::vector<GnssMeasurementType> meas_type, bool with_noise = false, int seed = 0)

Get the Gnss Measurement for the observed signal.

Parameters:
  • meas_type – vector of measurement types

  • with_noise – use noise

  • seed – random seed

Returns:

VecX

VecX GetPseudorange(bool with_noise = false, int seed = 0)

Get the Pseudorange for the observed signal.

Parameters:
  • with_noise – use noise

  • seed – random seed

Returns:

VecX

VecX GetPseudorangerate(bool with_noise = false, int seed = 0)

Get the Pseudorange rate for the observed signal.

Parameters:
  • with_noise – use noise

  • seed – random seed

Returns:

VecX

VecX GetCarrierPhase(bool with_noise = false, int seed = 0)

Get the Carrier Phase for the observed signal.

Parameters:
  • with_noise – use noise

  • seed – random seed

Returns:

VecX

VecX GetPredictedGnssMeasurement(double epoch, Vec6 rv_pred, Vec2 clk_pred, VecX N_pred, MatXd &H_gnss, std::vector<GnssMeasurementType> meas_type, Frame frame_in = Frame::MOON_CI)

Get the Gnss Measurement for the predicted state This method is used for the measurement update step in the filter.

Parameters:
  • epoch – epoch time

  • rv_pred – predicted position and velocity

  • clk_pred – predicted clock offset and drift

  • frame_in – coordinate system of the input state

VecX GetPredictedPseudorange(double epoch, Vec6 rv_pred, Vec2 clk_pred, MatXd &H_pr, Frame frame_in = Frame::MOON_CI)

Get the Pseudorange for the predicted state.

Parameters:
  • epoch – epoch time

  • rv_pred – predicted position and velocity

  • clk_pred – predicted clock offset and drift

  • H_pr – Jacobian of the measurement function

  • frame_in – coordinate system of the input state

Returns:

VecX

VecX GetPredictedPseudorangeAnalyticalJacobian(double epoch, Vec6 rv_pred, Vec2 clk_pred, MatXd &H_pr, Frame frame_in = Frame::MOON_CI)

Get the Pseudorange Analytical Jacobian object.

Parameters:
  • epoch – epoch time

  • rv_pred – predicted position and velocity

  • clk_pred – predicted clock offset and drift

  • H_pr – Jacobian of the measurement function

  • frame_in – coordinate system of the input state

Returns:

* VecX

VecX GetPredictedPseudorangerate(double epoch, Vec6 rv_pred, Vec2 clk_pred, MatXd &H_prr, Frame frame_in = Frame::MOON_CI)

Get the Pseudorange Rate object.

Parameters:
  • epoch – epoch time

  • rv_pred – predicted position and velocity

  • clk_pred – predicted clock offset and drift

  • H_prr – Jacobian of the measurement function

  • frame_in – coordinate system of the input state

Returns:

VecX

VecX GetPredictedCarrierPhase(double epoch, Vec6 rv_pred, Vec2 clk_pred, VecX N_pred, MatXd &H_cp, Frame frame_in = Frame::MOON_CI)

Get the Carrier Phase object.

Parameters:
  • epoch – epoch time

  • rv_pred – predicted position and velocity

  • clk_pred – predicted clock offset and drift

  • H_cp – Jacobian of the measurement function

  • frame_in – coordinate system of the input state

Returns:

VecX

VecXd GetGnssNoiseStdVec(std::vector<GnssMeasurementType> meas_type)
VecXd GetPseudorangeNoiseStdVec()
VecXd GetPseudorangeRateNoiseStdVec()
VecXd GetCarrierPhaseNoiseStdVec()
inline void SetGnssReceiverParam(GnssReceiverParam gnssr_param_input)
double ComputeGnssPseudorangeNoise(double CN0)

Compute the pseudorange noise using thermal noise in DLL Reference: Reference: “Understanding GPS”, p195.

Parameters:

CN0 – Carrier‐to‐noise density [dB‐Hz]

Returns:

double Pseudorange noise [km]

double ComputeGnssPseudorangerateNoise(double CN0, double lambda)

Compute the pseudorange rate noise using thermal noise in FLL Reference: “Understanding GPS”, p192.

Parameters:

CN0 – Carrier‐to‐noise density [dB‐Hz]

Returns:

double Pseudorange rate noise [km/s]

double ComputeGnssCarrierPhaseNoise(double CN0, double lambda)

Compute the carrier phase noise using thermal noise in PLL Reference: “Understanding GPS”, p185.

Parameters:

CN0 – Carrier‐to‐noise density [dB‐Hz]

Returns:

double Carrier phase noise [cycles]