Provided by: tcllib_1.21+dfsg-1_all bug

NAME

       math::filters - 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

       ::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, filtering

CATEGORY

       Mathematics

COPYRIGHT

       Copyright (c) 2020 by Arjen Markus