Encoder

Dependencies:   mbed

Fork of Bewegungen by kings

Committer:
EHess
Date:
Wed May 10 09:15:42 2017 +0000
Revision:
1:e454e6f5d81a
wd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
EHess 1:e454e6f5d81a 1 #ifndef LOWPASS_FILTER_H_
EHess 1:e454e6f5d81a 2 #define LOWPASS_FILTER_H_
EHess 1:e454e6f5d81a 3
EHess 1:e454e6f5d81a 4 #include <cstdlib>
EHess 1:e454e6f5d81a 5 #include <cmath>
EHess 1:e454e6f5d81a 6
EHess 1:e454e6f5d81a 7 //E. Hess
EHess 1:e454e6f5d81a 8 //LowpassFilter.cpp
EHess 1:e454e6f5d81a 9
EHess 1:e454e6f5d81a 10 /**
EHess 1:e454e6f5d81a 11 * This class implements a time-discrete 2nd order low-pass filter for a series of data values.
EHess 1:e454e6f5d81a 12 * This filter can typically be used within a periodic task that takes measurements that need
EHess 1:e454e6f5d81a 13 * to be filtered, like speed or position values.
EHess 1:e454e6f5d81a 14 */
EHess 1:e454e6f5d81a 15 class LowpassFilter {
EHess 1:e454e6f5d81a 16
EHess 1:e454e6f5d81a 17 public:
EHess 1:e454e6f5d81a 18
EHess 1:e454e6f5d81a 19 LowpassFilter();
EHess 1:e454e6f5d81a 20 virtual ~LowpassFilter();
EHess 1:e454e6f5d81a 21 void reset();
EHess 1:e454e6f5d81a 22 void reset(float value);
EHess 1:e454e6f5d81a 23 void setPeriod(float period);
EHess 1:e454e6f5d81a 24 void setFrequency(float frequency);
EHess 1:e454e6f5d81a 25 float getFrequency();
EHess 1:e454e6f5d81a 26 float filter(float value);
EHess 1:e454e6f5d81a 27
EHess 1:e454e6f5d81a 28 private:
EHess 1:e454e6f5d81a 29
EHess 1:e454e6f5d81a 30 float period;
EHess 1:e454e6f5d81a 31 float frequency;
EHess 1:e454e6f5d81a 32 float a11, a12, a21, a22, b1, b2;
EHess 1:e454e6f5d81a 33 float x1, x2;
EHess 1:e454e6f5d81a 34 };
EHess 1:e454e6f5d81a 35
EHess 1:e454e6f5d81a 36 #endif