AccelTest_Baseb

Dependencies:   MMA7660 Serial_HL mbed

Committer:
martwerl
Date:
Thu Nov 15 17:22:07 2018 +0000
Revision:
1:0c47899d1aba
AccelTest_Baseb

Who changed what in which revision?

UserRevisionLine numberNew contents of line
martwerl 1:0c47899d1aba 1
martwerl 1:0c47899d1aba 2
martwerl 1:0c47899d1aba 3 // Digitaler Tiefpass 1er Ordnung
martwerl 1:0c47899d1aba 4
martwerl 1:0c47899d1aba 5 class TP1Ord {
martwerl 1:0c47899d1aba 6 private:
martwerl 1:0c47899d1aba 7 float alpha; // Filter-Constante
martwerl 1:0c47899d1aba 8 public:
martwerl 1:0c47899d1aba 9 float yn_1;
martwerl 1:0c47899d1aba 10 float y; // momentaner Ausgangswert des Filters
martwerl 1:0c47899d1aba 11 public:
martwerl 1:0c47899d1aba 12 // Konstruktor wird automatisch aufgerufen wenn eine
martwerl 1:0c47899d1aba 13 // Variable der Klasse TP1Ord angelegt wird.
martwerl 1:0c47899d1aba 14 // interne Variablen sinnvoll initialisieren
martwerl 1:0c47899d1aba 15 TP1Ord();
martwerl 1:0c47899d1aba 16
martwerl 1:0c47899d1aba 17 // einen Abtastschritt des Filters rechnen
martwerl 1:0c47899d1aba 18 // es entsteht ein neues y
martwerl 1:0c47899d1aba 19 void CalcOneStep(float aX);
martwerl 1:0c47899d1aba 20
martwerl 1:0c47899d1aba 21 void SetAlpha(float aAlpha);
martwerl 1:0c47899d1aba 22 };
martwerl 1:0c47899d1aba 23
martwerl 1:0c47899d1aba 24 TP1Ord::TP1Ord()
martwerl 1:0c47899d1aba 25 {
martwerl 1:0c47899d1aba 26 y=0; yn_1=0;
martwerl 1:0c47899d1aba 27 SetAlpha(0.1); // sinnvalles Alpha einstellen
martwerl 1:0c47899d1aba 28 }
martwerl 1:0c47899d1aba 29
martwerl 1:0c47899d1aba 30 void TP1Ord::CalcOneStep(float aX)
martwerl 1:0c47899d1aba 31 {
martwerl 1:0c47899d1aba 32 y = alpha*aX + (1-alpha)*yn_1;
martwerl 1:0c47899d1aba 33 yn_1 = y; // y einmal merken ( zwischenspeichern )
martwerl 1:0c47899d1aba 34 }
martwerl 1:0c47899d1aba 35
martwerl 1:0c47899d1aba 36 void TP1Ord::SetAlpha(float aAlpha)
martwerl 1:0c47899d1aba 37 { // 0..1 absichern
martwerl 1:0c47899d1aba 38 if( aAlpha>=0 && aAlpha<=1 )
martwerl 1:0c47899d1aba 39 alpha = aAlpha;
martwerl 1:0c47899d1aba 40 }