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