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_FIR_FSF_H
00030 #define INCLUDED_GR_FIR_FSF_H
00031
00032 #include <vector>
00033
00034
00046 class gr_fir_fsf {
00047
00048 protected:
00049 std::vector<float> d_taps;
00050
00051 public:
00052
00053
00054
00062 gr_fir_fsf () {}
00063 gr_fir_fsf (const std::vector<float> &taps) : d_taps (taps) {}
00064
00065 virtual ~gr_fir_fsf ();
00066
00067
00068
00077 virtual short filter (const float input[]) = 0;
00078
00085 virtual void filterN (short output[], const float input[],
00086 unsigned long n) = 0;
00087
00095 virtual void filterNdec (short output[], const float input[],
00096 unsigned long n, unsigned decimate) = 0;
00097
00101 virtual void set_taps (const std::vector<float> &taps)
00102 {
00103 d_taps = taps;
00104 }
00105
00106
00107
00111 unsigned ntaps () const { return d_taps.size (); }
00112
00116 virtual const std::vector<float> &get_taps () const { return d_taps; }
00117 };
00118
00119 #endif