Giter Club home page Giter Club logo

dfa's Introduction

DFA - Direct Filtering Approach

Design customized FIR (finite impulse response) high, low and band pass filters that fit your use-case and data. In (real-time) signal extraction there is an unavoidable trilemma between accurateness, timeliness and smootheness of a filter's response. The direct filtering approach (DFA) by Marc Wildi allows to control the mutual interaction of those three criterions using two weighting parameters. This is an efficient C++ implementation of the original R code of DFA provided by Marc Wildi; see also: https://www.researchgate.net/publication/319521573_Direct_Filter_Approach_DFA

Usage

  // low-pass filter design
  const unsigned int len = 20; // number of filter coeffs/tabs
  const ScalarType cutoff = 0.1; // normalized cutoff frequency
  const ScalarType lag = 0; // filter lag 0 implies "zero" lag, i.e. real time filtering
  const ScalarType lambda = 0; // lambda emphasizes timeliness vs. accurateness, 0 implies a the MSE solution, try to increase it!
  const ScalarType eta = 0; // eta emphasizes smoothing vs. accurateness, 0 implies a the MSE solution try to increase it!
  const Vector per = DFA::periodogram(data); // compute the periodogram, i.e. an estimate of the signal's power spectry density
  const DFA::FIR fir = DFA::designLP(per, len, cutoff, lag, lambda, eta); // design the low-pass filter

  // offline filtering
  const Vector offlineSignal = DFA::apply(data, fir.coefficients);

  // online filtering
  Vector onlineSignal = Vector::Zero(data.size());
  DFA::OnlineFIR filt = DFA::OnlineFIR(fir.coefficients);
  for (unsigned int i = 0; i < data.size(); ++i)
    onlineSignal[i] = filt.process(data[i]);

Requires

  • Eigen3

dfa's People

Contributors

felixlaufer avatar

Watchers

 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.