mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 07:13:03 +00:00 
			
		
		
		
	Update KF tracking to use acquisition doppler bin size for initial doppler state covariance
This commit is contained in:
		| @@ -222,6 +222,7 @@ void pcps_acquisition::init() | ||||
|     d_gnss_synchro->Flag_valid_pseudorange = false; | ||||
|     d_gnss_synchro->Flag_valid_word = false; | ||||
|  | ||||
|     d_gnss_synchro->Acq_doppler_step = d_doppler_step; | ||||
|     d_gnss_synchro->Acq_delay_samples = 0.0; | ||||
|     d_gnss_synchro->Acq_doppler_hz = 0.0; | ||||
|     d_gnss_synchro->Acq_samplestamp_samples = 0; | ||||
| @@ -282,6 +283,7 @@ void pcps_acquisition::set_state(int state) | ||||
|         { | ||||
|             d_gnss_synchro->Acq_delay_samples = 0.0; | ||||
|             d_gnss_synchro->Acq_doppler_hz = 0.0; | ||||
|             d_gnss_synchro->Acq_doppler_step = 0; | ||||
|             d_gnss_synchro->Acq_samplestamp_samples = 0; | ||||
|             d_well_count = 0; | ||||
|             d_mag = 0.0; | ||||
|   | ||||
| @@ -174,7 +174,7 @@ Gps_L1_Ca_Kf_Tracking_cc::Gps_L1_Ca_Kf_Tracking_cc( | ||||
|  | ||||
|     // Kalman filter initialization (receiver initialization) | ||||
|  | ||||
|     double CN_dB_Hz = 40; | ||||
|     double CN_dB_Hz = 30; | ||||
|     double CN_lin = pow(10, CN_dB_Hz / 10.0); | ||||
|  | ||||
|     double sigma2_phase_detector_cycles2; | ||||
| @@ -182,7 +182,7 @@ Gps_L1_Ca_Kf_Tracking_cc::Gps_L1_Ca_Kf_Tracking_cc( | ||||
|  | ||||
|     //covariances (static) | ||||
|     double sigma2_carrier_phase = GPS_TWO_PI / 4; | ||||
|     double sigma2_doppler = 250;  ///  !! | ||||
|     double sigma2_doppler = 450; | ||||
|  | ||||
|     kf_P_x_ini = arma::zeros(2, 2); | ||||
|     kf_P_x_ini(0, 0) = sigma2_carrier_phase; | ||||
| @@ -217,6 +217,13 @@ void Gps_L1_Ca_Kf_Tracking_cc::start_tracking() | ||||
|     d_acq_code_phase_samples = d_acquisition_gnss_synchro->Acq_delay_samples; | ||||
|     d_acq_carrier_doppler_hz = d_acquisition_gnss_synchro->Acq_doppler_hz; | ||||
|     d_acq_sample_stamp = d_acquisition_gnss_synchro->Acq_samplestamp_samples; | ||||
|     d_acq_carrier_doppler_step_hz = static_cast<double>(d_acquisition_gnss_synchro->Acq_doppler_step); | ||||
|  | ||||
|     // Correct Kalman filter covariance according to acq doppler step size (3 sigma) | ||||
|     if (d_acquisition_gnss_synchro->Acq_doppler_step > 0) | ||||
|         { | ||||
|             kf_P_x_ini(1, 1) = pow(2, d_acq_carrier_doppler_step_hz / 3.0); | ||||
|         } | ||||
|  | ||||
|     long int acq_trk_diff_samples; | ||||
|     double acq_trk_diff_seconds; | ||||
|   | ||||
| @@ -135,6 +135,7 @@ private: | ||||
|     //Tracking_2nd_PLL_filter d_carrier_loop_filter; | ||||
|  | ||||
|     // acquisition | ||||
|     double d_acq_carrier_doppler_step_hz; | ||||
|     double d_acq_code_phase_samples; | ||||
|     double d_acq_carrier_doppler_hz; | ||||
|     // correlator | ||||
|   | ||||
| @@ -49,6 +49,7 @@ public: | ||||
|     // Acquisition | ||||
|     double Acq_delay_samples;                   //!< Set by Acquisition processing block | ||||
|     double Acq_doppler_hz;                      //!< Set by Acquisition processing block | ||||
|     unsigned int Acq_doppler_step;              //!< Set by Acquisition processing block | ||||
|     unsigned long int Acq_samplestamp_samples;  //!< Set by Acquisition processing block | ||||
|     bool Flag_valid_acquisition;                //!< Set by Acquisition processing block | ||||
|     //Tracking | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Gerald LaMountain
					Gerald LaMountain