[//000000001]: # (math::filters \- Tcl Math Library) [//000000002]: # (Generated from file 'filtergen\.man' by tcllib/doctools with format 'markdown') [//000000003]: # (Copyright © 2020 by Arjen Markus) [//000000004]: # (math::filters\(n\) 0\.1 tcllib "Tcl Math Library")
[ Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]
# NAME math::filters \- Digital filters # Table Of Contents - [Table Of Contents](#toc) - [Synopsis](#synopsis) - [Description](#section1) - [PROCEDURES](#section2) - [Keywords](#keywords) - [Category](#category) - [Copyright](#copyright) # SYNOPSIS package require Tcl 8\.6 package require TclOO package require math::filters ?0\.1? [__::math::filters::filterButterworth__ *lowpass* *order* *samplefreq* *cutofffreq*](#1) [__::math::filters::filter__ *coeffs* *data*](#2) [__::math::filters::filterObj__ new *coeffs* *yinit*](#3) [__$filterObj__ filter *x*](#4) [__$filterObj__ reset](#5) # 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\) # KEYWORDS [digital](\.\./\.\./\.\./\.\./index\.md\#digital), [filtering](\.\./\.\./\.\./\.\./index\.md\#filtering) # CATEGORY Mathematics # COPYRIGHT Copyright © 2020 by Arjen Markus