Skip to main content

Class: ExpSmoother

Defined in: src/sdk/math/ExpSmoother.ts:10

Applies time-weighted exponential smoothing (i.e. an exponential moving average) to a sequence of raw values.

When a new raw value is added to the sequence, it and the last smoothed value are weighted according to the time elapsed since the last smoothed value was calculated (i.e. since the last raw value was added) and averaged. The calculation of the weighting is such that the weight of each raw value in the sequence decays exponentially with the "age" (i.e. time elapsed between when that value was added to the sequence and when the latest value was added to the sequence) of the value.

Constructors​

Constructor​

new ExpSmoother(tau, initial, dtThreshold): ExpSmoother

Defined in: src/sdk/math/ExpSmoother.ts:21

Creates a new instance of ExpSmoother.

Parameters​

ParameterTypeDefault valueDescription
taunumberundefinedThis smoother's time constant. The larger the constant, the greater the smoothing effect. A value less than or equal to 0 is equivalent to no smoothing.
initialnull | numbernullThe initial smoothed value of this smoother. Defaults to null.
dtThresholdnumberInfinityThe elapsed time threshold, in seconds, above which this smoother will not smooth a new raw value. Defaults to infinity.

Returns​

ExpSmoother

Properties​

dtThreshold​

readonly dtThreshold: number = Infinity

Defined in: src/sdk/math/ExpSmoother.ts:24

The elapsed time threshold, in seconds, above which this smoother will not smooth a new raw value. Defaults to infinity.


tau​

readonly tau: number

Defined in: src/sdk/math/ExpSmoother.ts:22

This smoother's time constant. The larger the constant, the greater the smoothing effect. A value less than or equal to 0 is equivalent to no smoothing.

Methods​

last()​

last(): null | number

Defined in: src/sdk/math/ExpSmoother.ts:33

Gets the last smoothed value.

Returns​

null | number

The last smoothed value, or null if none exists.


next()​

next(raw, dt): number

Defined in: src/sdk/math/ExpSmoother.ts:45

Adds a new raw value and gets the next smoothed value. If the new raw value is the first to be added since this smoother was created or reset with no initial smoothed value, the returned smoothed value will be equal to the raw value.

Parameters​

ParameterTypeDescription
rawnumberThe new raw value.
dtnumberThe elapsed time since the last raw value was added.

Returns​

number

The next smoothed value.


reset()​

Call Signature​

reset(): null

Defined in: src/sdk/math/ExpSmoother.ts:73

Resets the "history" of this smoother and sets the initial smoothed value to null.

Returns​

null

Call Signature​

reset<T>(value): T

Defined in: src/sdk/math/ExpSmoother.ts:79

Resets the "history" of this smoother and sets the initial smoothed value.

Type Parameters​
Type Parameter
T extends null | number
Parameters​
ParameterTypeDescription
valueTThe new initial smoothed value.
Returns​

T

The reset smoothed value.

Call Signature​

reset(value?): null | number

Defined in: src/sdk/math/ExpSmoother.ts:85

Resets the "history" of this smoother and optionally sets the initial smoothed value.

Parameters​
ParameterTypeDescription
value?null | numberThe new initial smoothed value. Defaults to null.
Returns​

null | number

The reset smoothed value.