Giter Club home page Giter Club logo

loccioni.aulos.dsp.filters's Introduction

Loccioni.Aulos.Dsp.Filters

It contains a set of utilities to implement some digital signal processing. This is a wrapper around Intel Performance Primitives.

A copy of IPP installer can be downloaded from loccioni ftp.

In order to make it works, please add path of Intel library to PATH Windows system variable. For instance an IPP version it's located in:

C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.5.281\windows\redist\intel64_win\ipp

ATTENTION!

  • It needs Intel processors. It's not tested for AMD.
  • IntelSWTools platform (x64/x86) must be aligned with your executable platform.

Low pass signal filtering

An example of the simplest usage:

Butterworth filter = new Butterworth(
    order: 8,                // 8th order it could be enough :-)
    samplingFrequency: 1000, //Hz 
    cutoff: 300);            //Hz

var filteredData = f.Filter(sourceData);

filter.Dispose();

In order to improve performance, you could create the filter one time and apply it at each new data arrival.

Butterworth filter = new Butterworth(
    order: 8,                // 8th order it could be enough :-)
    samplingFrequency: 1000, //Hz 
    cutoff: 300);            //Hz

// later on a data arrival event that could occurs more time...
var filteredData = f.Filter(sourceData);

// on client dispose
filter.Dispose();

If each new data array is not time connected, you should reset internal filter state by calling Reset() method before every Filter call.

Benchmark

It's a simple benchmark to verify performance compared with the (already used and payed :-)) NationalInstruments.Analysis.Enterprise library included in NI Measurement Studio.

Input signal: 20000 samples.

order: 8th, sampl. feq: 10KHz, cutoff 3KHz NI [ms] this [ms]
Filter creation 0.9 0.04
Filter creation and 100 time application 68.0 62.0

Boundary conditions:

  • BenchmarkDotNet=v0.11.5, OS=Windows 10.0.17763.805 (1809/October2018Update/Redstone5)
  • Intel Core i7-4770S CPU 3.10GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
    • [Host] : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3468.0 [AttachedDebugger]
    • DefaultJob : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3468.0

References

loccioni.aulos.dsp.filters's People

Contributors

fra-ros avatar

Stargazers

Matteo Calisti avatar

Watchers

James Cloos avatar Polzoni Gilberto avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.