Nim leo niiiim

Committer:
Kiwicjam
Date:
Fri May 11 12:21:19 2018 +0000
Revision:
0:da791f233257
start of rome2 p5;

Who changed what in which revision?

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