[ Main Table Of Contents  Table Of Contents  Keyword Index  Categories  Modules  Applications ]
NAME
math::filters  Digital filters
Table Of Contents
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 lowpass and highpass 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 xcoefficients, the ycoefficients and the scale. The formula is (n is the filter order):
n n scale * y_k = sum x_(ki) + sum y_(ki) i=0 i=1
bool lowpass
Generate a lowpass filter (1) or a highpass filter (0)
integer lowpass
The order of the filter to be generated
double samplefreq
Sampling frequency of the data series
double cutofffreq
Cutoff 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.

Filter a single value and return the result.
double x
The value to be filtered

Reset the filter object (start anew)
KEYWORDS
CATEGORY
Mathematics
COPYRIGHT
Copyright © 2020 by Arjen Markus