Moving Averages#
The signal samples
of a signal trace can be
processed with a simple moving average over a number of signal
samples
, whereby each window of the signal samples
is statistically analyzed, and a MovingAverageTraces
collection in form
of the statistics trace collection is returned.
Create the Trace Collection#
You can process the signal samples
with a statistically analyzed
moving average by calling the method moving_average()
.
An statistics trace collection is returned.
>>> # simple moving average over a number of samples
>>> traces = Trace('Signal', [1, 2, 3]).moving_average(2)
>>> traces
MovingAverageTraces(mean=Trace(label='Signal:average:mean',
samples=[1, 1.5, 2.5]),
weighted_mean=Trace(label='Signal:average:weighted_mean',
samples=[1.0, 1.6666666666666665, 2.6666666666666665]),
median=Trace(label='Signal:average:median',
samples=[1.0, 1.5, 2.5]),
mode=Trace(label='Signal:average:mode',
samples=[1, 1, 2]),
rms=Trace(label='Signal:average:rms',
samples=[1.0, 1.5811388300841898, 2.5495097567963922]),
minimum=Trace(label='Signal:average:minimum',
samples=[1, 1, 2]),
maximum=Trace(label='Signal:average:maximum',
samples=[1, 2, 3]),
range=Trace(label='Signal:average:range',
samples=[0, 1, 1]),
midrange=Trace(label='Signal:average:midrange',
samples=[1.0, 1.5, 2.5]),
absolute_error=Trace(label='Signal:average:absolute_error',
samples=[0, 1.0, 1.0]),
variance=Trace(label='Signal:average:variance',
samples=[0.0, 0.25, 0.25]),
deviation=Trace(label='Signal:average:deviation',
samples=[0.0, 0.5, 0.5]),
coefficient=Trace(label='Signal:average:coefficient',
samples=[0.0, 0.3333333333333333, 0.2]),
skew=Trace(label='Signal:average:skew',
samples=[0.0, 0.0, 0.0]),
kurtosis=Trace(label='Signal:average:kurtosis',
samples=[0.0, 1.0, 1.0]))
Note
The moving average uses the first signal sample as the preset value
to generate the windows for the first number of
signal samples
.
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', [1, 2, 3]).moving_average(2).figure()
(Source code, html)