The moving average purpose is to filter some data that comes from a source that may be unprecise. See more information about Moving Average here: http://en.wikipedia.org/wiki/Moving_average
Revision 0:226202c7ea37, committed 2013-04-14
- Comitter:
- Alegrowin
- Date:
- Sun Apr 14 01:02:39 2013 +0000
- Commit message:
- Initial Commit; ; This library purpose is to provide a tool to filter data from a source that is not precise enough,; ; Read more here:http://en.wikipedia.org/wiki/Moving_average
Changed in this revision
MovingAverage.cpp | Show annotated file Show diff for this revision Revisions of this file |
MovingAverage.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r 226202c7ea37 MovingAverage.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MovingAverage.cpp Sun Apr 14 01:02:39 2013 +0000 @@ -0,0 +1,51 @@ +/*****************************************************/ +/* _ _ */ +/* /\ | | (_) */ +/* / \ | | ___ __ _ _ __ _____ ___ _ __ */ +/* / /\ \ | |/ _ \/ _` | '__/ _ \ \ /\ / / | '_ \ */ +/* / ____ \| | __/ (_| | | | (_) \ V V /| | | | | */ +/* /_/ \_\_|\___|\__, |_| \___/ \_/\_/ |_|_| |_| */ +/* __/ | */ +/* |___/ */ +/* Created on April 2013 */ +/*****************************************************/ + + +/* + +for(int i = 0; i < FILTRE_RANGE; i++) { + FiltreMobile[i] = cmd[0]; + } + + Temp = Temp - FiltreMobile[Temp_next]/FILTRE_RANGE + cmd[0]/FILTRE_RANGE; + FiltreMobile[Temp_next++] = cmd[0]; + + Temp_next = Temp_next&0x07; +}*/ +#include "MovingAverage.h" + +template<class T> +MovingAverage<T>::MovingAverage(unsigned char maxLength, T defaultValue){ + MaxLength = maxLength; + + AverageFilter = new T[MaxLength]; + + for(int i = 0; i<MaxLength;i++) + { + AverageFilter[i] = defaultValue; + } + Average = defaultValue; +} + +template<class T> +T MovingAverage<T>::GetAverage(){ + return Average; +} +template<class T> +void MovingAverage<T>::Insert(T value){ + + Average = Average - AverageFilter[NextElement]/MaxLength + value/MaxLength; + FiltreMobile[NextElement++] = value; + + NextElement = NextElement&MaxLength; +} \ No newline at end of file
diff -r 000000000000 -r 226202c7ea37 MovingAverage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MovingAverage.h Sun Apr 14 01:02:39 2013 +0000 @@ -0,0 +1,19 @@ +#ifndef MOVING_AVERAGE_H +#define MOVING_AVERAGE_H + +template <class T> +class MovingAverage +{ +private: + T AverageFilter[]; + T Average; + + unsigned char NextElement; + unsigned char MaxLength; +public: + MovingAverage(unsigned char maxLength, T defaultValue); + T GetAverage(); + void Insert(T value); +}; + +#endif \ No newline at end of file