OpenWareLaboratory
SmoothValue< T, Value > Class Template Reference

Applies exponential smoothing to a scalar value. More...

Inheritance diagram for SmoothValue< T, Value >:
Collaboration diagram for SmoothValue< T, Value >:

Public Member Functions

const float DEFAULT_DELTA
 
const int DEFAULT_DELTA
 
const float DEFAULT_DELTA
 
const int DEFAULT_DELTA
 
const float DEFAULT_EXP_C
 
const int DEFAULT_EXP_C
 
const float DEFAULT_EXP_C
 
const int DEFAULT_EXP_C
 
const float DEFAULT_EXP_K
 
const int DEFAULT_EXP_K
 
const float DEFAULT_EXP_K
 
const int DEFAULT_EXP_K
 
const float DEFAULT_LAMBDA
 
const int DEFAULT_LAMBDA
 
const float DEFAULT_LAMBDA
 
const int DEFAULT_LAMBDA
 
const float DEFAULT_LOG_C
 
const int DEFAULT_LOG_C
 
const float DEFAULT_LOG_C
 
const int DEFAULT_LOG_C
 
const float DEFAULT_LOG_K
 
const int DEFAULT_LOG_K
 
const float DEFAULT_LOG_K
 
const int DEFAULT_LOG_K
 
get ()
 
 operator T ()
 
SmoothValue< T, Value > & operator*= (const T &other)
 
SmoothValue< T, Value > & operator+= (const T &other)
 
SmoothValue< T, Value > & operator-= (const T &other)
 
SmoothValue< T, Value > & operator/= (const T &other)
 
SmoothValue< T, Value > & operator= (const T &x)
 
void reset (T x)
 
 SmoothValue ()
 
 SmoothValue (const SmoothValue< T, Value > &other)
 
 SmoothValue (T lambda, T init)
 
 SmoothValue (T value)
 
void update (T x)
 

Static Public Member Functions

static T normal (float lambda, int blocksize)
 

Data Fields

lambda = Value::DEFAULT_LAMBDA
 

Static Public Attributes

static const T DEFAULT_DELTA
 
static const T DEFAULT_EXP_C
 
static const T DEFAULT_EXP_K
 
static const T DEFAULT_LAMBDA
 
static const T DEFAULT_LOG_C
 
static const T DEFAULT_LOG_K
 

Protected Attributes

value
 

Detailed Description

template<typename T, typename Value = SimpleValue<T>>
class SmoothValue< T, Value >

Applies exponential smoothing to a scalar value.

y(n) = lambda*y(n-1) + (1.0-lambda)*y(n) for floats y(n) = (lambda*y(n-1) + y(n))/(lambda+1) for ints Smoothing is applied when the value is written to, not when it is read. todo: adjust for sampling frequency / blocksize (time delay of the response (mean) is 1/α data points) https://en.wikipedia.org/wiki/Exponential_smoothing

Definition at line 15 of file SmoothValue.h.

Constructor & Destructor Documentation

◆ SmoothValue() [1/4]

template<typename T , typename Value = SimpleValue<T>>
SmoothValue< T, Value >::SmoothValue ( )
inline

Definition at line 18 of file SmoothValue.h.

◆ SmoothValue() [2/4]

template<typename T , typename Value = SimpleValue<T>>
SmoothValue< T, Value >::SmoothValue ( value)
inline

Definition at line 19 of file SmoothValue.h.

◆ SmoothValue() [3/4]

template<typename T , typename Value = SimpleValue<T>>
SmoothValue< T, Value >::SmoothValue ( lambda,
init 
)
inline

Definition at line 20 of file SmoothValue.h.

◆ SmoothValue() [4/4]

template<typename T , typename Value = SimpleValue<T>>
SmoothValue< T, Value >::SmoothValue ( const SmoothValue< T, Value > &  other)
inline

Definition at line 21 of file SmoothValue.h.

Member Function Documentation

◆ DEFAULT_DELTA() [1/4]

const float SimpleValue< float >::DEFAULT_DELTA
inherited

Definition at line 11 of file SimpleValue.cpp.

◆ DEFAULT_DELTA() [2/4]

const int SimpleValue< int >::DEFAULT_DELTA
inherited

Definition at line 17 of file SimpleValue.cpp.

◆ DEFAULT_DELTA() [3/4]

const float SimpleValue< float >::DEFAULT_DELTA
inherited

Definition at line 61 of file SimpleValue.h.

◆ DEFAULT_DELTA() [4/4]

const int SimpleValue< int >::DEFAULT_DELTA
inherited

Definition at line 67 of file SimpleValue.h.

◆ DEFAULT_EXP_C() [1/4]

const float SimpleValue< float >::DEFAULT_EXP_C
inherited

Definition at line 12 of file SimpleValue.cpp.

◆ DEFAULT_EXP_C() [2/4]

const int SimpleValue< int >::DEFAULT_EXP_C
inherited

Definition at line 18 of file SimpleValue.cpp.

◆ DEFAULT_EXP_C() [3/4]

const float SimpleValue< float >::DEFAULT_EXP_C
inherited

Definition at line 62 of file SimpleValue.h.

◆ DEFAULT_EXP_C() [4/4]

const int SimpleValue< int >::DEFAULT_EXP_C
inherited

Definition at line 68 of file SimpleValue.h.

◆ DEFAULT_EXP_K() [1/4]

const float SimpleValue< float >::DEFAULT_EXP_K
inherited

Definition at line 13 of file SimpleValue.cpp.

◆ DEFAULT_EXP_K() [2/4]

const int SimpleValue< int >::DEFAULT_EXP_K
inherited

Definition at line 19 of file SimpleValue.cpp.

◆ DEFAULT_EXP_K() [3/4]

const float SimpleValue< float >::DEFAULT_EXP_K
inherited

Definition at line 63 of file SimpleValue.h.

◆ DEFAULT_EXP_K() [4/4]

const int SimpleValue< int >::DEFAULT_EXP_K
inherited

Definition at line 69 of file SimpleValue.h.

◆ DEFAULT_LAMBDA() [1/4]

const float SimpleValue< float >::DEFAULT_LAMBDA
inherited

Definition at line 10 of file SimpleValue.cpp.

◆ DEFAULT_LAMBDA() [2/4]

const int SimpleValue< int >::DEFAULT_LAMBDA
inherited

Definition at line 16 of file SimpleValue.cpp.

◆ DEFAULT_LAMBDA() [3/4]

const float SimpleValue< float >::DEFAULT_LAMBDA
inherited

Definition at line 60 of file SimpleValue.h.

◆ DEFAULT_LAMBDA() [4/4]

const int SimpleValue< int >::DEFAULT_LAMBDA
inherited

Definition at line 66 of file SimpleValue.h.

◆ DEFAULT_LOG_C() [1/4]

const float SimpleValue< float >::DEFAULT_LOG_C
inherited

Definition at line 14 of file SimpleValue.cpp.

◆ DEFAULT_LOG_C() [2/4]

const int SimpleValue< int >::DEFAULT_LOG_C
inherited

Definition at line 20 of file SimpleValue.cpp.

◆ DEFAULT_LOG_C() [3/4]

const float SimpleValue< float >::DEFAULT_LOG_C
inherited

Definition at line 64 of file SimpleValue.h.

◆ DEFAULT_LOG_C() [4/4]

const int SimpleValue< int >::DEFAULT_LOG_C
inherited

Definition at line 70 of file SimpleValue.h.

◆ DEFAULT_LOG_K() [1/4]

const float SimpleValue< float >::DEFAULT_LOG_K
inherited

Definition at line 15 of file SimpleValue.cpp.

◆ DEFAULT_LOG_K() [2/4]

const int SimpleValue< int >::DEFAULT_LOG_K
inherited

Definition at line 21 of file SimpleValue.cpp.

◆ DEFAULT_LOG_K() [3/4]

