Documentation

# NAME

math::filters - Digital filters

# SYNOPSIS

package require Tcl 8.6 9
package require TclOO
package require math::filters ?0.1?

# DESCRIPTION

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.

# PROCEDURES

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

• ::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.

• double x

The value to be filtered

• \$filterObj reset

Reset the filter object (start anew)

Mathematics