0.4.1
Loading...
Searching...
No Matches
NAV::PolynomialCycleSlipDetector< Key > Class Template Reference

Cycle-slip detection. More...

Data Structures

struct  SignalDetector
 Signal Detector struct. More...
 

Public Types

using Strategy
 Strategies for fitting.
 

Public Member Functions

PolynomialCycleSlipDetectorResult checkForCycleSlip (const Key &key, InsTime insTime, double measurementDifference, double threshold)
 Checks for a cycle slip.
 
void clear ()
 Empties the collected polynomials.
 
Strategy getFitStrategy () const
 Get the strategy used for fitting.
 
size_t getPolynomialDegree () const
 Get the degree of the polynomial which is used for fitting.
 
size_t getWindowSize () const
 Get the window size for the polynomial fit.
 
bool isEnabled () const
 Is the cycle-slip detector enabled?
 
 PolynomialCycleSlipDetector (size_t windowSize, size_t polyDegree, bool enabled=true)
 Constructor.
 
void reset (const Key &key)
 Reset the polynomial for the given combination.
 
void setEnabled (bool enabled)
 Sets the enabled state.
 
void setFitStrategy (Strategy strategy)
 Sets the strategy used for fitting.
 
void setPolynomialDegree (size_t polyDegree)
 Sets the degree of the polynomial which is used for fitting.
 
void setWindowSize (size_t windowSize)
 Sets the amount of points used for the fit (sliding window)
 

Private Member Functions

void addMeasurement (const Key &key, InsTime insTime, double measurementDifference)
 Add a measurement to the polynomial fit.
 
std::optional< Polynomial< double > > calcPolynomial (const Key &key) const
 Calculates the polynomial from the collected data.
 
std::optional< double > calcRelativeTime (const Key &key, const InsTime &insTime) const
 Calculate the relative time to the start time of the detector.
 
std::optional< double > predictValue (const Key &key, const InsTime &insTime) const
 Predicts a value from the collected data and polynomial fit.
 

Static Private Member Functions

static double calcRelativeTime (const InsTime &insTime, const SignalDetector &detector)
 Calculate the relative time to the start time of the detector.
 

Private Attributes

unordered_map< Key, SignalDetector_detectors
 Detectors, one for each key.
 
bool _enabled
 Whether the cycle-slip detector is enabled.
 
size_t _polyDegree
 Polynomial degree to fit.
 
Strategy _strategy
 Strategy used for fitting.
 
size_t _windowSize
 Window size for the sliding window.
 

Friends

class CycleSlipDetector
 
class GnssAnalyzer
 

Detailed Description

template<typename Key>
class NAV::PolynomialCycleSlipDetector< Key >

Cycle-slip detection.

Definition at line 48 of file PolynomialCycleSlipDetector.hpp.

Member Typedef Documentation

◆ Strategy

template<typename Key>
using NAV::PolynomialCycleSlipDetector< Key >::Strategy

Strategies for fitting.

Definition at line 148 of file PolynomialCycleSlipDetector.hpp.

Constructor & Destructor Documentation

◆ PolynomialCycleSlipDetector()

template<typename Key>
NAV::PolynomialCycleSlipDetector< Key >::PolynomialCycleSlipDetector ( size_t windowSize,
size_t polyDegree,
bool enabled = true )
inlineexplicit

Constructor.

Parameters
[in]windowSizeAmount of points to use for the fit (sliding window)
[in]polyDegreePolynomial degree to fit
[in]enabledWhether the detector is enabled

Definition at line 55 of file PolynomialCycleSlipDetector.hpp.

Member Function Documentation

◆ addMeasurement()

template<typename Key>
void NAV::PolynomialCycleSlipDetector< Key >::addMeasurement ( const Key & key,
InsTime insTime,
double measurementDifference )
inlineprivate

Add a measurement to the polynomial fit.

Parameters
[in]keyKey of the detector
[in]insTimeTime of the measurement
[in]measurementDifferenceMeasurement difference

Definition at line 228 of file PolynomialCycleSlipDetector.hpp.

◆ calcPolynomial()

template<typename Key>
std::optional< Polynomial< double > > NAV::PolynomialCycleSlipDetector< Key >::calcPolynomial ( const Key & key) const
inlinenodiscardprivate

Calculates the polynomial from the collected data.

Parameters
[in]keyKey of the detector

Definition at line 217 of file PolynomialCycleSlipDetector.hpp.

◆ calcRelativeTime() [1/2]

template<typename Key>
static double NAV::PolynomialCycleSlipDetector< Key >::calcRelativeTime ( const InsTime & insTime,
const SignalDetector & detector )
inlinestaticnodiscardprivate

Calculate the relative time to the start time of the detector.

Parameters
[in]insTimeTime of the measurement
[in]detectorDetector to use

Definition at line 188 of file PolynomialCycleSlipDetector.hpp.

◆ calcRelativeTime() [2/2]

template<typename Key>
std::optional< double > NAV::PolynomialCycleSlipDetector< Key >::calcRelativeTime ( const Key & key,
const InsTime & insTime ) const
inlinenodiscardprivate

Calculate the relative time to the start time of the detector.

Parameters
[in]keyKey of the detector
[in]insTimeTime of the measurement

Definition at line 195 of file PolynomialCycleSlipDetector.hpp.

◆ checkForCycleSlip()

template<typename Key>
PolynomialCycleSlipDetectorResult NAV::PolynomialCycleSlipDetector< Key >::checkForCycleSlip ( const Key & key,
InsTime insTime,
double measurementDifference,
double threshold )
inlinenodiscard

