|
Classes | |
| struct | cn0_est_state_t |
| struct | correlation_t |
Modules | |
| Tracking Loops | |
Functions | |
| void | calc_navigation_measurement (u8 n_channels, channel_measurement_t meas[], navigation_measurement_t nav_meas[], double nav_time, ephemeris_t ephemerides[]) |
| void | calc_navigation_measurement_ (u8 n_channels, channel_measurement_t *meas[], navigation_measurement_t *nav_meas[], double nav_time, ephemeris_t *ephemerides[]) |
| float | cn0_est (cn0_est_state_t *s, float I) |
| void | cn0_est_init (cn0_est_state_t *s, float bw, float cn0_0, float cutoff_freq, float loop_freq) |
| int | nav_meas_cmp (const void *a, const void *b) |
| u8 | tdcp_doppler (u8 n_new, navigation_measurement_t *m_new, u8 n_old, navigation_measurement_t *m_old, navigation_measurement_t *m_corrected) |
Functions used in tracking.
| void calc_navigation_measurement | ( | u8 | n_channels, |
| channel_measurement_t | meas[], | ||
| navigation_measurement_t | nav_meas[], | ||
| double | nav_time, | ||
| ephemeris_t | ephemerides[] | ||
| ) |
| void calc_navigation_measurement_ | ( | u8 | n_channels, |
| channel_measurement_t * | meas[], | ||
| navigation_measurement_t * | nav_meas[], | ||
| double | nav_time, | ||
| ephemeris_t * | ephemerides[] | ||
| ) |
| float cn0_est | ( | cn0_est_state_t * | s, |
| float | I | ||
| ) |
Estimate the Carrier-to-Noise Density,
of a tracked signal.
Implements a modification of the estimator presented in [1]. In [1] the estimator essentially uses a moving average over the reciprocal of the Signal-to-Noise Ratio (SNR). To reduce memory utilisation a simple IIR low-pass filter is used instead.
The noise and signal powers estimates for the
-th observation,
and
, are calculated as follows:
Where
is the in-phase output of the prompt correlator for the
-th integration period.
The "Noise-to-Signal Ratio" (NSR) is estimated and filtered with a simple low-pass IIR filter:
Where the IIR filter coefficient,
can be calculated in terms of a cutoff frequency
and the loop update frequency
.
The filtered NSR value is converted to a
value and returned.
References:
| s | The estimator state struct to initialise. |
| I | The prompt in-phase correlation from the tracking correlators. |
, in dBHz. | void cn0_est_init | ( | cn0_est_state_t * | s, |
| float | bw, | ||
| float | cn0_0, | ||
| float | cutoff_freq, | ||
| float | loop_freq | ||
| ) |
Initialise the
estimator state.
See cn0_est() for a full description.
| s | The estimator state struct to initialise. |
| bw | The loop noise bandwidth in Hz. |
| cn0_0 | The initial value of in dBHz. |
| cutoff_freq | The low-pass filter cutoff frequency, , in Hz. |
| loop_freq | The loop update frequency, , in Hz. |
| int nav_meas_cmp | ( | const void * | a, |
| const void * | b | ||
| ) |
| u8 tdcp_doppler | ( | u8 | n_new, |
| navigation_measurement_t * | m_new, | ||
| u8 | n_old, | ||
| navigation_measurement_t * | m_old, | ||
| navigation_measurement_t * | m_corrected | ||
| ) |
Set measurement precise Doppler using time difference of carrier phase.
| n_new | Number of measurements in `m_new` m_new Array of new navigation measurements |
| n_old | Number of measurements in `m_old` m_new Array of old navigation measurements, sorted by PRN |
| m_tdcp | Array in which to store the output measurements |