GestureRecognitionToolkit  Version: 0.2.5
The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, c++ machine learning library for real-time gesture recognition.
FIRFilter.h
Go to the documentation of this file.
1 
27 #ifndef GRT_FIR_FILTER_HEADER
28 #define GRT_FIR_FILTER_HEADER
29 
30 #include "../CoreModules/PreProcessing.h"
31 
32 GRT_BEGIN_NAMESPACE
33 
37 class GRT_API FIRFilter : public PreProcessing{
38 public:
40  {
41  LPF=0,
42  HPF,
43  BPF
44  };
45 
55  FIRFilter(const FilterType filterType = LPF,const UINT numTaps = 50,const Float sampleRate = 100,const Float cutoffFrequency = 10,const Float gain = 1,const UINT numDimensions = 1);
56 
62  FIRFilter(const FIRFilter &rhs);
63 
67  virtual ~FIRFilter();
68 
75  FIRFilter& operator=(const FIRFilter &rhs);
76 
85  virtual bool deepCopyFrom(const PreProcessing *preProcessing);
86 
95  virtual bool process(const VectorFloat &inputVector);
96 
104  virtual bool reset();
105 
112  virtual bool clear();
113 
121  virtual bool save( std::fstream &file ) const;
122 
130  virtual bool load( std::fstream &file );
131 
137  bool buildFilter();
138 
145  Float filter(const Float x);
146 
153  VectorFloat filter(const VectorFloat &x);
154 
160  FilterType getFilterType() const;
161 
167  UINT getNumTaps() const;
168 
174  Float getSampleRate() const;
175 
181  Float getCutoffFrequency() const;
182 
188  Float getCutoffFrequencyLower() const;
189 
195  Float getCutoffFrequencyUpper() const;
196 
202  Float getGain() const;
203 
209  Vector< VectorFloat > getInputBuffer() const;
210 
216  VectorFloat getFilterCoefficents() const;
217 
224  bool setFilterType(const FilterType filterType);
225 
234  bool setNumTaps(const UINT numTaps);
235 
242  bool setSampleRate(const Float sampleRate);
243 
251  bool setCutoffFrequency(const Float cutoffFrequency);
252 
261  bool setCutoffFrequency(const Float cutoffFrequencyLower,const Float cutoffFrequencyUpper);
262 
269  bool setGain(const Float gain);
270 
276  static std::string getId();
277 
278  //Tell the compiler we are using the following functions from the MLBase class to stop hidden virtual function warnings
279  using MLBase::save;
280  using MLBase::load;
281 
282 protected:
283  FilterType filterType;
284  UINT numTaps;
285  Float sampleRate;
286  Float cutoffFrequency;
287  Float cutoffFrequencyLower;
288  Float cutoffFrequencyUpper;
289  Float gain;
291  VectorFloat z;
292 
293 private:
294  static const std::string id;
295  static RegisterPreProcessingModule< FIRFilter > registerModule;
296 };
297 
298 GRT_END_NAMESPACE
299 
300 #endif //GRT_FIR_FILTER_HEADER
virtual bool clear() override
std::string getId() const
Definition: GRTBase.cpp:85
virtual bool deepCopyFrom(const PreProcessing *rhs)
Definition: PreProcessing.h:58
This class implements a Finite Impulse Response (FIR) Filter. It can support a low pass filter...
Definition: FIRFilter.h:37
virtual bool save(const std::string &filename) const
Definition: MLBase.cpp:167
virtual bool reset() override
virtual bool process(const VectorFloat &inputVector)
Definition: PreProcessing.h:74
High pass filter.
Definition: FIRFilter.h:42
virtual bool load(const std::string &filename)
Definition: MLBase.cpp:190