Quentin Mettraux
/
MAVErIC_TEST
Working Maveric
LowpassFilter.h@0:bdca5e4773dd, 2017-04-04 (annotated)
- Committer:
- mettrque
- Date:
- Tue Apr 04 15:18:23 2017 +0000
- Revision:
- 0:bdca5e4773dd
First Erfolgreich
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mettrque | 0:bdca5e4773dd | 1 | /* |
mettrque | 0:bdca5e4773dd | 2 | * LowpassFilter.h |
mettrque | 0:bdca5e4773dd | 3 | * Copyright (c) 2017, ZHAW |
mettrque | 0:bdca5e4773dd | 4 | * All rights reserved. |
mettrque | 0:bdca5e4773dd | 5 | * |
mettrque | 0:bdca5e4773dd | 6 | * Created on: 02.02.2017 |
mettrque | 0:bdca5e4773dd | 7 | * Author: Marcel Honegger |
mettrque | 0:bdca5e4773dd | 8 | */ |
mettrque | 0:bdca5e4773dd | 9 | |
mettrque | 0:bdca5e4773dd | 10 | #ifndef LOWPASS_FILTER_H_ |
mettrque | 0:bdca5e4773dd | 11 | #define LOWPASS_FILTER_H_ |
mettrque | 0:bdca5e4773dd | 12 | |
mettrque | 0:bdca5e4773dd | 13 | #include <cstdlib> |
mettrque | 0:bdca5e4773dd | 14 | |
mettrque | 0:bdca5e4773dd | 15 | /** |
mettrque | 0:bdca5e4773dd | 16 | * This class implements a time-discrete 2nd order lowpass filter for a series of data values. |
mettrque | 0:bdca5e4773dd | 17 | * This filter can typically be used within a periodic task that takes measurements that need |
mettrque | 0:bdca5e4773dd | 18 | * to be filtered, like speed or position values. |
mettrque | 0:bdca5e4773dd | 19 | */ |
mettrque | 0:bdca5e4773dd | 20 | class LowpassFilter { |
mettrque | 0:bdca5e4773dd | 21 | |
mettrque | 0:bdca5e4773dd | 22 | public: |
mettrque | 0:bdca5e4773dd | 23 | |
mettrque | 0:bdca5e4773dd | 24 | LowpassFilter(); |
mettrque | 0:bdca5e4773dd | 25 | virtual ~LowpassFilter(); |
mettrque | 0:bdca5e4773dd | 26 | void reset(); |
mettrque | 0:bdca5e4773dd | 27 | void reset(float value); |
mettrque | 0:bdca5e4773dd | 28 | void setPeriod(float period); |
mettrque | 0:bdca5e4773dd | 29 | void setFrequency(float frequency); |
mettrque | 0:bdca5e4773dd | 30 | float getFrequency(); |
mettrque | 0:bdca5e4773dd | 31 | float filter(float value); |
mettrque | 0:bdca5e4773dd | 32 | |
mettrque | 0:bdca5e4773dd | 33 | private: |
mettrque | 0:bdca5e4773dd | 34 | |
mettrque | 0:bdca5e4773dd | 35 | float period; |
mettrque | 0:bdca5e4773dd | 36 | float frequency; |
mettrque | 0:bdca5e4773dd | 37 | float a11, a12, a21, a22, b1, b2; |
mettrque | 0:bdca5e4773dd | 38 | float x1, x2; |
mettrque | 0:bdca5e4773dd | 39 | }; |
mettrque | 0:bdca5e4773dd | 40 | |
mettrque | 0:bdca5e4773dd | 41 | #endif /* LOWPASS_FILTER_H_ */ |
mettrque | 0:bdca5e4773dd | 42 |