Checks for a cycle slip.

Parameters
[in]keyKey of the detector
[in]insTimeTime of the measurement
[in]measurementDifferenceMeasurement difference
[in]thresholdThreshold to categorize a measurement as cycle slip
Returns
Cycle-slip result

Definition at line 64 of file PolynomialCycleSlipDetector.hpp.

◆ clear()

template<typename Key>
void NAV::PolynomialCycleSlipDetector< Key >::clear ( )
inline

Empties the collected polynomials.

Definition at line 94 of file PolynomialCycleSlipDetector.hpp.

◆ getFitStrategy()

template<typename Key>
Strategy NAV::PolynomialCycleSlipDetector< Key >::getFitStrategy ( ) const
inlinenodiscard

Get the strategy used for fitting.

Definition at line 151 of file PolynomialCycleSlipDetector.hpp.

◆ getPolynomialDegree()

template<typename Key>
size_t NAV::PolynomialCycleSlipDetector< Key >::getPolynomialDegree ( ) const
inlinenodiscard

Get the degree of the polynomial which is used for fitting.

Definition at line 135 of file PolynomialCycleSlipDetector.hpp.

◆ getWindowSize()

template<typename Key>
size_t NAV::PolynomialCycleSlipDetector< Key >::getWindowSize ( ) const
inlinenodiscard

Get the window size for the polynomial fit.

Definition at line 122 of file PolynomialCycleSlipDetector.hpp.

◆ isEnabled()

template<typename Key>
bool NAV::PolynomialCycleSlipDetector< Key >::isEnabled ( ) const
inlinenodiscard

Is the cycle-slip detector enabled?

Definition at line 110 of file PolynomialCycleSlipDetector.hpp.

◆ predictValue()

template<typename Key>
std::optional< double > NAV::PolynomialCycleSlipDetector< Key >::predictValue ( const Key & key,
const InsTime & insTime ) const
inlinenodiscardprivate

Predicts a value from the collected data and polynomial fit.

Parameters
[in]keyKey of the detector
[in]insTimeTime of the measurement

Definition at line 205 of file PolynomialCycleSlipDetector.hpp.

◆ reset()

template<typename Key>
void NAV::PolynomialCycleSlipDetector< Key >::reset ( const Key & key)
inline

Reset the polynomial for the given combination.

Parameters
[in]keyKey of the detector

Definition at line 101 of file PolynomialCycleSlipDetector.hpp.

◆ setEnabled()

template<typename Key>
void NAV::PolynomialCycleSlipDetector< Key >::setEnabled ( bool enabled)
inline

Sets the enabled state.

Parameters
[in]enabledWhether to enabled or not

Definition at line 116 of file PolynomialCycleSlipDetector.hpp.

◆ setFitStrategy()

template<typename Key>
void NAV::PolynomialCycleSlipDetector< Key >::setFitStrategy ( Strategy strategy)
inline

Sets the strategy used for fitting.

Parameters
[in]strategyStrategy for fitting

Definition at line 154 of file PolynomialCycleSlipDetector.hpp.

◆ setPolynomialDegree()

template<typename Key>
void NAV::PolynomialCycleSlipDetector< Key >::setPolynomialDegree ( size_t polyDegree)
inline

Sets the degree of the polynomial which is used for fitting.

Parameters
[in]polyDegreePolynomial degree to fit

Definition at line 138 of file PolynomialCycleSlipDetector.hpp.

◆ setWindowSize()

template<typename Key>
void NAV::PolynomialCycleSlipDetector< Key >::setWindowSize ( size_t windowSize)
inline

Sets the amount of points used for the fit (sliding window)

Parameters
[in]windowSizeAmount of points to use for the fit

Definition at line 125 of file PolynomialCycleSlipDetector.hpp.

Friends And Related Symbol Documentation

◆ CycleSlipDetector

template<typename Key>
friend class CycleSlipDetector
friend

Definition at line 237 of file PolynomialCycleSlipDetector.hpp.

◆ GnssAnalyzer

template<typename Key>
friend class GnssAnalyzer
friend

Definition at line 236 of file PolynomialCycleSlipDetector.hpp.

Field Documentation

◆ _detectors

template<typename Key>
unordered_map<Key, SignalDetector> NAV::PolynomialCycleSlipDetector< Key >::_detectors
private

Detectors, one for each key.

Definition at line 183 of file PolynomialCycleSlipDetector.hpp.

◆ _enabled

template<typename Key>
bool NAV::PolynomialCycleSlipDetector< Key >::_enabled
private

Whether the cycle-slip detector is enabled.

Definition at line 179 of file PolynomialCycleSlipDetector.hpp.

◆ _polyDegree

template<typename Key>
size_t NAV::PolynomialCycleSlipDetector< Key >::_polyDegree
private

Polynomial degree to fit.

Definition at line 181 of file PolynomialCycleSlipDetector.hpp.

◆ _strategy

template<typename Key>
Strategy NAV::PolynomialCycleSlipDetector< Key >::_strategy
private

Strategy used for fitting.

Definition at line 182 of file PolynomialCycleSlipDetector.hpp.

◆ _windowSize

template<typename Key>
size_t NAV::PolynomialCycleSlipDetector< Key >::_windowSize
private

Window size for the sliding window.

Definition at line 180 of file PolynomialCycleSlipDetector.hpp.


The documentation for this class was generated from the following file: