Implements a simple leaky integrator integer value filter, handy for fast, simple, ADC output filtering. Implemented as described here: [[http://ece124web.groups.et.byu.net/references/readings/Simple%20Software%20Lowpass%20Filter.pdf|Simple Software Lowpass Filter.pdf]]

Dependents:   AVC_20110423 WallBot_Simple AVC_2012

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers SimpleFilter.cpp Source File

SimpleFilter.cpp

00001 #include "SimpleFilter.h"
00002 
00003 SimpleFilter::SimpleFilter(short shift): _filter_value(0), _shift(shift) {
00004     // nothing to do here, really
00005 }
00006 
00007 short SimpleFilter::filter(short value) {
00008 
00009     _filter_value += (value - (_filter_value >> _shift));
00010     
00011     return _filter_value >> _shift;
00012 }
00013 
00014 short SimpleFilter::value(void) {
00015     return _filter_value >> _shift;
00016 }