GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
mmse_resampler_conditioner.h
Go to the documentation of this file.
1 /*!
2  * \file mmse_resampler_conditioner.h
3  * \brief Interface of an adapter of a mmse resampler conditioner block
4  * to a SignalConditionerInterface
5  * \author Antonio Ramos, 2018. antonio.ramos(at)cttc.es
6  *
7  * -----------------------------------------------------------------------------
8  *
9  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
10  * This file is part of GNSS-SDR.
11  *
12  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
13  * SPDX-License-Identifier: GPL-3.0-or-later
14  *
15  * -----------------------------------------------------------------------------
16  */
17 
18 
19 #ifndef GNSS_SDR_MMSE_RESAMPLER_CONDITIONER_H
20 #define GNSS_SDR_MMSE_RESAMPLER_CONDITIONER_H
21 
22 #include "gnss_block_interface.h"
23 #ifdef GR_GREATER_38
24 #include <gnuradio/filter/fir_filter_blk.h>
25 #include <gnuradio/filter/mmse_resampler_cc.h>
26 #else
27 #include <gnuradio/filter/fir_filter_ccf.h>
28 #include <gnuradio/filter/fractional_resampler_cc.h>
29 #endif
30 
31 #include <gnuradio/filter/firdes.h>
32 #include <string>
33 
34 /** \addtogroup Resampler
35  * Classes for input signal resampling
36  * \{ */
37 /** \addtogroup Resampler_adapters resampler_adapters
38  * Classes that wrap GNU Radio resampler blocks with a GNSSBlockInterface
39  * \{ */
40 
41 
43 
44 /*!
45  * \brief Interface of a MMSE resampler block adapter
46  * to a SignalConditionerInterface
47  */
49 {
50 public:
52  const std::string& role, unsigned int in_stream,
53  unsigned int out_stream);
54 
55  ~MmseResamplerConditioner() = default;
56 
57  inline std::string role() override
58  {
59  return role_;
60  }
61 
62  inline std::string implementation() override
63  {
64  return "Mmse_Resampler";
65  }
66 
67  inline size_t item_size() override
68  {
69  return item_size_;
70  }
71 
72  void connect(gr::top_block_sptr top_block) override;
73  void disconnect(gr::top_block_sptr top_block) override;
74  gr::basic_block_sptr get_left_block() override;
75  gr::basic_block_sptr get_right_block() override;
76 
77 private:
78 #ifdef GR_GREATER_38
79  gr::filter::mmse_resampler_cc::sptr resampler_;
80 #else
81  gr::filter::fractional_resampler_cc::sptr resampler_;
82 #endif
83  gr::filter::fir_filter_ccf::sptr fir_filter_ccf_;
84  gr::block_sptr file_sink_;
85  std::string role_;
86  std::string item_type_;
87  std::string dump_filename_;
88  size_t item_size_;
89  double sample_freq_in_;
90  double sample_freq_out_;
91  unsigned int in_stream_;
92  unsigned int out_stream_;
93  bool dump_;
94 };
95 
96 
97 /** \} */
98 /** \} */
99 #endif // GNSS_SDR_FRACTIONAL_RESAMPLER_CONDITIONER_H
Interface of a MMSE resampler block adapter to a SignalConditionerInterface.
This interface represents a GNSS block.
This abstract class represents an interface to configuration parameters.
This abstract class represents an interface to GNSS blocks.