GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
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 */
29class Tracking_FLL_PLL_filter
30{
31public:
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
38private:
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