8000 GitHub - nlholdem/iir1: IIR realtime filter library written in C++
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

nlholdem/iir1

 
 

Repository files navigation

This is a powerful C++ filter library for Linux & Mac OSX
which implements all standard IIR filters such as
Bessel, Butterworth, Elliptic and Chebychev.
The data format is floating-point throughout.

There is no need to resort to MATLAB/OCTAVE/Python to calculate
the filter coefficients because the library does it
by itself. Just provide the sampling rate, cutoff
frequency, filter order and the filter is
ready to be used. For example for a lowpass:

Init:
       #define order 4
       Iir::Butterworth::LowPass<order> f;
       const float samplingrate = 1000; // Hz
       const float cutoff_frequency = 5; // Hz
       f.setup (order, samplingrate, cutoff_frequency);
       
Realtime filtering sample by sample:
       float y = f.filter(x);


The installation is done with the standard sequence:

./autogen.sh
CXXFLAGS="-O3 -march=native" ./configure
make
sudo make install
sudo ldconfig

If you have Ubuntu xenial, artful or lucid then you can
install it as a pre-compiled package:

sudo add-apt-repository ppa:berndporr/usbdux

Usage is very simple. A demo program is in the
"demo" directory which sets up a lowpass and a bandstop 
filter. A delta pulse is sent into the filters 
and saved as a gnuplot/octave file. 
For the documentation have a look at
Documentation.txt

This library has been adapted form Vinnie Falco's
original work which can be found here:
https://github.com/vinniefalco/DSPFilters

Enjoy!

Bernd Porr

About

IIR realtime filter library written in C++

Resources

License

Stars

Watchers

Forks

33FB

Packages

No packages published

Languages

  • C++ 96.6%
  • C 2.4%
  • Other 1.0%
0