Christian Weiß
/
ProcVisDemo_Accel
ProcVisDemo_Accel
Diff: TP1.h
- Revision:
- 0:fca9076d3362
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TP1.h Thu Nov 15 18:04:08 2018 +0000 @@ -0,0 +1,41 @@ +// Digitaler Tiefpass 1. Ordnung + +class TP1Ord +{ +private: + float alpha; // Filterkonstante +public: + float yn_1; + float y; // momentaner Ausgangswert des Filters +public: + + // Konstruktor wird automatisch aufgerufen + // 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); // sinnvolles Alpha einstellen +} + +void TP1Ord::SetAlpha (float aAlpha) +{ + // 0...1 absichern + if(aAlpha >= 0 && aAlpha <= 1) + alpha = aAlpha; +} + +void TP1Ord::CalcOneStep (float aX) +{ + y = alpha*aX + (1-alpha)*yn_1; + yn_1 = y; // y einmal merken (zwischspeichern) +} \ No newline at end of file