0.2.0
Loading...
Searching...
No Matches
Functions.hpp File Reference

GNSS helper functions. More...

Go to the source code of this file.

Functions

double NAV::calcSagnacCorrection (const Eigen::Vector3d &e_posAnt, const Eigen::Vector3d &e_satPos)
 Calculates the Earth rotation/Sagnac correction.
 
double NAV::calcSagnacRateCorrection (const Eigen::Vector3d &e_posAnt, const Eigen::Vector3d &e_satPos, const Eigen::Vector3d &e_velAnt, const Eigen::Vector3d &e_satVel)
 Calculates the Range-rate Earth rotation/Sagnac correction.
 
double NAV::calcSatAzimuth (const Eigen::Vector3d &n_lineOfSightUnitVector)
 Calculates the azimuth of the satellite from the antenna.
 
double NAV::calcSatElevation (const Eigen::Vector3d &n_lineOfSightUnitVector)
 Calculates the elevation of the satellite from the antenna.
 
double NAV::doppler2rangeRate (double doppler, Frequency freq, int8_t num)
 Transforms a doppler-shift into a range-rate.
 
Eigen::Vector3d NAV::e_calcLineOfSightUnitVector (const Eigen::Vector3d &e_posAnt, const Eigen::Vector3d &e_posSat)
 Calculates the line-of-sight unit vector from the user antenna to the satellite.
 
double NAV::galSisaIdx2Val (uint8_t idx)
 Converts a GALILEO SISA (Signal in space accuracy) index to it's value.
 
uint8_t NAV::galSisaVal2Idx (double val)
 Converts a GALILEO SISA (Signal in space accuracy) value to it's index.
 
double NAV::gpsUraIdx2Val (uint8_t idx)
 Converts a GPS URA (user range accuracy) index to it's value.
 
uint8_t NAV::gpsUraVal2Idx (double val)
 Converts a GPS URA (user range accuracy) value to it's index.
 
double NAV::rangeRate2doppler (double rangeRate, Frequency freq, int8_t num)
 Transforms a range-rate into a doppler-shift.
 
double NAV::ratioFreqSquared (Frequency f1, Frequency f2, int8_t num1, int8_t num2)
 Calculates the ration of the frequencies squared γ
 

Detailed Description

GNSS helper functions.

Author
T. Topp (topp@.nosp@m.ins..nosp@m.uni-s.nosp@m.tutt.nosp@m.gart..nosp@m.de)
Date
2022-05-19

Function Documentation

◆ calcSagnacCorrection()

double NAV::calcSagnacCorrection ( const Eigen::Vector3d & e_posAnt,
const Eigen::Vector3d & e_satPos )

Calculates the Earth rotation/Sagnac correction.

Parameters
[in]e_posAntPosition of the user antenna in ECEF frame coordinates
[in]e_satPosPosition of the satellite in ECEF frame coordinates
Returns
Earth rotation/Sagnac correction [m]
Note
See [43] Springer Handbook ch. 19.1.1, eq. 19.7, p. 562

◆ calcSagnacRateCorrection()

double NAV::calcSagnacRateCorrection ( const Eigen::Vector3d & e_posAnt,
const Eigen::Vector3d & e_satPos,
const Eigen::Vector3d & e_velAnt,
const Eigen::Vector3d & e_satVel )

Calculates the Range-rate Earth rotation/Sagnac correction.

Parameters
[in]e_posAntPosition of the user antenna in ECEF frame coordinates
[in]e_satPosPosition of the satellite in ECEF frame coordinates
[in]e_velAntVelocity of the user antenna in ECEF frame coordinates
[in]e_satVelVelocity of the satellite in ECEF frame coordinates
Returns
Range-rate Earth rotation/Sagnac correction [m/s]
Note
See [17] Groves ch. 8.5.3, eq. 8.46, p. 342

◆ calcSatAzimuth()

double NAV::calcSatAzimuth ( const Eigen::Vector3d & n_lineOfSightUnitVector)

Calculates the azimuth of the satellite from the antenna.

