GNSS-SDR  0.0.13
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  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
10  *
11  * GNSS-SDR is a software defined Global Navigation
12  * Satellite Systems receiver
13  *
14  * This file is part of GNSS-SDR.
15  *
16  * SPDX-License-Identifier: GPL-3.0-or-later
17  *
18  * -----------------------------------------------------------------------------
19  */
20 
21 
22 #ifndef GNSS_SDR_MMSE_RESAMPLER_CONDITIONER_H
23 #define GNSS_SDR_MMSE_RESAMPLER_CONDITIONER_H
24 
25 #include "gnss_block_interface.h"
26 #ifdef GR_GREATER_38
27 #include <gnuradio/filter/fir_filter_blk.h>
28 #include <gnuradio/filter/mmse_resampler_cc.h>
29 #else
30 #include <gnuradio/filter/fir_filter_ccf.h>
31 #include <gnuradio/filter/fractional_resampler_cc.h>
32 #endif
33 
34 #include <gnuradio/filter/firdes.h>
35 #include <string>
36 
38 
39 /*!
40  * \brief Interface of a MMSE resampler block adapter
41  * to a SignalConditionerInterface
42  */
44 {
45 public:
47  const std::string& role, unsigned int in_stream,
48  unsigned int out_stream);
49 
50  ~MmseResamplerConditioner() = default;
51 
52  inline std::string role() override
53  {
54  return role_;
55  }
56 
57  inline std::string implementation() override
58  {
59  return "Mmse_Resampler";
60  }
61 
62  inline size_t item_size() override
63  {
64  return item_size_;
65  }
66 
67  void connect(gr::top_block_sptr top_block) override;
68  void disconnect(gr::top_block_sptr top_block) override;
69  gr::basic_block_sptr get_left_block() override;
70  gr::basic_block_sptr get_right_block() override;
71 
72 private:
73 #ifdef GR_GREATER_38
74  gr::filter::mmse_resampler_cc::sptr resampler_;
75 #else
76  gr::filter::fractional_resampler_cc::sptr resampler_;
77 #endif
78  gr::filter::fir_filter_ccf::sptr fir_filter_ccf_;
79  gr::block_sptr file_sink_;
80  std::string role_;
81  std::string item_type_;
82  std::string dump_filename_;
83  size_t item_size_;
84  double sample_freq_in_;
85  double sample_freq_out_;
86  unsigned int in_stream_;
87  unsigned int out_stream_;
88  bool dump_;
89 };
90 
91 #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.