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 _gr_fir_SCC_H_
00030 #define _gr_fir_SCC_H_
00031
00032 #include <vector>
00033 #include <VrComplex.h>
00034
00045 class gr_fir_SCC {
00046
00047 protected:
00048 std::vector<VrComplex> d_taps;
00049
00050 public:
00051
00052
00053
00061 gr_fir_SCC () {}
00062 gr_fir_SCC (const std::vector<VrComplex> &taps) : d_taps (taps) {}
00063
00064 virtual ~gr_fir_SCC ();
00065
00066
00067
00076 virtual VrComplex filter (const short input[]) = 0;
00077
00084 virtual void filterN (VrComplex output[], const short input[],
00085 unsigned long n) = 0;
00086
00094 virtual void filterNdec (VrComplex output[], const short input[],
00095 unsigned long n, unsigned decimate) = 0;
00096
00100 virtual void set_taps (const std::vector<VrComplex> &taps)
00101 {
00102 d_taps = taps;
00103 }
00104
00105
00106
00110 unsigned ntaps () const { return d_taps.size (); }
00111
00115 virtual const std::vector<VrComplex> &get_taps () const { return d_taps; }
00116 };
00117
00118 #endif