GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
tracking_FLL_PLL_filter.h
Go to the documentation of this file.
1 /*!
2  * \file tracking_FLL_PLL_filter.h
3  * \brief Interface of a hybrid FLL and PLL filter for tracking carrier loop
4  * \author Javier Arribas, 2011. jarribas(at)cttc.es
5  *
6  * -----------------------------------------------------------------------------
7  *
8  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
9  * This file is part of GNSS-SDR.
10  *
11  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
12  * SPDX-License-Identifier: GPL-3.0-or-later
13  *
14  * -----------------------------------------------------------------------------
15  */
16 
17 #ifndef GNSS_SDR_TRACKING_FLL_PLL_FILTER_H
18 #define GNSS_SDR_TRACKING_FLL_PLL_FILTER_H
19 
20 /** \addtogroup Tracking
21  * \{ */
22 /** \addtogroup Tracking_libs
23  * \{ */
24 
25 
26 /*!
27  * \brief This class implements a hybrid FLL and PLL filter for tracking carrier loop
28  */
30 {
31 public:
32  Tracking_FLL_PLL_filter() = default;
33  ~Tracking_FLL_PLL_filter() = default;
34  void set_params(float fll_bw_hz, float pll_bw_hz, int order);
35  void initialize(float d_acq_carrier_doppler_hz);
36  float get_carrier_error(float FLL_discriminator, float PLL_discriminator, float correlation_time_s);
37 
38 private:
39  // FLL + PLL filter parameters
40  float d_pll_w{0.0};
41  float d_pll_w0p3{0.0};
42  float d_pll_w0f2{0.0};
43  float d_pll_x{0.0};
44  float d_pll_a2{0.0};
45  float d_pll_w0f{0.0};
46  float d_pll_a3{0.0};
47  float d_pll_w0p2{0.0};
48  float d_pll_b3{0.0};
49  float d_pll_w0p{0.0};
50  int d_order{0};
51 };
52 
53 
54 /** \} */
55 /** \} */
56 #endif
This class implements a hybrid FLL and PLL filter for tracking carrier loop.