[ Tcllib Home | Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]

math::filters - Digital filters

- package require
**Tcl 8.6** - package require
**TclOO** - package require
**math::filters ?0.1?**

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

- bool
*lowpass* -
Generate a low-pass filter (1) or a high-pass filter (0)

- integer
*lowpass* -
The order of the filter to be generated

- double
*samplefreq* -
Sampling frequency of the data series

- double
*cutofffreq* -
Cut-off frequency for the filter

- bool
**::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

- list
**::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.

- list
**$filterObj**filter*x*-
Filter a single value and return the result.

- double
*x* -
The value to be filtered

- double
**$filterObj**reset-
Reset the filter object (start anew)

Mathematics

Copyright © 2020 by Arjen Markus