Parameters
[in]n_lineOfSightUnitVectorLine-of-sight unit vector from the antenna to the satellite in NED frame coordinates
Returns
Azimuth [rad]
Note
See [17] Groves, ch. 8.5.4, eq. 8.57, p. 344

◆ calcSatElevation()

double NAV::calcSatElevation ( const Eigen::Vector3d & n_lineOfSightUnitVector)

Calculates the elevation of the satellite from the antenna.

Parameters
[in]n_lineOfSightUnitVectorLine-of-sight unit vector from the antenna to the satellite in NED frame coordinates
Returns
Elevation [rad]
Note
See [17] Groves, ch. 8.5.4, eq. 8.57, p. 344

◆ doppler2rangeRate()

double NAV::doppler2rangeRate ( double doppler,
Frequency freq,
int8_t num )

Transforms a doppler-shift into a range-rate.

Parameters
[in]dopplerThe doppler-shift to transform [Hz]
[in]freqFrequency
[in]numFrequency number. Only used for GLONASS G1 and G2
Returns
The corresponding range-rate [m/s]
Note
See [17] Groves, ch. 9.2.7, eq. 9.70, p. 388

◆ e_calcLineOfSightUnitVector()

Eigen::Vector3d NAV::e_calcLineOfSightUnitVector ( const Eigen::Vector3d & e_posAnt,
const Eigen::Vector3d & e_posSat )

Calculates the line-of-sight unit vector from the user antenna to the satellite.

Parameters
[in]e_posAntPosition of the user antenna in ECEF frame coordinates
[in]e_posSatPosition of the satellite in ECEF frame coordinates
Returns
The line-of-sight unit vector in ECEF frame coordinates
Note
See [17] Groves, ch. 8.5.3, eq. 8.41, p. 341

◆ galSisaIdx2Val()

double NAV::galSisaIdx2Val ( uint8_t idx)

Converts a GALILEO SISA (Signal in space accuracy) index to it's value.

Parameters
[in]idxThe SISA index
Returns
SISA value in [m]
Note
See [13] GAL ICD ch. 5.1.12, p.58

◆ galSisaVal2Idx()

uint8_t NAV::galSisaVal2Idx ( double val)

Converts a GALILEO SISA (Signal in space accuracy) value to it's index.

Parameters
[in]valSISA value in [m]
Returns
The SISA index
Note
See [13] GAL ICD ch. 5.1.12, p.58

◆ gpsUraIdx2Val()

double NAV::gpsUraIdx2Val ( uint8_t idx)

Converts a GPS URA (user range accuracy) index to it's value.

Parameters
[in]idxThe URA index
Returns
URA value in [m]
Note
See [20] GPS ICD ch. 20.3.3.3.1.3, p.92ff

◆ gpsUraVal2Idx()

uint8_t NAV::gpsUraVal2Idx ( double val)

Converts a GPS URA (user range accuracy) value to it's index.

Parameters
[in]valURA value in [m]
Returns
The URA index
Note
See [20] GPS ICD ch. 20.3.3.3.1.3, p.92ff

◆ rangeRate2doppler()

double NAV::rangeRate2doppler ( double rangeRate,
Frequency freq,
int8_t num )

Transforms a range-rate into a doppler-shift.

Parameters
[in]rangeRateThe range-rate to transform [m/s]
[in]freqFrequency
[in]numFrequency number. Only used for GLONASS G1 and G2
Returns
The corresponding doppler-shift [Hz]
Note
See [17] Groves, ch. 9.2.7, eq. 9.70, p. 388

◆ ratioFreqSquared()

double NAV::ratioFreqSquared ( Frequency f1,
Frequency f2,
int8_t num1,
int8_t num2 )

Calculates the ration of the frequencies squared γ

\begin{equation} \label{eq:eq-GNSS-freqRatio} \gamma = (f_1 / f_2)^2 \end{equation}

Parameters
[in]f1First frequency (usually L1)
[in]f2Second frequency (usually L2)
[in]num1First frequency number. Only used for GLONASS G1 and G2
[in]num2Second frequency number. Only used for GLONASS G1 and G2
Returns
The ratio (f1/f2)^2 [-]
Note
See [20] IS-GPS-200 ch. 20.3.3.3.3.2 p.99