a floating median filter to filter floating point data such as analog inputs
Fork of filter by
filter.h@0:46a72e790df8, 2011-02-16 (annotated)
- 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?
User | Revision | Line number | New 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 |