0.2.0
Loading...
Searching...
No Matches
Functions.hpp
Go to the documentation of this file.
1// This file is part of INSTINCT, the INS Toolkit for Integrated
2// Navigation Concepts and Training by the Institute of Navigation of
3// the University of Stuttgart, Germany.
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
13
14#pragma once
15
16#include <Eigen/Core>
19
20namespace NAV
21{
22
29[[nodiscard]] Eigen::Vector3d e_calcLineOfSightUnitVector(const Eigen::Vector3d& e_posAnt, const Eigen::Vector3d& e_posSat);
30
36[[nodiscard]] double calcSatElevation(const Eigen::Vector3d& n_lineOfSightUnitVector);
37
43[[nodiscard]] double calcSatAzimuth(const Eigen::Vector3d& n_lineOfSightUnitVector);
44
51[[nodiscard]] double calcSagnacCorrection(const Eigen::Vector3d& e_posAnt, const Eigen::Vector3d& e_satPos);
52
61[[nodiscard]] double calcSagnacRateCorrection(const Eigen::Vector3d& e_posAnt, const Eigen::Vector3d& e_satPos, const Eigen::Vector3d& e_velAnt, const Eigen::Vector3d& e_satVel);
62
70[[nodiscard]] double doppler2rangeRate(double doppler, Frequency freq, int8_t num);
71
79[[nodiscard]] double rangeRate2doppler(double rangeRate, Frequency freq, int8_t num);
80
93[[nodiscard]] double ratioFreqSquared(Frequency f1, Frequency f2, int8_t num1, int8_t num2);
94
100[[nodiscard]] uint8_t galSisaVal2Idx(double val);
101
107[[nodiscard]] double galSisaIdx2Val(uint8_t idx);
108
114[[nodiscard]] uint8_t gpsUraVal2Idx(double val);
115
121[[nodiscard]] double gpsUraIdx2Val(uint8_t idx);
122
123} // namespace NAV
Frequency definition for different satellite systems.
double galSisaIdx2Val(uint8_t idx)
Converts a GALILEO SISA (Signal in space accuracy) index to it's value.
double ratioFreqSquared(Frequency f1, Frequency f2, int8_t num1, int8_t num2)
Calculates the ration of the frequencies squared γ
double 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.
Eigen::Vector3d 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 gpsUraIdx2Val(uint8_t idx)
Converts a GPS URA (user range accuracy) index to it's value.
double calcSatAzimuth(const Eigen::Vector3d &n_lineOfSightUnitVector)
Calculates the azimuth of the satellite from the antenna.
double calcSatElevation(const Eigen::Vector3d &n_lineOfSightUnitVector)
Calculates the elevation of the satellite from the antenna.
uint8_t galSisaVal2Idx(double val)
Converts a GALILEO SISA (Signal in space accuracy) value to it's index.
uint8_t gpsUraVal2Idx(double val)
Converts a GPS URA (user range accuracy) value to it's index.
double doppler2rangeRate(double doppler, Frequency freq, int8_t num)
Transforms a doppler-shift into a range-rate.
double calcSagnacCorrection(const Eigen::Vector3d &e_posAnt, const Eigen::Vector3d &e_satPos)
Calculates the Earth rotation/Sagnac correction.
double rangeRate2doppler(double rangeRate, Frequency freq, int8_t num)
Transforms a range-rate into a doppler-shift.
The class is responsible for all time-related tasks.
Frequency definition for different satellite systems.
Definition Frequency.hpp:59