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)