GNU Radio 3.6.5 C++ API
freq_xlating_fir_filter_ccf.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2002,2004,2012 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * GNU Radio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3, or (at your option)
10  * any later version.
11  *
12  * GNU Radio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Radio; see the file COPYING. If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street,
20  * Boston, MA 02110-1301, USA.
21  */
22 
23 /*
24  * WARNING: This file is automatically generated by cmake.
25  * Any changes made to this file will be overwritten.
26  */
27 
28 #ifndef INCLUDED_FILTER_FREQ_XLATING_FIR_FILTER_CCF_H
29 #define INCLUDED_FILTER_FREQ_XLATING_FIR_FILTER_CCF_H
30 
31 #include <filter/api.h>
32 #include <gr_sync_decimator.h>
33 #include <gr_rotator.h>
34 
35 namespace gr {
36  namespace filter {
37 
38 
39  /*!
40  * \brief FIR filter combined with frequency translation with
41  * gr_complex input, gr_complex output and float taps
42  *
43  * \ingroup channelizers_blk
44  *
45  * This class efficiently combines a frequency translation
46  * (typically "down conversion") with a FIR filter (typically
47  * low-pass) and decimation. It is ideally suited for a "channel
48  * selection filter" and can be efficiently used to select and
49  * decimate a narrow band signal out of wide bandwidth input.
50  *
51  * Uses a single input array to produce a single output array.
52  * Additional inputs and/or outputs are ignored.
53  */
55  {
56  public:
57  // gr::filter::freq_xlating_fir_filter_ccf::sptr
59 
60  /*!
61  * \brief FIR filter with gr_complex input, gr_complex output, and
62  * float taps that also frequency translates a signal from
63  * \p center_freq.
64  *
65  * Construct a FIR filter with the given taps and a composite
66  * frequency translation that shifts center_freq down to zero
67  * Hz. The frequency translation logically comes before the
68  * filtering operation.
69  *
70  * \param decimation set the integer decimation rate
71  * \param taps a vector/list of taps of type float
72  * \param center_freq Center frequency of signal to down convert from (Hz)
73  * \param sampling_freq Sampling rate of signal (in Hz)
74  */
75  static sptr make(int decimation,
76  const std::vector<float> &taps,
77  double center_freq,
78  double sampling_freq);
79 
80  virtual void set_center_freq(double center_freq) = 0;
81  virtual double center_freq() const = 0;
82 
83  virtual void set_taps(const std::vector<float> &taps) = 0;
84  virtual std::vector<float> taps() const = 0;
85  };
86 
87  } /* namespace filter */
88 } /* namespace gr */
89 
90 #endif /* INCLUDED_FILTER_FREQ_XLATING_FIR_FILTER_CCF_H */