Control Library by altb

Dependents:   My_Libraries IndNav_QK3_T265

Committer:
pmic
Date:
Thu Jan 16 09:12:50 2020 +0000
Revision:
15:c70cad2f4e64
Parent:
14:9184aa9fdac7
Revisit IIR_filter.h and IIR_filter.cpp. Change internal double to float arithmetic.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altb2 13:6ad25476ec59 1 #ifndef IIR_FILTER_H_
altb2 13:6ad25476ec59 2 #define IIR_FILTER_H_
pmic 15:c70cad2f4e64 3
pmic 15:c70cad2f4e64 4 #include "mbed.h"
pmic 15:c70cad2f4e64 5
altb 0:d49418189c5c 6 class IIR_filter{
pmic 15:c70cad2f4e64 7
altb 0:d49418189c5c 8 public:
altb 0:d49418189c5c 9
altb 0:d49418189c5c 10 IIR_filter(float T, float Ts);
altb 0:d49418189c5c 11 IIR_filter(float T, float Ts, float K);
altb 0:d49418189c5c 12 IIR_filter(float w0, float D, float Ts, float K);
pmic 15:c70cad2f4e64 13 IIR_filter(float *b, float *a, int nb, int na);
pmic 15:c70cad2f4e64 14 IIR_filter() {};
altb 0:d49418189c5c 15
altb 0:d49418189c5c 16 float operator()(float u){
pmic 15:c70cad2f4e64 17 return filter(u);
altb 0:d49418189c5c 18 }
pmic 15:c70cad2f4e64 19
pmic 15:c70cad2f4e64 20 virtual ~IIR_filter();
pmic 15:c70cad2f4e64 21
pmic 15:c70cad2f4e64 22 void setup(float T, float Ts, float K);
pmic 15:c70cad2f4e64 23 void reset(float val);
pmic 15:c70cad2f4e64 24 float filter(float input);
pmic 15:c70cad2f4e64 25
altb 0:d49418189c5c 26 private:
altb 0:d49418189c5c 27
pmic 15:c70cad2f4e64 28 uint8_t nb;
pmic 15:c70cad2f4e64 29 uint8_t na;
pmic 15:c70cad2f4e64 30 float *B;
pmic 15:c70cad2f4e64 31 float *A;
pmic 15:c70cad2f4e64 32 float *uk;
pmic 15:c70cad2f4e64 33 float *yk;
pmic 15:c70cad2f4e64 34 float K;
altb2 13:6ad25476ec59 35 };
altb2 13:6ad25476ec59 36 #endif