math::filters - Digital filters
package require Tcl 8.6
package require TclOO
package require math::filters ?0.1?
::math::filters::filterButterworth lowpass
order samplefreq cutofffreq
::math::filters::filter coeffs data
::math::filters::filterObj new coeffs
yinit
$filterObj filter x
$filterObj reset
The math::filters package implements digital filters,
notably Butterworth low-pass and high-pass filters. The procedures allow to
filter an entire data series as well as filter data one by one.
The package defines the following public procedures:
- ::math::filters::filterButterworth lowpass order
samplefreq cutofffreq
- Determine the coefficients for a Butterworth filter of given order. The
coefficients are returned as a list of the x-coefficients, the
y-coefficients and the scale. The formula is (n is the filter order):
n n
scale * y_k = sum x_(k-i) + sum y_(k-i)
i=0 i=1
- ::math::filters::filter coeffs data
- Filter the entire data series based on the filter coefficients.
- list coeffs
- List of coefficients as generated by filterButterworth (or in fact
any similar list of coefficients)
- list data
- Data to be filtered
- ::math::filters::filterObj new coeffs yinit
- Create a filter object. The initial x data are taken as zero. The initial
y data can be prescribed. If they are not given, they are taken as zero as
well.
- list
coeffs
- List of coefficients as generated by filterButterworth (or in fact
any similar list of coefficients)
- list yinit
- (Optional) initial data for the filter result.
- $filterObj filter x
- Filter a single value and return the result.
- $filterObj reset
- Reset the filter object (start anew)
Copyright (c) 2020 by Arjen Markus