Alpha-Beta Filter#
The signal samples
of a signal trace can be
processed with an alpha-beta filter.
Create the Trace Collection#
You can smooth the signal samples
with an alpha-beta filter
by calling the method alpha_beta_filter()
.
An alpha-beta filter trace collection is returned.
>>> # filter the signal samples
>>> traces = Trace('Signal', [1, 2, 3]).alpha_beta_filter(dt=1, alpha=0.5, beta=1)
>>> traces
AlphaBetaFilterTraces(forecast=Trace(label='Signal:filter:forecast',
samples=[1.0, 1.0, 2.5]),
forecast_sign=Trace(label='Signal:filter:forecast_sign',
samples=[1.0, 1.0, 1.0]),
level=Trace(label='Signal:filter:level',
samples=[1.0, 1.5, 2.75]),
level_sign=Trace(label='Signal:filter:level_sign',
samples=[1.0, 1.0, 1.0]),
trend=Trace(label='Signal:filter:trend',
samples=[0.0, 1.0, 1.5]),
trend_sign=Trace(label='Signal:filter:trend_sign',
samples=[0.0, 1.0, 1.0]),
trend_inflection=Trace(label='Signal:filter:trend_inflection',
samples=[0.0, 1.0, 1.0]),
error=Trace(label='Signal:filter:error',
samples=[0.0, 1.0, 0.5]),
variance_forecast=Trace(label='Signal:filter:variance_forecast',
samples=[3.0, 3.0, 3.0]),
variance_level=Trace(label='Signal:filter:variance_level',
samples=[1.0, 1.0, 1.0]),
variance_trend=Trace(label='Signal:filter:variance_trend',
samples=[2.0, 2.0, 2.0]))
Note
The alpha-beta filter uses the first signal sample as the initial level, and the initial trend is set by default to zero.
Figure#
You can visualize the trace collection with a figure containing the subplots of
the traces in the collection by calling the method
figure()
.
>>> figure = Trace('Signal', range(20)).alpha_beta_filter(1, 0.5, 1).figure()
(Source code, html)