gr_freq_xlating_fir_filter_fcf.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef INCLUDED_GR_FREQ_XLATING_FIR_FILTER_FCF_H
00030 #define INCLUDED_GR_FREQ_XLATING_FIR_FILTER_FCF_H
00031
00032 #include <gr_sync_decimator.h>
00033 #include <gr_rotator.h>
00034
00035 class gr_freq_xlating_fir_filter_fcf;
00036 typedef boost::shared_ptr<gr_freq_xlating_fir_filter_fcf> gr_freq_xlating_fir_filter_fcf_sptr;
00037
00043 gr_freq_xlating_fir_filter_fcf_sptr
00044 gr_make_freq_xlating_fir_filter_fcf (int decimation, const std::vector<float> &taps,
00045 double center_freq, double sampling_freq);
00046
00047
00048 class gr_fir_fcc;
00049
00063 class gr_freq_xlating_fir_filter_fcf : public gr_sync_decimator
00064 {
00065 public:
00066 virtual ~gr_freq_xlating_fir_filter_fcf ();
00067
00068 void set_center_freq (double center_freq);
00069 void set_taps (const std::vector<float> &taps);
00070
00071 int work (int noutput_items,
00072 gr_vector_const_void_star &input_items,
00073 gr_vector_void_star &output_items);
00074
00075 private:
00076 friend gr_freq_xlating_fir_filter_fcf_sptr
00077 gr_make_freq_xlating_fir_filter_fcf (int decimation, const std::vector<float> &taps,
00078 double center_freq, double sampling_freq);
00079
00080 protected:
00081 std::vector<float> d_proto_taps;
00082 gr_fir_fcc *d_composite_fir;
00083 gr_rotator d_r;
00084 double d_center_freq;
00085 double d_sampling_freq;
00086 bool d_updated;
00087
00088 virtual void build_composite_fir ();
00089
00095 gr_freq_xlating_fir_filter_fcf (int decimation,
00096 const std::vector<float> &taps,
00097 double center_freq, double sampling_freq);
00098 };
00099
00100 #endif