GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
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
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 */
48class MmseResamplerConditioner : public GNSSBlockInterface
49{
50public:
51 MmseResamplerConditioner(const ConfigurationInterface* configuration,
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
77private:
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
This abstract class represents an interface to configuration parameters.
This abstract class represents an interface to GNSS blocks.
This interface represents a GNSS block.