Moving Average
Dependents: MovingAverage_HelloWorld Levitator EMG_Realtime_Filter EMG_Calibration ... more
Fork of MoyenneMobile by
Diff: MovingAverage.h
- Revision:
- 1:b310d132db09
- Parent:
- 0:226202c7ea37
- Child:
- 4:ad69440a9bef
--- a/MovingAverage.h Sun Apr 14 01:02:39 2013 +0000 +++ b/MovingAverage.h Mon Jul 07 12:27:57 2014 +0000 @@ -5,7 +5,7 @@ class MovingAverage { private: - T AverageFilter[]; + T* Element; T Average; unsigned char NextElement; @@ -13,7 +13,35 @@ public: MovingAverage(unsigned char maxLength, T defaultValue); T GetAverage(); + void Insert(T value); }; +template<class T> +MovingAverage<T>::MovingAverage(unsigned char maxLength, T defaultValue){ + MaxLength = maxLength; + + Element = new T[MaxLength]; + + for(int i = 0; i<MaxLength;i++) + { + Element[i] = defaultValue; + } + Average = defaultValue; +} + +template<class T> +T MovingAverage<T>::GetAverage(){ + return Average; +} + + +template<class T> +void MovingAverage<T>::Insert(T value){ + Average = value/MaxLength + Average - Element[++NextElement]/MaxLength; + Element[NextElement] = value; + if(NextElement>=(MaxLength-1)) + NextElement=0; + +} #endif \ No newline at end of file