GestureRecognitionToolkit  Version: 0.1.0
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 
29 #ifndef GRT_FIR_FILTER_HEADER
30 #define GRT_FIR_FILTER_HEADER
31 
32 #include "../CoreModules/PreProcessing.h"
33 
34 GRT_BEGIN_NAMESPACE
35 
36 class FIRFilter : public PreProcessing{
37 public:
51  FIRFilter(const UINT filterType = LPF,const UINT numTaps = 50,const Float sampleRate = 100,const Float cutoffFrequency = 10,const Float gain = 1,const UINT numDimensions = 1);
52 
58  FIRFilter(const FIRFilter &rhs);
59 
63  virtual ~FIRFilter();
64 
71  FIRFilter& operator=(const FIRFilter &rhs);
72 
81  virtual bool deepCopyFrom(const PreProcessing *preProcessing);
82 
91  virtual bool process(const VectorFloat &inputVector);
92 
100  virtual bool reset();
101 
108  virtual bool clear();
109 
117  virtual bool saveModelToFile( std::string filename ) const;
118 
126  virtual bool saveModelToFile( std::fstream &file ) const;
127 
135  virtual bool loadModelFromFile( std::string filename );
136 
144  virtual bool loadModelFromFile( std::fstream &file );
145 
151  bool buildFilter();
152 
159  Float filter(const Float x);
160 
167  VectorFloat filter(const VectorFloat &x);
168 
174  UINT getFilterType() const;
175 
181  UINT getNumTaps() const;
182 
188  Float getSampleRate() const;
189 
195  Float getCutoffFrequency() const;
196 
202  Float getCutoffFrequencyLower() const;
203 
209  Float getCutoffFrequencyUpper() const;
210 
216  Float getGain() const;
217 
224 
231 
238  bool setFilterType(const UINT filterType);
239 
248  bool setNumTaps(const UINT numTaps);
249 
256  bool setSampleRate(const Float sampleRate);
257 
265  bool setCutoffFrequency(const Float cutoffFrequency);
266 
275  bool setCutoffFrequency(const Float cutoffFrequencyLower,const Float cutoffFrequencyUpper);
276 
283  bool setGain(const Float gain);
284 
285 protected:
286  UINT filterType;
287  UINT numTaps;
288  Float sampleRate;
289  Float cutoffFrequency;
290  Float cutoffFrequencyLower;
291  Float cutoffFrequencyUpper;
292  Float gain;
294  VectorFloat z;
295 
296  static RegisterPreProcessingModule< FIRFilter > registerModule;
297 
298 public:
299  enum FilterTypes{LPF=0, HPF, BPF};
300 };
301 
302 GRT_END_NAMESPACE
303 
304 #endif //GRT_FIR_FILTER_HEADER
Vector< VectorFloat > getInputBuffer() const
Definition: FIRFilter.cpp:483
virtual bool clear()
Definition: FIRFilter.cpp:148
UINT getNumTaps() const
Definition: FIRFilter.cpp:459
virtual bool loadModelFromFile(std::string filename)
Definition: FIRFilter.cpp:212
bool setNumTaps(const UINT numTaps)
Definition: FIRFilter.cpp:510
virtual bool reset()
Definition: FIRFilter.cpp:131
bool setFilterType(const UINT filterType)
Definition: FIRFilter.cpp:497
Float getCutoffFrequency() const
Definition: FIRFilter.cpp:467
Float getGain() const
Definition: FIRFilter.cpp:479
FIRFilter(const UINT filterType=LPF, const UINT numTaps=50, const Float sampleRate=100, const Float cutoffFrequency=10, const Float gain=1, const UINT numDimensions=1)
Definition: FIRFilter.cpp:28
Float filter(const Float x)
Definition: FIRFilter.cpp:406
Float getCutoffFrequencyUpper() const
Definition: FIRFilter.cpp:475
Float getSampleRate() const
Definition: FIRFilter.cpp:463
bool setCutoffFrequency(const Float cutoffFrequency)
Definition: FIRFilter.cpp:536
virtual bool process(const VectorFloat &inputVector)
Definition: FIRFilter.cpp:110
virtual ~FIRFilter()
Definition: FIRFilter.cpp:72
bool setSampleRate(const Float sampleRate)
Definition: FIRFilter.cpp:523
VectorFloat getFilterCoefficents() const
Definition: FIRFilter.cpp:490
virtual bool saveModelToFile(std::string filename) const
Definition: FIRFilter.cpp:159
virtual bool deepCopyFrom(const PreProcessing *preProcessing)
Definition: FIRFilter.cpp:93
FIRFilter & operator=(const FIRFilter &rhs)
Definition: FIRFilter.cpp:76
UINT getFilterType() const
Definition: FIRFilter.cpp:455
Float getCutoffFrequencyLower() const
Definition: FIRFilter.cpp:471
bool buildFilter()
Definition: FIRFilter.cpp:340
bool setGain(const Float gain)
Definition: FIRFilter.cpp:575