numeric
DiscreteFilter.hpp
Go to the documentation of this file.
1 #ifndef DISCRETEFILTER_HPP_
2 #define DISCRETEFILTER_HPP_
3 
4 #include "base/Eigen.hpp"
5 
6 namespace numeric {
7 
39 
40 public:
41  DiscreteFilter(double sampleTime, int numberElements = 1);
42 
50  bool calcOutput(double &filteredSignal, double &inputSignal);
51 
59  bool calcOutput(base::VectorXd &filteredSignal, base::VectorXd &inputSignal);
60 
68  bool setPoles(double pole1, double pole2 = 1);
69 
77  bool getPoles(double &pole1, double &pole2);
78 
85  bool getSamplingTime(double &sampleTime);
86 
93  bool getNumberElements(int &numberElements);
94 
100  bool resetFilter();
101 
102 private:
103 
107  double gMappedPole1;
108 
112  double gMappedPole2;
113 
117  double gContinuousPole1;
118 
122  double gContinuousPole2;
123 
127  double gSamplingTime;
128 
132  int gNumFilterElements;
133 
137  bool gErrorStatus;
138 
142  base::MatrixXd gPastValues;
143 
147  bool gFilterNotSet;
148 
156  void calcFiltering(base::VectorXd &filteredSignal,
157  base::VectorXd &newSignalValue,
158  base::MatrixXd &pastSignalValues);
159 
167  void calcFiltering(double &filteredSignal, double &newSignalValue,
168  base::MatrixXd &pastSignalValues);
169 
177  void updateMatrix(base::MatrixXd &matrix, double &newValue);
178 
186  void updateMatrix(base::MatrixXd &matrix, base::VectorXd &newValues);
187 
192  void printWarn();
193 
198  void printError(int inputElements);
199 };
200 
201 } /* namespace numeric */
202 
203 #endif /* DISCRETEFILTER_HPP_ */
Definition: Circle.hpp:6
Definition: DiscreteFilter.hpp:38
DiscreteFilter(double sampleTime, int numberElements=1)
Definition: DiscreteFilter.cpp:7
bool calcOutput(double &filteredSignal, double &inputSignal)
Definition: DiscreteFilter.cpp:48
bool getNumberElements(int &numberElements)
Definition: DiscreteFilter.cpp:146
bool resetFilter()
Definition: DiscreteFilter.cpp:155
bool getPoles(double &pole1, double &pole2)
Definition: DiscreteFilter.cpp:126
bool setPoles(double pole1, double pole2=1)
Definition: DiscreteFilter.cpp:100
bool getSamplingTime(double &sampleTime)
Definition: DiscreteFilter.cpp:136