mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-10-22 02:57:41 +00:00
- Major changes:
- The executable file and the default configuration file is now changed from "./install/mercurio" and "./conf/mercurio.conf" to "./install/gnss-sdr" and "./conf/gnss-sdr.conf", respectively. - Configuration file structure changed to define in a single entry the internal sampling frequency (after the signal conditioner). NOTICE that this change affects the all the adapters (acquisition, tracking, telemetry_decoder, observables, and PVT). All the adapters are now modified to work with this feature. - Moved several in-line GPS L1 CA parameters (a.k.a magic numbers..) to ./src/core/system_parameters/GPS_L1_CA.h definition file. - Tracking blocks now uses DOUBLE values in their outputs. - Observables and PVT now are separated. PVT and their associated libraries are moved to ./src/algorithms/PVT - Temporarily disabled the RINEX output (I am working on that!) - GNSS-SDR screen output now gives extended debug information of the receiver status and events. In the future, this output will be redirected to a log file. - Bug fixes: - FILE_SIGNAL_SOURCE now works correctly when the user configures GNSS-SDR to process the entire file. - GPS_L1_CA_DLL_PLL now computes correctly the PRN start values. - GPS_L1_CA_DLL_FLL_PLL now computes correctly the PRN start values. - Several modifications in GPS_L1_CA_Telemetry_Decoder, GPS_L1_CA_Observables, and GPS_L1_CA_PVT modules to fix the GPS position computation. - New features - Tracking blocks perform a signal integrity check against NaN outliers before the correlation process. - Tracking and PVT binary dump options are now documented and we provide MATLAB libraries and sample files to read it. Available in ./utils/matlab" and "./utils/matlab/libs" - Observables output rate can be configured. This option enables the GPS L1 CA PVT computation at a maximum rate of 1ms. - GPS_L1_CA_PVT now can perform a moving average Latitude, Longitude, and Altitude output for each of the Observables output. It is configurable using the configuration file. - Added Google Earth compatible Keyhole Markup Language (KML) output writer class (./src/algorithms/PVT/libs/kml_printer.h and ./src/algorithms/PVT/libs/kml_printer.cc ). You can see the receiver position directly using Google Earth. - We provide a master configuration file which includes an in-line documentation with all the new (and old) options. It can be found in ./conf/master.conf git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@84 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
@@ -3,5 +3,5 @@ project : build-dir ../../../../build ;
|
||||
obj tracking_discriminators : tracking_discriminators.cc ;
|
||||
obj CN_estimators : CN_estimators.cc ;
|
||||
obj tracking_FLL_PLL_filter : tracking_FLL_PLL_filter.cc ;
|
||||
obj tracking_2rd_PLL_filter : tracking_2rd_PLL_filter.cc ;
|
||||
obj tracking_2rd_DLL_filter : tracking_2rd_DLL_filter.cc ;
|
||||
obj tracking_2nd_PLL_filter : tracking_2nd_PLL_filter.cc ;
|
||||
obj tracking_2nd_DLL_filter : tracking_2nd_DLL_filter.cc ;
|
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* \file tracking_2rd_DLL_filter.cc
|
||||
* \file tracking_2nd_DLL_filter.cc
|
||||
* \brief Class that implements 2 order DLL filter for code tracking loop.
|
||||
* \author Javier Arribas, 2011. jarribas(at)cttc.es
|
||||
*
|
||||
@@ -34,10 +34,10 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "tracking_2rd_DLL_filter.h"
|
||||
#include "tracking_2nd_DLL_filter.h"
|
||||
|
||||
|
||||
void tracking_2rd_DLL_filter::calculate_lopp_coef(float* tau1,float* tau2, float lbw, float zeta, float k){
|
||||
void tracking_2nd_DLL_filter::calculate_lopp_coef(float* tau1,float* tau2, float lbw, float zeta, float k){
|
||||
// Solve natural frequency
|
||||
float Wn;
|
||||
Wn = lbw*8*zeta / (4*zeta*zeta + 1);
|
||||
@@ -46,13 +46,13 @@ void tracking_2rd_DLL_filter::calculate_lopp_coef(float* tau1,float* tau2, float
|
||||
*tau2 = (2.0 * zeta) / Wn;
|
||||
}
|
||||
|
||||
void tracking_2rd_DLL_filter::set_DLL_BW(float dll_bw_hz)
|
||||
void tracking_2nd_DLL_filter::set_DLL_BW(float dll_bw_hz)
|
||||
{
|
||||
//Calculate filter coefficient values
|
||||
d_dllnoisebandwidth=dll_bw_hz;
|
||||
calculate_lopp_coef(&d_tau1_code, &d_tau2_code, d_dllnoisebandwidth, d_dlldampingratio,1.0);// Calculate filter coefficient values
|
||||
}
|
||||
void tracking_2rd_DLL_filter::initialize(float d_acq_code_phase_samples)
|
||||
void tracking_2nd_DLL_filter::initialize(float d_acq_code_phase_samples)
|
||||
{
|
||||
// code tracking loop parameters
|
||||
d_old_code_nco = 0.0;
|
||||
@@ -60,7 +60,7 @@ void tracking_2rd_DLL_filter::initialize(float d_acq_code_phase_samples)
|
||||
|
||||
}
|
||||
|
||||
float tracking_2rd_DLL_filter::get_code_nco(float DLL_discriminator)
|
||||
float tracking_2nd_DLL_filter::get_code_nco(float DLL_discriminator)
|
||||
{
|
||||
float code_nco;
|
||||
code_nco = d_old_code_nco + (d_tau2_code/d_tau1_code)*(DLL_discriminator - d_old_code_error) + DLL_discriminator * (d_pdi_code/d_tau1_code);
|
||||
@@ -69,13 +69,13 @@ float tracking_2rd_DLL_filter::get_code_nco(float DLL_discriminator)
|
||||
return code_nco;
|
||||
}
|
||||
|
||||
tracking_2rd_DLL_filter::tracking_2rd_DLL_filter ()
|
||||
tracking_2nd_DLL_filter::tracking_2nd_DLL_filter ()
|
||||
{
|
||||
d_pdi_code = 0.001;// Summation interval for code
|
||||
d_dlldampingratio=0.7;
|
||||
}
|
||||
|
||||
tracking_2rd_DLL_filter::~tracking_2rd_DLL_filter ()
|
||||
tracking_2nd_DLL_filter::~tracking_2nd_DLL_filter ()
|
||||
{
|
||||
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* \file tracking_2rd_DLL_filter.h
|
||||
* \file tracking_2nd_DLL_filter.h
|
||||
* \brief Class that implements 2 order DLL filter for code tracking loop.
|
||||
* \author Javier Arribas, 2011. jarribas(at)cttc.es
|
||||
*
|
||||
@@ -33,10 +33,10 @@
|
||||
* -------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TRACKING_2RD_DLL_FILTER_H_
|
||||
#define TRACKING_2RD_DLL_FILTER_H_
|
||||
#ifndef TRACKING_2ND_DLL_FILTER_H_
|
||||
#define TRACKING_2ND_DLL_FILTER_H_
|
||||
|
||||
class tracking_2rd_DLL_filter
|
||||
class tracking_2nd_DLL_filter
|
||||
{
|
||||
private:
|
||||
// PLL filter parameters
|
||||
@@ -54,8 +54,8 @@ public:
|
||||
void set_DLL_BW(float dll_bw_hz);
|
||||
void initialize(float d_acq_code_phase_samples);
|
||||
float get_code_nco(float DLL_discriminator);
|
||||
tracking_2rd_DLL_filter();
|
||||
~tracking_2rd_DLL_filter();
|
||||
tracking_2nd_DLL_filter();
|
||||
~tracking_2nd_DLL_filter();
|
||||
};
|
||||
|
||||
#endif
|
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* \file tracking_2rd_PLL_filter.cc
|
||||
* \file tracking_2nd_PLL_filter.cc
|
||||
* \brief Class that implements 2 order PLL filter for tracking carrier loop.
|
||||
* \author Javier Arribas, 2011. jarribas(at)cttc.es
|
||||
*
|
||||
@@ -33,10 +33,10 @@
|
||||
* -------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include "tracking_2rd_PLL_filter.h"
|
||||
#include "tracking_2nd_PLL_filter.h"
|
||||
|
||||
|
||||
void tracking_2rd_PLL_filter::calculate_lopp_coef(float* tau1,float* tau2, float lbw, float zeta, float k){
|
||||
void tracking_2nd_PLL_filter::calculate_lopp_coef(float* tau1,float* tau2, float lbw, float zeta, float k){
|
||||
// Solve natural frequency
|
||||
float Wn;
|
||||
Wn = lbw*8*zeta / (4*zeta*zeta + 1);
|
||||
@@ -45,20 +45,20 @@ void tracking_2rd_PLL_filter::calculate_lopp_coef(float* tau1,float* tau2, float
|
||||
*tau2 = (2.0 * zeta) / Wn;
|
||||
}
|
||||
|
||||
void tracking_2rd_PLL_filter::set_PLL_BW(float pll_bw_hz)
|
||||
void tracking_2nd_PLL_filter::set_PLL_BW(float pll_bw_hz)
|
||||
{
|
||||
//Calculate filter coefficient values
|
||||
d_pllnoisebandwidth=pll_bw_hz;
|
||||
calculate_lopp_coef(&d_tau1_carr, &d_tau2_carr, d_pllnoisebandwidth, d_plldampingratio,0.25);// Calculate filter coefficient values
|
||||
}
|
||||
void tracking_2rd_PLL_filter::initialize(float d_acq_carrier_doppler_hz)
|
||||
void tracking_2nd_PLL_filter::initialize(float d_acq_carrier_doppler_hz)
|
||||
{
|
||||
// carrier/Costas loop parameters
|
||||
d_old_carr_nco = 0.0;
|
||||
d_old_carr_error = 0.0;
|
||||
}
|
||||
|
||||
float tracking_2rd_PLL_filter::get_carrier_nco(float PLL_discriminator)
|
||||
float tracking_2nd_PLL_filter::get_carrier_nco(float PLL_discriminator)
|
||||
{
|
||||
float carr_nco;
|
||||
carr_nco = d_old_carr_nco+(d_tau2_carr/d_tau1_carr)*(PLL_discriminator - d_old_carr_error) + PLL_discriminator * (d_pdi_carr/d_tau1_carr);
|
||||
@@ -67,14 +67,14 @@ float tracking_2rd_PLL_filter::get_carrier_nco(float PLL_discriminator)
|
||||
return carr_nco;
|
||||
}
|
||||
|
||||
tracking_2rd_PLL_filter::tracking_2rd_PLL_filter ()
|
||||
tracking_2nd_PLL_filter::tracking_2nd_PLL_filter ()
|
||||
{
|
||||
//--- PLL variables --------------------------------------------------------
|
||||
d_pdi_carr = 0.001;// Summation interval for carrier
|
||||
d_plldampingratio=0.65;
|
||||
}
|
||||
|
||||
tracking_2rd_PLL_filter::~tracking_2rd_PLL_filter ()
|
||||
tracking_2nd_PLL_filter::~tracking_2nd_PLL_filter ()
|
||||
{
|
||||
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* \file tracking_2rd_PLL_filter.h
|
||||
* \file tracking_2nd_PLL_filter.h
|
||||
* \brief Class that implements 2 order PLL filter for tracking carrier loop
|
||||
* \author Javier Arribas, 2011. jarribas(at)cttc.es
|
||||
*
|
||||
@@ -33,10 +33,10 @@
|
||||
* -------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TRACKING_2RD_PLL_FILTER_H_
|
||||
#define TRACKING_2RD_PLL_FILTER_H_
|
||||
#ifndef TRACKING_2ND_PLL_FILTER_H_
|
||||
#define TRACKING_2ND_PLL_FILTER_H_
|
||||
|
||||
class tracking_2rd_PLL_filter
|
||||
class tracking_2nd_PLL_filter
|
||||
{
|
||||
private:
|
||||
// PLL filter parameters
|
||||
@@ -55,8 +55,8 @@ public:
|
||||
void set_PLL_BW(float pll_bw_hz);
|
||||
void initialize(float d_acq_carrier_doppler_hz);
|
||||
float get_carrier_nco(float PLL_discriminator);
|
||||
tracking_2rd_PLL_filter();
|
||||
~tracking_2rd_PLL_filter();
|
||||
tracking_2nd_PLL_filter();
|
||||
~tracking_2nd_PLL_filter();
|
||||
};
|
||||
|
||||
#endif
|
@@ -76,7 +76,6 @@ void tracking_FLL_PLL_filter::initialize(float d_acq_carrier_doppler_hz)
|
||||
d_pll_w = d_acq_carrier_doppler_hz;
|
||||
d_pll_x = 0;
|
||||
}
|
||||
std::cout<<" d_pll_x init = "<<d_pll_x<<"\r\n";
|
||||
}
|
||||
|
||||
float tracking_FLL_PLL_filter::get_carrier_error(float FLL_discriminator, float PLL_discriminator, float correlation_time_s)
|
||||
|
Reference in New Issue
Block a user