# filtergen - Man Page

Digital filters

## Synopsis

`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

## 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

- 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**resetReset the filter object (start anew)

## Keywords

digital, filtering

## Category

Mathematics

## Copyright

Copyright (c) 2020 by Arjen Markus