GNSS-SDR  0.0.13
An Open Source GNSS Software Defined Receiver
Functions
tracking_discriminators.h File Reference

Interface of a library with a set of code tracking and carrier tracking discriminators. More...

#include <gnuradio/gr_complex.h>
#include <cmath>

Go to the source code of this file.

Functions

double fll_four_quadrant_atan (gr_complex prompt_s1, gr_complex prompt_s2, double t1, double t2)
 
double fll_diff_atan (gr_complex prompt_s1, gr_complex prompt_s2, double t1, double t2)
 
double phase_unwrap (double phase_rad)
 Phase unwrapping function, input is [rad]. More...
 
double pll_four_quadrant_atan (gr_complex prompt_s1)
 PLL four quadrant arctan discriminator. More...
 
double pll_cloop_two_quadrant_atan (gr_complex prompt_s1)
 PLL Costas loop two quadrant arctan discriminator. More...
 
double dll_nc_e_minus_l_normalized (gr_complex early_s1, gr_complex late_s1, float spc=0.5, float slope=1.0, float y_intercept=1.0)
 DLL Noncoherent Early minus Late envelope normalized discriminator. More...
 
double dll_nc_vemlp_normalized (gr_complex very_early_s1, gr_complex early_s1, gr_complex late_s1, gr_complex very_late_s1)
 DLL Noncoherent Very Early Minus Late Power (VEMLP) normalized discriminator. More...
 
template<typename Fun >
double CalculateSlope (Fun &&f, double x)
 
template<typename Fun >
double CalculateSlopeAbs (Fun &&f, double x)
 
template<typename Fun >
double GetYIntercept (Fun &&f, double x)
 
template<typename Fun >
double GetYInterceptAbs (Fun &&f, double x)
 
template<int M = 1, int N = M>
double SinBocCorrelationFunction (double offset_in_chips)
 
template<int M = 1, int N = M>
double CosBocCorrelationFunction (double offset_in_chips)
 

Detailed Description

Interface of a library with a set of code tracking and carrier tracking discriminators.

Authors
  • Javier Arribas, 2011. jarribas(at)cttc.es
  • Luis Esteve, 2012. luis(at)epsilon-formacion.com

Library with a set of code tracking and carrier tracking discriminators that is used by the tracking algorithms.


Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)

GNSS-SDR is a software defined Global Navigation Satellite Systems receiver

This file is part of GNSS-SDR.

SPDX-License-Identifier: GPL-3.0-or-later


Definition in file tracking_discriminators.h.

Function Documentation

◆ dll_nc_e_minus_l_normalized()

double dll_nc_e_minus_l_normalized ( gr_complex  early_s1,
gr_complex  late_s1,
float  spc = 0.5,
float  slope = 1.0,
float  y_intercept = 1.0 
)

DLL Noncoherent Early minus Late envelope normalized discriminator.

DLL Noncoherent Early minus Late envelope normalized discriminator:

\begin{equation} error = \frac{y_{intercept} - \text{slope} * \epsilon}{\text{slope}} \frac{E-L}{E+L}, \end{equation}

where $E=\sqrt{I_{ES}^2+Q_{ES}^2}$ is the Early correlator output absolute value and $L=\sqrt{I_{LS}^2+Q_{LS}^2}$ is the Late correlator output absolute value. The output is in [chips].

◆ dll_nc_vemlp_normalized()

double dll_nc_vemlp_normalized ( gr_complex  very_early_s1,
gr_complex  early_s1,
gr_complex  late_s1,
gr_complex  very_late_s1 
)

DLL Noncoherent Very Early Minus Late Power (VEMLP) normalized discriminator.

DLL Noncoherent Very Early Minus Late Power (VEMLP) normalized discriminator, using the outputs of four correlators, Very Early (VE), Early (E), Late (L) and Very Late (VL):

\begin{equation} error=\frac{E-L}{E+L}, \end{equation}

where $E=\sqrt{I_{VE}^2+Q_{VE}^2+I_{E}^2+Q_{E}^2}$ and $L=\sqrt{I_{VL}^2+Q_{VL}^2+I_{L}^2+Q_{L}^2}$ . The output is in [chips].

◆ fll_four_quadrant_atan()

double fll_four_quadrant_atan ( gr_complex  prompt_s1,
gr_complex  prompt_s2,
double  t1,
double  t2 
)

brief FLL four quadrant arctan discriminator

FLL four quadrant arctan discriminator:

\begin{equation} \frac{\phi_2-\phi_1}{t_2-t1}=\frac{ATAN2(cross,dot)}{t_1-t_2}, \end{equation}

where $cross=I_{PS1}Q_{PS2}-I_{PS2}Q_{PS1}$ and $dot=I_{PS1}I_{PS2}+Q_{PS1}Q_{PS2}$, $I_{PS1},Q_{PS1}$ are the inphase and quadrature prompt correlator outputs respectively at sample time $t_1$, and $I_{PS2},Q_{PS2}$ are the inphase and quadrature prompt correlator outputs respectively at sample time $t_2$. The output is in [radians/second].

◆ phase_unwrap()

double phase_unwrap ( double  phase_rad)

Phase unwrapping function, input is [rad].

◆ pll_cloop_two_quadrant_atan()

double pll_cloop_two_quadrant_atan ( gr_complex  prompt_s1)

PLL Costas loop two quadrant arctan discriminator.

PLL Costas loop two quadrant arctan discriminator:

\begin{equation} \phi=ATAN\left(\frac{Q_{PS}}{I_{PS}}\right), \end{equation}

where $I_{PS1},Q_{PS1}$ are the inphase and quadrature prompt correlator outputs respectively. The output is in [radians].

◆ pll_four_quadrant_atan()

double pll_four_quadrant_atan ( gr_complex  prompt_s1)

PLL four quadrant arctan discriminator.

PLL four quadrant arctan discriminator:

\begin{equation} \phi=ATAN2(Q_{PS},I_{PS}), \end{equation}

where $I_{PS1},Q_{PS1}$ are the inphase and quadrature prompt correlator outputs respectively. The output is in [radians].