const float SimpleValue< float >::DEFAULT_LOG_K
inherited

Definition at line 65 of file SimpleValue.h.

◆ DEFAULT_LOG_K() [4/4]

const int SimpleValue< int >::DEFAULT_LOG_K
inherited

Definition at line 71 of file SimpleValue.h.

◆ get()

template<typename T >
T SimpleValue< T >::get ( )
inlineinherited

Definition at line 19 of file SimpleValue.h.

References SimpleValue< T >::value.

Referenced by SimpleValue< T >::operator T().

◆ normal()

template<typename T , typename Value = SimpleValue<T>>
static T SmoothValue< T, Value >::normal ( float  lambda,
int  blocksize 
)
static

◆ operator T()

template<typename T , typename Value = SimpleValue<T>>
SmoothValue< T, Value >::operator T ( )
inline

Definition at line 45 of file SmoothValue.h.

◆ operator*=()

template<typename T , typename Value = SimpleValue<T>>
SmoothValue<T, Value>& SmoothValue< T, Value >::operator*= ( const T &  other)
inline

Definition at line 37 of file SmoothValue.h.

References SmoothValue< T, Value >::update().

◆ operator+=()

template<typename T , typename Value = SimpleValue<T>>
SmoothValue<T, Value>& SmoothValue< T, Value >::operator+= ( const T &  other)
inline

Definition at line 29 of file SmoothValue.h.

References SmoothValue< T, Value >::update().

◆ operator-=()

template<typename T , typename Value = SimpleValue<T>>
SmoothValue<T, Value>& SmoothValue< T, Value >::operator-= ( const T &  other)
inline

Definition at line 33 of file SmoothValue.h.

References SmoothValue< T, Value >::update().

◆ operator/=()

template<typename T , typename Value = SimpleValue<T>>
SmoothValue<T, Value>& SmoothValue< T, Value >::operator/= ( const T &  other)
inline

Definition at line 41 of file SmoothValue.h.

References SmoothValue< T, Value >::update().

◆ operator=()

template<typename T , typename Value = SimpleValue<T>>
SmoothValue<T, Value>& SmoothValue< T, Value >::operator= ( const T &  x)
inline

Definition at line 25 of file SmoothValue.h.

References SmoothValue< T, Value >::update().

◆ reset()

template<typename T >
void SimpleValue< T >::reset ( x)
inlineinherited

Definition at line 22 of file SimpleValue.h.

References SimpleValue< T >::value.

◆ update()

template<typename T , typename Value = SimpleValue<T>>
void SmoothValue< T, Value >::update ( x)
inline

Field Documentation

◆ DEFAULT_DELTA

template<typename T >
const T SimpleValue< T >::DEFAULT_DELTA
staticinherited

Definition at line 52 of file SimpleValue.h.

◆ DEFAULT_EXP_C

template<typename T >
const T SimpleValue< T >::DEFAULT_EXP_C
staticinherited

Definition at line 53 of file SimpleValue.h.

◆ DEFAULT_EXP_K

template<typename T >
const T SimpleValue< T >::DEFAULT_EXP_K
staticinherited

Definition at line 54 of file SimpleValue.h.

◆ DEFAULT_LAMBDA

template<typename T >
const T SimpleValue< T >::DEFAULT_LAMBDA
staticinherited

Definition at line 51 of file SimpleValue.h.

◆ DEFAULT_LOG_C

template<typename T >
const T SimpleValue< T >::DEFAULT_LOG_C
staticinherited

Definition at line 55 of file SimpleValue.h.

◆ DEFAULT_LOG_K

template<typename T >
const T SimpleValue< T >::DEFAULT_LOG_K
staticinherited

Definition at line 56 of file SimpleValue.h.

◆ lambda

template<typename T , typename Value = SimpleValue<T>>
T SmoothValue< T, Value >::lambda = Value::DEFAULT_LAMBDA

Definition at line 17 of file SmoothValue.h.

Referenced by SmoothValue< T, Value >::update().

◆ value


The documentation for this class was generated from the following file: