AccelTest_Baseb
Dependencies: MMA7660 Serial_HL mbed
Diff: TP1Ord_18.h
- Revision:
- 1:0c47899d1aba
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TP1Ord_18.h Thu Nov 15 17:22:07 2018 +0000 @@ -0,0 +1,40 @@ + + +// Digitaler Tiefpass 1er Ordnung + +class TP1Ord { + private: + float alpha; // Filter-Constante + public: + float yn_1; + float y; // momentaner Ausgangswert des Filters + public: + // Konstruktor wird automatisch aufgerufen wenn eine + // Variable der Klasse TP1Ord angelegt wird. + // interne Variablen sinnvoll initialisieren + TP1Ord(); + + // einen Abtastschritt des Filters rechnen + // es entsteht ein neues y + void CalcOneStep(float aX); + + void SetAlpha(float aAlpha); +}; + +TP1Ord::TP1Ord() +{ + y=0; yn_1=0; + SetAlpha(0.1); // sinnvalles Alpha einstellen +} + +void TP1Ord::CalcOneStep(float aX) +{ + y = alpha*aX + (1-alpha)*yn_1; + yn_1 = y; // y einmal merken ( zwischenspeichern ) +} + +void TP1Ord::SetAlpha(float aAlpha) +{ // 0..1 absichern + if( aAlpha>=0 && aAlpha<=1 ) + alpha = aAlpha; +}