Code Monkey home page Code Monkey logo

kalmanf's Introduction

KalmANF: A frequency tracker based on a Kalman filter update of a single parameter adaptive notch filter

A particular class of frequency trackers are based on updating a single parameter in a constrained biquad filter configured as a notch filter. Such an update can be done using a least mean square (LMS) algorithm, or a Kalman filter update, which turns out to be a regularized normalized least mean square algorithm with an optimal regularization parameter, the details of which are discussed in the following paper:

R. Ali, T. van Waterschoot, "A frequency tracker based on a Kalman filter update of a single parameter adaptive notch filter", accepted for Proceedings of the 26th International Conference on Digital Audio Effects (DAFx23), Copenhagen, Denmark, September 2023.

The scripts/directories in this repo. are as follows:

  1. adaptive_notch_filters. py | This script contains the functions of the ANFs: (i) An ANF updated with an LMS algorithm (LMS-ANF) and (ii) An ANF updated with a Kalman filter (KalMANF).

  2. kalmanf_main.py | The main analysis script. You can load any audio file and obeserve the results from the LMS-ANF and KalMAF. Currently audio files from the /data folder are used.

  3. /simulations | This directory contains the various scripts to regenerate the figures from the aforementioned paper. The results are generated in the /results folder.

  4. /jupyter-notebook | This directory contains an interactive jupyter notebook where sounds can be recorded from your machine and readily analyzed with both the LMS-ANF and KalmANF. This has been a great practical teaching aid when getting into topics of adaptive filters and Kalman filters in particular.

kalmanf's People

Contributors

randyaliased 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.