a floating median filter to filter floating point data such as analog inputs

Dependents:   Quadcopter_mk2

Fork of filter by Ad van der Weiden

Committer:
networker
Date:
Wed Feb 16 20:05:42 2011 +0000
Revision:
0:46a72e790df8
Child:
1:9ce370b360ba
first release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
networker 0:46a72e790df8 1 #ifndef FILTER_H
networker 0:46a72e790df8 2 #define FILTER_H
networker 0:46a72e790df8 3
networker 0:46a72e790df8 4 class filter {
networker 0:46a72e790df8 5 public:
networker 0:46a72e790df8 6 virtual float process(float in) {
networker 0:46a72e790df8 7 return in;
networker 0:46a72e790df8 8 }
networker 0:46a72e790df8 9 };
networker 0:46a72e790df8 10
networker 0:46a72e790df8 11 class medianFilter: public filter {
networker 0:46a72e790df8 12 int N;
networker 0:46a72e790df8 13 float *val;
networker 0:46a72e790df8 14 bool *big;
networker 0:46a72e790df8 15 int med, i;
networker 0:46a72e790df8 16 float median;
networker 0:46a72e790df8 17 int findmax();
networker 0:46a72e790df8 18 int findmin();
networker 0:46a72e790df8 19 public:
networker 0:46a72e790df8 20 medianFilter(int window = 3); //every window >= 1 is allowed but the behaviour for even window sizes is not well defined
networker 0:46a72e790df8 21 virtual float process(float);
networker 0:46a72e790df8 22 };
networker 0:46a72e790df8 23
networker 0:46a72e790df8 24 #endif