![]() |
GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
|
Classes | |
| class | Bayesian_estimator |
| Bayesian_estimator is an estimator of noise characteristics (i.e. mean, covariance). More... | |
| class | HistogramBitSynchronizer |
| Histogram-based navigation data bit synchronizer. More... | |
| class | Cpu_Multicorrelator |
| Class that implements carrier wipe-off and correlators. More... | |
| class | Cpu_Multicorrelator_16sc |
| Class that implements carrier wipe-off and correlators. More... | |
| class | Cpu_Multicorrelator_Real_Codes |
| Class that implements carrier wipe-off and correlators. More... | |
| struct | GPU_Complex |
| struct | GPU_Complex_Short |
| class | cuda_multicorrelator |
| Class that implements carrier wipe-off and correlators using NVIDIA CUDA GPU accelerators. More... | |
| class | Dll_Pll_Conf |
| class | Dll_Pll_Conf_Fpga |
| class | Exponential_Smoother |
| Class that implements a first-order exponential smoother. More... | |
| class | Fpga_Multicorrelator_8sc |
| Class that implements carrier wipe-off and correlators. More... | |
| class | ModelFunction |
| class | CubatureFilter |
| class | UnscentedFilter |
| class | Tcp_Communication |
| TCP communication class. More... | |
| class | Tcp_Packet_Data |
| Class that implements a TCP data packet. More... | |
| class | Tracking_2nd_DLL_filter |
| This class implements a 2nd order DLL filter for code tracking loop. More... | |
| class | Tracking_2nd_PLL_filter |
| This class implements a 2nd order PLL filter for carrier tracking loop. More... | |
| class | Tracking_FLL_PLL_filter |
| This class implements a hybrid FLL and PLL filter for tracking carrier loop. More... | |
| class | Tracking_loop_filter |
| This class implements a generic 1st, 2nd or 3rd order loop filter. More... | |
Macros | |
| #define | NUM_TX_VARIABLES_GALILEO_E1 13 |
| #define | NUM_TX_VARIABLES_GPS_L1_CA 9 |
| #define | NUM_RX_VARIABLES 4 |
Typedefs | |
| using | b_io_context = boost::asio::io_service |
Functions | |
| float | cn0_svn_estimator (const gr_complex *Prompt_buffer, int length, float coh_integration_time_s) |
| cn0_svn_estimator is a Carrier-to-Noise (CN0) estimator based on the Signal-to-Noise Variance (SNV) estimator | |
| float | cn0_m2m4_estimator (const gr_complex *Prompt_buffer, int length, float coh_integration_time_s) |
| cn0_m2m4_estimator is a Carrier-to-Noise (CN0) estimator based on the Second- and Fourth-Order Moments Method (M2M4) | |
| float | carrier_lock_detector (const gr_complex *Prompt_buffer, int length) |
| A carrier lock detector. | |
| 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]. | |
| double | pll_four_quadrant_atan (gr_complex prompt_s1) |
| PLL four quadrant arctan discriminator. | |
| double | pll_cloop_two_quadrant_atan (gr_complex prompt_s1) |
| PLL Costas loop two quadrant arctan discriminator. | |
| 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. | |
| 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. | |
| 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) |
Utitilies for GNSS signal tracking.
| #define NUM_RX_VARIABLES 4 |
Definition at line 39 of file tcp_communication.h.
| #define NUM_TX_VARIABLES_GALILEO_E1 13 |
Definition at line 37 of file tcp_communication.h.
| #define NUM_TX_VARIABLES_GPS_L1_CA 9 |
Definition at line 38 of file tcp_communication.h.
| using b_io_context = boost::asio::io_service |
Definition at line 34 of file tcp_communication.h.
| double CalculateSlope | ( | Fun && | f, |
| double | x ) |
Definition at line 112 of file tracking_discriminators.h.
| double CalculateSlopeAbs | ( | Fun && | f, |
| double | x ) |
Definition at line 120 of file tracking_discriminators.h.
| float carrier_lock_detector | ( | const gr_complex * | Prompt_buffer, |
| int | length ) |
A carrier lock detector.
The Carrier Phase Lock Detector block uses the estimate of the cosine of twice the carrier phase error is given by
\begin{equation} C2\phi=\frac{NBD}{NBP}, \end{equation}
where \( NBD=(\sum^{N-1}_{i=0}|Im(Pc(i))|)^2+(\sum^{N-1}_{i=0}|Re(Pc(i))|)^2 \), \( NBP=\sum^{N-1}_{i=0}Im(Pc(i))^2-\sum^{N-1}_{i=0}Re(Pc(i))^2 \), and \( Pc(i) \) is the prompt correlator output for the sample index i. Ref: Van Dierendonck, A.J. (1996), Global Positioning System: Theory and Applications, Volume I, Chapter 8: GPS Receivers, AJ Systems, Los Altos, CA 94024. Inc.: 329-407.
| float cn0_m2m4_estimator | ( | const gr_complex * | Prompt_buffer, |
| int | length, | ||
| float | coh_integration_time_s ) |
cn0_m2m4_estimator is a Carrier-to-Noise (CN0) estimator based on the Second- and Fourth-Order Moments Method (M2M4)
Signal-to-Noise (SNR) ( \( \rho \)) estimator using the Moments Method:
\begin{equation} \hat{\rho}=\frac{\sqrt{2 \hat{M}_2^2 - \hat{M}_4 }}{\hat{M}_2-\sqrt{2 \hat{M}_2^2 - \hat{M}_4 }}, \end{equation}
where \( \hat{M}_2=\frac{1}{N}\sum^{K-1}_{k=0}|P[k]|^2 \), \( \hat{M}_4 = \frac{1}{K}\sum^{K-1}_{k=0}|P[k]|^4 \), \( |\cdot| \) is the absolute value, and \( P[k] \) is the prompt correlator output for the sample index k.
The SNR value is converted to CN0 [dB-Hz] taking into account the coherent integration time, using the following formula:
\begin{equation} CN0_{dB}=10*log(\hat{\rho})-10*log(T_{int}), \end{equation}
where \( T_{int} \) is the coherent integration time, in seconds.
Ref: D. R. Pauluzzi, N. C. Beaulieu, "A comparison of SNR estimation techniques for the AWGN channel," IEEE Trans. on Comm., vol. 48, no. 10, pp. 1681–1691, Oct. 2000.
| float cn0_svn_estimator | ( | const gr_complex * | Prompt_buffer, |
| int | length, | ||
| float | coh_integration_time_s ) |
cn0_svn_estimator is a Carrier-to-Noise (CN0) estimator based on the Signal-to-Noise Variance (SNV) estimator
Signal-to-Noise (SNR) ( \( \rho \)) estimator using the Signal-to-Noise Variance (SNV) estimator:
\begin{equation} \hat{\rho}=\frac{\hat{P}_s}{\hat{P}_n}=\frac{\hat{P}_s}{\hat{P}_{tot}-\hat{P}_s}, \end{equation}
where \( \hat{P}_s=\left(\frac{1}{N}\sum^{N-1}_{i=0}|Re(Pc(i))|\right)^2 \) is the estimation of the signal power, \( \hat{P}_{tot}=\frac{1}{N}\sum^{N-1}_{i=0}|Pc(i)|^2 \) is the estimator of the total power, \( |\cdot| \) is the absolute value, \( Re(\cdot) \) stands for the real part of the value, and \( Pc(i) \) is the prompt correlator output for the sample index i.
The SNR value is converted to CN0 [dB-Hz], taking into account the coherent integration time, using the following formula:
\begin{equation} CN0_{dB}=10*log(\hat{\rho})-10*log(T_{int}), \end{equation}
where \( T_{int} \) is the coherent integration time, in seconds.
Ref: Marco Pini, Emanuela Falletti and Maurizio Fantino, "Performance Evaluation of C/N0 Estimators using a Real Time GNSS Software Receiver," IEEE 10th International Symposium on Spread Spectrum Techniques and Applications, pp.28-30, August 2008.
| double CosBocCorrelationFunction | ( | double | offset_in_chips | ) |
Definition at line 171 of file tracking_discriminators.h.
| 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].
| 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].
| 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].
| double GetYIntercept | ( | Fun && | f, |
| double | x ) |
Definition at line 128 of file tracking_discriminators.h.
| double GetYInterceptAbs | ( | Fun && | f, |
| double | x ) |
Definition at line 137 of file tracking_discriminators.h.
| double phase_unwrap | ( | double | phase_rad | ) |
Phase unwrapping function, input is [rad].
| 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].
| 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].
| double SinBocCorrelationFunction | ( | double | offset_in_chips | ) |
Definition at line 150 of file tracking_discriminators.h.