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:
6:694fe8894215
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
pmic 6:694fe8894215 1 #ifndef GPA_H_
pmic 6:694fe8894215 2 #define GPA_H_
pmic 6:694fe8894215 3
altb 0:d49418189c5c 4 class GPA
altb 0:d49418189c5c 5 {
altb 0:d49418189c5c 6 public:
pmic 6:694fe8894215 7
pmic 6:694fe8894215 8 typedef struct GPADATA {
pmic 6:694fe8894215 9 float fexc;
pmic 6:694fe8894215 10 float absGyu;
pmic 6:694fe8894215 11 float angGyu;
pmic 6:694fe8894215 12 float absGyr;
pmic 6:694fe8894215 13 float angGyr;
pmic 6:694fe8894215 14 float Umag;
pmic 6:694fe8894215 15 float Ymag;
pmic 6:694fe8894215 16 float Rmag;
pmic 6:694fe8894215 17 bool MeasPointFinished;
pmic 6:694fe8894215 18 } gpadata_t;
pmic 6:694fe8894215 19
altb 0:d49418189c5c 20 GPA(float fMin, float fMax, int NfexcDes, float Aexc0, float Aexc1, float Ts);
pmic 6:694fe8894215 21 GPA(float fMin, float fMax, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep);
pmic 6:694fe8894215 22 GPA(float f0, float f1, float *fexcDes, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep);
pmic 6:694fe8894215 23 GPA(float *fexcDes, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep);
pmic 6:694fe8894215 24 GPA(float fMin, float fMax, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep, bool doPrint);
altb 0:d49418189c5c 25
pmic 6:694fe8894215 26 float operator()(float inp, float out)
pmic 6:694fe8894215 27 {
altb 0:d49418189c5c 28 return update((double)inp, (double)out);
altb 0:d49418189c5c 29 }
altb 0:d49418189c5c 30
altb 0:d49418189c5c 31 virtual ~GPA();
altb 0:d49418189c5c 32
altb 0:d49418189c5c 33 void reset();
altb 0:d49418189c5c 34 float update(double inp, double out);
altb 0:d49418189c5c 35
altb 0:d49418189c5c 36 void printGPAfexcDes();
altb 0:d49418189c5c 37 void printGPAmeasPara();
altb 0:d49418189c5c 38 void printGPAmeasTime();
altb 0:d49418189c5c 39 void printNfexcDes();
pmic 6:694fe8894215 40 void printLine();
pmic 6:694fe8894215 41
pmic 6:694fe8894215 42 gpadata_t getGPAdata();
altb 0:d49418189c5c 43
altb 0:d49418189c5c 44 private:
altb 0:d49418189c5c 45
altb 0:d49418189c5c 46 int NfexcDes;
altb 0:d49418189c5c 47 int NperMin;
altb 0:d49418189c5c 48 int NmeasMin;
altb 0:d49418189c5c 49 double Ts;
altb 0:d49418189c5c 50 double *fexcDes;
altb 0:d49418189c5c 51 double aAexcDes;
altb 0:d49418189c5c 52 double bAexcDes;
altb 0:d49418189c5c 53
altb 0:d49418189c5c 54 double fnyq;
altb 0:d49418189c5c 55 double pi2;
pmic 6:694fe8894215 56 double pi4;
altb 0:d49418189c5c 57 double pi2Ts;
altb 0:d49418189c5c 58 double piDiv2;
pmic 6:694fe8894215 59 double rad2deg;
pmic 6:694fe8894215 60 double div12pi;
pmic 6:694fe8894215 61 double div812pi;
altb 0:d49418189c5c 62
altb 0:d49418189c5c 63 int Nmeas;
altb 0:d49418189c5c 64 int Nper;
altb 0:d49418189c5c 65 double dfexc;
altb 0:d49418189c5c 66 double fexc;
altb 0:d49418189c5c 67 double fexcPast;
pmic 6:694fe8894215 68 double dfexcj;
altb 0:d49418189c5c 69 int i;
altb 0:d49418189c5c 70 int j;
altb 0:d49418189c5c 71 double scaleG;
altb 0:d49418189c5c 72 double cr;
altb 0:d49418189c5c 73 double ci;
altb 0:d49418189c5c 74 double *sU;
altb 0:d49418189c5c 75 double *sY;
altb 0:d49418189c5c 76 double sinarg;
pmic 6:694fe8894215 77 double sinargR;
altb 0:d49418189c5c 78 int NmeasTotal;
altb 0:d49418189c5c 79 double Aexc;
altb 0:d49418189c5c 80 double AexcPast;
altb 0:d49418189c5c 81 double pi2Tsfexc;
pmic 6:694fe8894215 82 int Nstart;
altb 0:d49418189c5c 83 int Nsweep;
pmic 6:694fe8894215 84 int Nsweep_i;
altb 0:d49418189c5c 85 double AexcOut;
pmic 6:694fe8894215 86
pmic 6:694fe8894215 87 gpadata_t gpaData;
pmic 6:694fe8894215 88 bool doPrint;
pmic 6:694fe8894215 89
pmic 6:694fe8894215 90 void assignParameters(int NfexcDes, int NperMin, int NmeasMin, double Ts, int Nstart, int Nsweep);
altb 0:d49418189c5c 91 void calculateDecreasingAmplitudeCoefficients(double Aexc0, double Aexc1);
altb 0:d49418189c5c 92 void initializeConstants(double Ts);
altb 0:d49418189c5c 93 void assignFilterStorage();
altb 0:d49418189c5c 94 void fexcDesLogspace(double fMin, double fMax, int NfexcDes);
altb 0:d49418189c5c 95 void calcGPAmeasPara(double fexcDes_i);
altb 0:d49418189c5c 96 double wrapAngle(double angle);
altb 0:d49418189c5c 97 void printLongLine();
altb 0:d49418189c5c 98
pmic 6:694fe8894215 99 };
pmic 6:694fe8894215 100
pmic 6:694fe8894215 101 #endif