ROME2 - TI / Mbed 2 deprecated ROME2 - Praktikum

Dependencies:   mbed

Committer:
solcager
Date:
Fri Mar 31 11:00:19 2017 +0000
Revision:
1:08ca9b208045
P3

Who changed what in which revision?

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