acquisition-0.1: Generic interface for digital multimeters and data loggersSource codeContentsIndex
System.Hardware.Acquisition.Adaptor.Filter
Synopsis
adaptor :: MonadIO m => [Value] -> [Value] -> Adaptor m
movingAverage :: MonadIO m => Int -> Adaptor m
geometricAverage :: MonadIO m => Value -> Int -> Adaptor m
exponentialAverage :: MonadIO m => Value -> Adaptor m
Documentation
adaptorSource
:: MonadIO m
=> [Value]a[_], feedback filter coefficients
-> [Value]b[_], feedforward filter coefficients
-> Adaptor m

IIR (infinite impulse response) filter, modelled by:

∑ out[n] × a[n] = ∑ in[n] × b[n]

where in[0] is the most recent input, and out[0] is the current output.

To model FIR (finite impulse response) filters, simply give an empty list for the a[_] feedback coefficients.

movingAverageSource
:: MonadIO m
=> IntNumber of samples to average over
-> Adaptor m
FIR: moving window average.
geometricAverage :: MonadIO m => Value -> Int -> Adaptor mSource
FIR: n-tap geometrically-decreasing weighted average, almost. Except that we ensure the coefficients sum up to unity.
exponentialAverage :: MonadIO m => Value -> Adaptor mSource
IIR: expotentially-decreasing weighted average.
Produced by Haddock version 2.3.0