GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
Public Member Functions | Public Attributes | Protected Attributes | List of all members
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.

\[ 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}} \]

. More...

 
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) More...
 

Public Attributes

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

Protected Attributes

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

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. 'B': 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: