Alexandre Proulx / MoyenneMobile
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MovingAverage.cpp Source File

MovingAverage.cpp

00001 /*****************************************************/
00002 /*           _                              _        */
00003 /*     /\   | |                            (_)       */
00004 /*    /  \  | | ___  __ _ _ __ _____      ___ _ __   */
00005 /*   / /\ \ | |/ _ \/ _` | '__/ _ \ \ /\ / / | '_ \  */
00006 /*  / ____ \| |  __/ (_| | | | (_) \ V  V /| | | | | */
00007 /* /_/    \_\_|\___|\__, |_|  \___/ \_/\_/ |_|_| |_| */
00008 /*                   __/ |                           */
00009 /*                  |___/                            */
00010 /*                          Created on April 2013    */
00011 /*****************************************************/
00012 
00013 
00014 /*
00015 
00016 for(int i = 0; i < FILTRE_RANGE; i++) {
00017         FiltreMobile[i] = cmd[0];
00018     }
00019     
00020     Temp = Temp - FiltreMobile[Temp_next]/FILTRE_RANGE + cmd[0]/FILTRE_RANGE;
00021     FiltreMobile[Temp_next++] = cmd[0];
00022 
00023     Temp_next = Temp_next&0x07;
00024 }*/
00025 #include "MovingAverage.h"
00026 
00027 template<class T>
00028 MovingAverage<T>::MovingAverage(unsigned char maxLength, T defaultValue){
00029     MaxLength = maxLength;
00030     
00031     AverageFilter = new T[MaxLength];
00032     
00033     for(int i = 0; i<MaxLength;i++)
00034     {
00035         AverageFilter[i] = defaultValue;
00036     }
00037     Average = defaultValue;
00038 }
00039 
00040 template<class T>
00041 T MovingAverage<T>::GetAverage(){
00042     return Average;
00043 }
00044 template<class T>
00045 void MovingAverage<T>::Insert(T value){
00046     
00047     Average = Average - AverageFilter[NextElement]/MaxLength + value/MaxLength;
00048     FiltreMobile[NextElement++] = value;
00049 
00050     NextElement = NextElement&MaxLength;
00051 }