GNU Radio 3.7.0 C++ API
|
00001 /* -*- c++ -*- */ 00002 /* 00003 * Copyright 2002,2004,2012 Free Software Foundation, Inc. 00004 * 00005 * This file is part of GNU Radio 00006 * 00007 * GNU Radio is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 3, or (at your option) 00010 * any later version. 00011 * 00012 * GNU Radio is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with GNU Radio; see the file COPYING. If not, write to 00019 * the Free Software Foundation, Inc., 51 Franklin Street, 00020 * Boston, MA 02110-1301, USA. 00021 */ 00022 00023 /* 00024 * WARNING: This file is automatically generated by cmake. 00025 * Any changes made to this file will be overwritten. 00026 */ 00027 00028 #ifndef INCLUDED_FILTER_FREQ_XLATING_FIR_FILTER_CCF_H 00029 #define INCLUDED_FILTER_FREQ_XLATING_FIR_FILTER_CCF_H 00030 00031 #include <gnuradio/filter/api.h> 00032 #include <gnuradio/sync_decimator.h> 00033 00034 namespace gr { 00035 namespace filter { 00036 00037 00038 /*! 00039 * \brief FIR filter combined with frequency translation with 00040 * gr_complex input, gr_complex output and float taps 00041 * 00042 * \ingroup channelizers_blk 00043 * 00044 * This class efficiently combines a frequency translation 00045 * (typically "down conversion") with a FIR filter (typically 00046 * low-pass) and decimation. It is ideally suited for a "channel 00047 * selection filter" and can be efficiently used to select and 00048 * decimate a narrow band signal out of wide bandwidth input. 00049 * 00050 * Uses a single input array to produce a single output array. 00051 * Additional inputs and/or outputs are ignored. 00052 */ 00053 class FILTER_API freq_xlating_fir_filter_ccf : virtual public sync_decimator 00054 { 00055 public: 00056 // gr::filter::freq_xlating_fir_filter_ccf::sptr 00057 typedef boost::shared_ptr<freq_xlating_fir_filter_ccf> sptr; 00058 00059 /*! 00060 * \brief FIR filter with gr_complex input, gr_complex output, and 00061 * float taps that also frequency translates a signal from 00062 * \p center_freq. 00063 * 00064 * Construct a FIR filter with the given taps and a composite 00065 * frequency translation that shifts center_freq down to zero 00066 * Hz. The frequency translation logically comes before the 00067 * filtering operation. 00068 * 00069 * \param decimation set the integer decimation rate 00070 * \param taps a vector/list of taps of type float 00071 * \param center_freq Center frequency of signal to down convert from (Hz) 00072 * \param sampling_freq Sampling rate of signal (in Hz) 00073 */ 00074 static sptr make(int decimation, 00075 const std::vector<float> &taps, 00076 double center_freq, 00077 double sampling_freq); 00078 00079 virtual void set_center_freq(double center_freq) = 0; 00080 virtual double center_freq() const = 0; 00081 00082 virtual void set_taps(const std::vector<float> &taps) = 0; 00083 virtual std::vector<float> taps() const = 0; 00084 }; 00085 00086 } /* namespace filter */ 00087 } /* namespace gr */ 00088 00089 #endif /* INCLUDED_FILTER_FREQ_XLATING_FIR_FILTER_CCF_H */