GNU Radio Manual and C++ API Reference 3.7.14.0
The Free & Open Software Radio Ecosystem
freq_xlating_fir_filter_scc.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_SCC_H
29#define INCLUDED_FILTER_FREQ_XLATING_FIR_FILTER_SCC_H
30
31#include <gnuradio/filter/api.h>
33
34namespace gr {
35 namespace filter {
36
37
38 /*!
39 * \brief FIR filter combined with frequency translation with
40 * short input, gr_complex output and gr_complex taps
41 *
42 * \ingroup channelizers_blk
43 *
44 * This class efficiently combines a frequency translation
45 * (typically "down conversion") with a FIR filter (typically
46 * low-pass) and decimation. It is ideally suited for a "channel
47 * selection filter" and can be efficiently used to select and
48 * decimate a narrow band signal out of wide bandwidth input.
49 *
50 * Uses a single input array to produce a single output array.
51 * Additional inputs and/or outputs are ignored.
52 *
53 * - freq (input):
54 * Receives a PMT pair: (intern("freq"), double(frequency).
55 * The block then sets its frequency translation value to
56 * the new frequency provided by the message. A tag is then
57 * produced when the new frequency is applied to let
58 * downstream blocks know when this has taken affect.
59 * Use the filter's group delay to determine when the
60 * transients after the change have settled down.
61 */
63 {
64 public:
65 // gr::filter::freq_xlating_fir_filter_scc::sptr
66 typedef boost::shared_ptr<freq_xlating_fir_filter_scc> sptr;
67
68 /*!
69 * \brief FIR filter with short input, gr_complex output, and
70 * gr_complex taps that also frequency translates a signal from
71 * \p center_freq.
72 *
73 * Construct a FIR filter with the given taps and a composite
74 * frequency translation that shifts center_freq down to zero
75 * Hz. The frequency translation logically comes before the
76 * filtering operation.
77 *
78 * \param decimation set the integer decimation rate
79 * \param taps a vector/list of taps of type gr_complex
80 * \param center_freq Center frequency of signal to down convert from (Hz)
81 * \param sampling_freq Sampling rate of signal (in Hz)
82 */
83 static sptr make(int decimation,
84 const std::vector<gr_complex> &taps,
85 double center_freq,
86 double sampling_freq);
87
88 virtual void set_center_freq(double center_freq) = 0;
89 virtual double center_freq() const = 0;
90
91 virtual void set_taps(const std::vector<gr_complex> &taps) = 0;
92 virtual std::vector<gr_complex> taps() const = 0;
93 };
94
95 } /* namespace filter */
96} /* namespace gr */
97
98#endif /* INCLUDED_FILTER_FREQ_XLATING_FIR_FILTER_SCC_H */
FIR filter combined with frequency translation with short input, gr_complex output and gr_complex tap...
Definition: freq_xlating_fir_filter_scc.h:63
virtual std::vector< gr_complex > taps() const =0
virtual void set_center_freq(double center_freq)=0
boost::shared_ptr< freq_xlating_fir_filter_scc > sptr
Definition: freq_xlating_fir_filter_scc.h:66
virtual void set_taps(const std::vector< gr_complex > &taps)=0
virtual double center_freq() const =0
static sptr make(int decimation, const std::vector< gr_complex > &taps, double center_freq, double sampling_freq)
FIR filter with short input, gr_complex output, and gr_complex taps that also frequency translates a ...
synchronous N:1 input to output with history
Definition: sync_decimator.h:38
#define FILTER_API
Definition: gr-filter/include/gnuradio/filter/api.h:30
static const float taps[NSTEPS+1][NTAPS]
Definition: interpolator_taps.h:9
Include this header to use the message passing features.
Definition: basic_block.h:45