GNSS-SDR  0.0.13
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  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
9  *
10  * GNSS-SDR is a software defined Global Navigation
11  * Satellite Systems receiver
12  *
13  * This file is part of GNSS-SDR.
14  *
15  * SPDX-License-Identifier: GPL-3.0-or-later
16  *
17  * -----------------------------------------------------------------------------
18  */
19 
20 #ifndef GNSS_SDR_TRACKING_FLL_PLL_FILTER_H
21 #define GNSS_SDR_TRACKING_FLL_PLL_FILTER_H
22 
23 /*!
24  * \brief This class implements a hybrid FLL and PLL filter for tracking carrier loop
25  */
27 {
28 public:
30  ~Tracking_FLL_PLL_filter() = default;
31  void set_params(float fll_bw_hz, float pll_bw_hz, int order);
32  void initialize(float d_acq_carrier_doppler_hz);
33  float get_carrier_error(float FLL_discriminator, float PLL_discriminator, float correlation_time_s);
34 
35 private:
36  // FLL + PLL filter parameters
37  float d_pll_w;
38  float d_pll_w0p3;
39  float d_pll_w0f2;
40  float d_pll_x;
41  float d_pll_a2;
42  float d_pll_w0f;
43  float d_pll_a3;
44  float d_pll_w0p2;
45  float d_pll_b3;
46  float d_pll_w0p;
47  int d_order;
48 };
49 
50 #endif
This class implements a hybrid FLL and PLL filter for tracking carrier loop.