GNSS-SDR  0.0.17
An Open Source GNSS Software Defined Receiver
kf_conf.h
1 /*!
2  * \file Kf_conf.h
3  * \brief Class that contains all the configuration parameters for generic tracking block based on a Kalman Filter.
4  * \author Javier Arribas, 2020. jarribas(at)cttc.es
5  *
6  * Class that contains all the configuration parameters for generic tracking block based on a DLL and a PLL.
7  *
8  * -----------------------------------------------------------------------------
9  *
10  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
11  *
12  * GNSS-SDR is a software defined Global Navigation
13  * Satellite Systems receiver
14  *
15  * This file is part of GNSS-SDR.
16  *
17  * SPDX-License-Identifier: GPL-3.0-or-later
18  *
19  * -----------------------------------------------------------------------------
20  */
21 
22 #ifndef GNSS_SDR_Kf_CONF_H
23 #define GNSS_SDR_Kf_CONF_H
24 
26 #include <cstdint>
27 #include <string>
28 
29 class Kf_Conf
30 {
31 public:
32  Kf_Conf();
33  void SetFromConfiguration(const ConfigurationInterface *configuration, const std::string &role);
34 
35  std::string item_type;
36  std::string dump_filename;
37  double fs_in;
38  double carrier_lock_th;
39 
40  // KF statistics
41  // states: code_phase_chips, carrier_phase_rads, carrier_freq_hz, carrier_freq_rate_hz_s, code_freq_rate_chips_s
42  // Measurement covariances (R)
43  double expected_cn0_dbhz;
44 
45  double code_disc_sd_chips;
46  double carrier_disc_sd_rads;
47 
48  // System covariances (Q)
49  double code_phase_sd_chips;
50  double code_rate_sd_chips_s;
51 
52  double carrier_phase_sd_rad;
53  double carrier_freq_sd_hz;
54  double carrier_freq_rate_sd_hz_s;
55 
56  // System covariances (narrow) (Q)
57  double narrow_code_phase_sd_chips;
58  double narrow_code_rate_sd_chips_s;
59 
60  double narrow_carrier_phase_sd_rad;
61  double narrow_carrier_freq_sd_hz;
62  double narrow_carrier_freq_rate_sd_hz_s;
63 
64  // initial Kalman covariance matrix (P)
65  double init_code_phase_sd_chips;
66  double init_code_rate_sd_chips_s;
67 
68  double init_carrier_phase_sd_rad;
69  double init_carrier_freq_sd_hz;
70  double init_carrier_freq_rate_sd_hz_s;
71 
72  float early_late_space_chips;
73  float very_early_late_space_chips;
74  float early_late_space_narrow_chips;
75  float very_early_late_space_narrow_chips;
76  float slope;
77  float spc;
78  float y_intercept;
79  float cn0_smoother_alpha;
80  float carrier_lock_test_smoother_alpha;
81  uint32_t pull_in_time_s;
82  uint32_t bit_synchronization_time_limit_s;
83  uint32_t vector_length;
84  uint32_t smoother_length;
85  int32_t extend_correlation_symbols;
86  int32_t cn0_samples;
87  int32_t cn0_smoother_samples;
88  int32_t carrier_lock_test_smoother_samples;
89  int32_t cn0_min;
90  int32_t max_code_lock_fail;
91  int32_t max_carrier_lock_fail;
92  char signal[3]{};
93  char system;
94  bool track_pilot;
95  bool enable_doppler_correction;
96  bool carrier_aiding;
97  bool high_dyn;
98  bool dump;
99  bool dump_mat;
100 
101  bool enable_dynamic_measurement_covariance;
102  bool use_estimated_cn0;
103 };
104 
105 #endif
This abstract class represents an interface to configuration parameters.
This class represents an interface to configuration parameters.