rome2_p6 imported

Dependencies:   mbed

Committer:
Appalco
Date:
Fri May 18 13:54:25 2018 +0000
Revision:
5:957580f33e52
Parent:
0:351a2fb21235
fixed tolerance and wayponts

Who changed what in which revision?

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