LRT14  1.0
 All Classes Namespaces Functions Variables Enumerations Enumerator
LinearFilter.h
1 #ifndef LINEAR_FILTER_H_
2 #define LINEAR_FILTER_H_
3 
4 #include <vector>
5 #include <deque>
6 
18 {
19 public:
25  LinearFilter(std::vector<double> ffGains, std::vector<double> fbGains);
26 
32  static LinearFilter* SinglePoleIIRLowPassFilter(double decay);
38  static LinearFilter* SinglePoleIIRHighPassFilter(double decay);
44  static LinearFilter* MovingAverageFilter(int samples);
52  static LinearFilter* PIDController(double Kp, double Ki, double Kd);
53 
59  double Update(double input);
60 
64  void Reset();
65 
66 private:
67  std::deque<double> m_inputSample;
68  std::deque<double> m_outputSample;
69  std::vector<double> m_ffGains;
70  std::vector<double> m_fbGains;
71 };
72 
73 #endif