..

Dependencies:   mbed

Committer:
allanalpha
Date:
Fri Feb 01 15:24:15 2013 +0000
Revision:
0:ff5187998c84
what ev

Who changed what in which revision?

UserRevisionLine numberNew contents of line
allanalpha 0:ff5187998c84 1 /*
allanalpha 0:ff5187998c84 2 mbed touchpad & accelerometer experiments.
allanalpha 0:ff5187998c84 3
allanalpha 0:ff5187998c84 4 CPV, 14/09/2009
allanalpha 0:ff5187998c84 5 */
allanalpha 0:ff5187998c84 6
allanalpha 0:ff5187998c84 7
allanalpha 0:ff5187998c84 8 #ifndef __FILTERS_H__
allanalpha 0:ff5187998c84 9 #define __FILTERS_H__
allanalpha 0:ff5187998c84 10
allanalpha 0:ff5187998c84 11 #define FILTER_MAX_SIZE 16
allanalpha 0:ff5187998c84 12
allanalpha 0:ff5187998c84 13 class FilterBoxF
allanalpha 0:ff5187998c84 14 {
allanalpha 0:ff5187998c84 15 public:
allanalpha 0:ff5187998c84 16 FilterBoxF(void) { initialise(FILTER_MAX_SIZE); }
allanalpha 0:ff5187998c84 17 void initialise(unsigned int size);
allanalpha 0:ff5187998c84 18 float tick(float in);
allanalpha 0:ff5187998c84 19 float get() { return m_out; }
allanalpha 0:ff5187998c84 20 float operator()(void) { return m_out; }
allanalpha 0:ff5187998c84 21
allanalpha 0:ff5187998c84 22 protected:
allanalpha 0:ff5187998c84 23 float m_history[FILTER_MAX_SIZE];
allanalpha 0:ff5187998c84 24 unsigned int m_size;
allanalpha 0:ff5187998c84 25 unsigned int m_index;
allanalpha 0:ff5187998c84 26 float m_out;
allanalpha 0:ff5187998c84 27 };
allanalpha 0:ff5187998c84 28
allanalpha 0:ff5187998c84 29
allanalpha 0:ff5187998c84 30 class FilterBoxI
allanalpha 0:ff5187998c84 31 {
allanalpha 0:ff5187998c84 32 public:
allanalpha 0:ff5187998c84 33 FilterBoxI(void) { initialise(FILTER_MAX_SIZE); }
allanalpha 0:ff5187998c84 34 void initialise(unsigned int size);
allanalpha 0:ff5187998c84 35 int tick(int in);
allanalpha 0:ff5187998c84 36 int operator()(void) { return m_out; }
allanalpha 0:ff5187998c84 37
allanalpha 0:ff5187998c84 38 protected:
allanalpha 0:ff5187998c84 39 int m_history[FILTER_MAX_SIZE];
allanalpha 0:ff5187998c84 40 unsigned int m_size;
allanalpha 0:ff5187998c84 41 unsigned int m_index;
allanalpha 0:ff5187998c84 42 int m_out;
allanalpha 0:ff5187998c84 43 };
allanalpha 0:ff5187998c84 44
allanalpha 0:ff5187998c84 45
allanalpha 0:ff5187998c84 46 class FilterIirI
allanalpha 0:ff5187998c84 47 {
allanalpha 0:ff5187998c84 48 public:
allanalpha 0:ff5187998c84 49 FilterIirI(void) { initialise(); }
allanalpha 0:ff5187998c84 50 void initialise(int tau=1, int limit=0xffff);
allanalpha 0:ff5187998c84 51 int tick(int in);
allanalpha 0:ff5187998c84 52 int operator()(void) { return m_out; }
allanalpha 0:ff5187998c84 53
allanalpha 0:ff5187998c84 54 protected:
allanalpha 0:ff5187998c84 55 int m_out;
allanalpha 0:ff5187998c84 56 int m_remainder;
allanalpha 0:ff5187998c84 57 int m_limit;
allanalpha 0:ff5187998c84 58 int m_tau;
allanalpha 0:ff5187998c84 59 };
allanalpha 0:ff5187998c84 60
allanalpha 0:ff5187998c84 61
allanalpha 0:ff5187998c84 62 #endif // __FILTERS_H__