rtfilter provides a library written in C implementing realtime digital filtering functions for multichannel signals (i.e. filtering multiple signals with the same filter). It implements FIR, IIR filters and downsampler for float and double data type (both for real and complex valued signal). Additional functions are also provided to design few usual filters: Butterworth, Chebyshev, windowed sinc, analytical filter…
One of the main differences from other libraries providing digital signal processing is that the filter functions have been specifically designed and optimized for multichannel signals (from few channels to several hundred). If data allows it, the library automatically switch to optimized SIMD (Single Instruction Multiple Data) code, allowing to reduce by 3~4 the time spent in processing the data.
rtfilter should compile and run on any POSIX platform (GNU/Linux, MacOSX, BSD…) and Windows platforms. The SIMD code operating on real data is possible if the host CPU supports SSE2 instruction sets (Intel pentium4, AMD k8 or later processors support SSE2), and SIMD code operating on complex data is possible if host CPU supports SSE3.
The library is available as an official package in Debian (starting from Wheezy) and in universe repository of Ubuntu (starting from Ubuntu 12.04 – Precise Pangolin). Backports for earlier version of Debian and Ubuntu are available in Neurodebian.
The library is shipped with manpages and example codes
The library does not depend on any but standard library.