GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
Gnss_Almanac Class Reference

Base class for GNSS almanac storage. More...

#include <gnss_almanac.h>

Inheritance diagram for Gnss_Almanac:
Beidou_Dnav_Almanac Galileo_Almanac Gps_Almanac

Public Member Functions

 Gnss_Almanac ()=default
double predicted_doppler (double rx_time_s, double lat, double lon, double h, double ve, double vn, double vu, int band) const
 Computes prediction of the Doppler shift for a given time and receiver's position and velocity.
void satellitePosVelComputation (double transmitTime, std::array< double, 7 > &pos_vel_dtr) const
 Computes satellite Position and Velocity, in ECEF, for a given time (expressed in seconds of week).

Public Attributes

uint32_t PRN {}
 SV PRN NUMBER.
double delta_i {}
 Inclination Angle at Reference Time (relative to i_0 = 0.30 semi-circles).
int32_t toa {}
 Almanac data reference time of week [s].
int32_t WNa {}
 Almanac week number.
double M_0 {}
 Mean Anomaly at Reference Time [semi-circles].
double ecc {}
 Eccentricity [dimensionless].
double sqrtA {}
 Square Root of the Semi-Major Axis [sqrt(m)].
double OMEGA_0 {}
 Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-circles].
double omega {}
 Argument of Perigee [semi-cicles].
double OMEGAdot {}
 Rate of Right Ascension [semi-circles/s].
double af0 {}
 Coefficient 0 of code phase offset model [s].
double af1 {}
 Coefficient 1 of code phase offset model [s/s].

Protected Attributes

char System {}
 Character ID of the GNSS system. 'G': GPS. 'E': Galileo. 'C': BeiDou.

Detailed Description

Base class for GNSS almanac storage.

Definition at line 33 of file gnss_almanac.h.

Constructor & Destructor Documentation

◆ Gnss_Almanac()

Gnss_Almanac::Gnss_Almanac ( )
default

Default constructor

Member Function Documentation

◆ predicted_doppler()

double Gnss_Almanac::predicted_doppler ( double rx_time_s,
double lat,
double lon,
double h,
double ve,
double vn,
double vu,
int band ) const

Computes prediction of the Doppler shift for a given time and receiver's position and velocity.

\[f_{d} = - \mathbf{v} \frac{\mathbf{x}^{T}}{\left| \mathbf{x} \right| } \frac{f_{L}}{c} \]

where:

\[\mathbf{v} = \mathbf{v}_{sat} - \mathbf{v}_{rx} \]

\[\mathbf{x} = \mathbf{x}_{sat} - \mathbf{x}_{rx} \]

\[\left| \mathbf{x} \right| = \sqrt{\mathbf{x}\mathbf{x}^{T}} \]

Parameters
[in]rx_time_sTime of Week in seconds
[in]latReceiver's latitude in degrees
[in]lonReceiver's longitude in degrees
[in]hReceiver's height in meters
[in]veReceiver's velocity in the East direction [m/s]
[in]vnReceiver's velocity in the North direction [m/s]
[in]vuReceiver's velocity in the Up direction [m/s]
[in]bandSignal band for which the Doppler will be computed (1: L1 C/A, E1B, BI1; 2: L2C, BI2; 3: BI3; 5: L5/E5a; 6: E6B; 7: E5b; 8: E5a+E5b)

◆ satellitePosVelComputation()

void Gnss_Almanac::satellitePosVelComputation ( double transmitTime,
std::array< double, 7 > & pos_vel_dtr ) const

Computes satellite Position and Velocity, in ECEF, for a given time (expressed in seconds of week).

Member Data Documentation

◆ af0

double Gnss_Almanac::af0 {}

Coefficient 0 of code phase offset model [s].

Definition at line 91 of file gnss_almanac.h.

◆ af1

double Gnss_Almanac::af1 {}

Coefficient 1 of code phase offset model [s/s].

Definition at line 92 of file gnss_almanac.h.

◆ delta_i

double Gnss_Almanac::delta_i {}

Inclination Angle at Reference Time (relative to i_0 = 0.30 semi-circles).

Definition at line 82 of file gnss_almanac.h.

◆ ecc

double Gnss_Almanac::ecc {}

Eccentricity [dimensionless].

Definition at line 86 of file gnss_almanac.h.

◆ M_0

double Gnss_Almanac::M_0 {}

Mean Anomaly at Reference Time [semi-circles].

Definition at line 85 of file gnss_almanac.h.

◆ omega

double Gnss_Almanac::omega {}

Argument of Perigee [semi-cicles].

Definition at line 89 of file gnss_almanac.h.

◆ OMEGA_0

double Gnss_Almanac::OMEGA_0 {}

Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-circles].

Definition at line 88 of file gnss_almanac.h.

◆ OMEGAdot

double Gnss_Almanac::OMEGAdot {}

Rate of Right Ascension [semi-circles/s].

Definition at line 90 of file gnss_almanac.h.

◆ PRN

uint32_t Gnss_Almanac::PRN {}

SV PRN NUMBER.

Definition at line 81 of file gnss_almanac.h.

◆ sqrtA

double Gnss_Almanac::sqrtA {}

Square Root of the Semi-Major Axis [sqrt(m)].

Definition at line 87 of file gnss_almanac.h.

◆ System

char Gnss_Almanac::System {}
protected

Character ID of the GNSS system. 'G': GPS. 'E': Galileo. 'C': BeiDou.

Definition at line 95 of file gnss_almanac.h.

Referenced by Beidou_Dnav_Almanac::Beidou_Dnav_Almanac(), Galileo_Almanac::Galileo_Almanac(), and Gps_Almanac::Gps_Almanac().

◆ toa

int32_t Gnss_Almanac::toa {}

Almanac data reference time of week [s].

Definition at line 83 of file gnss_almanac.h.

◆ WNa

int32_t Gnss_Almanac::WNa {}

Almanac week number.

Definition at line 84 of file gnss_almanac.h.


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