Skip to content
Code to perform standard DSP functions, such as Biquads, FIRs, sample rate conversion
XC C Java Assembly Objective-C Shell
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app_example_asrc
app_example_biquad
app_example_dsd_conversion
app_example_fir
app_example_fir12
app_example_fir48
app_example_multicore_fir
app_example_multithreaded_fir
app_example_single_thread_fir
app_slicekit_fbnc_demo
build_biquad_coefficients
build_fir_coefficients
doc
module_asrc
module_cascading_biquad
module_dsd
module_fbnc/src
module_fir
.cproject
.gitignore
.project
LICENSE.txt
Makefile
README.rst

README.rst

DSP filters

Stable release:unreleased
Status: first version
Maintainer:https://github.com/henkmuller
Description:A collection of standard DSP building blocks

Key Features

  • Generic cascaded biquad filter
  • Generator for filter values
  • Generic FIR
  • Asynchronous Sample Rate converter

To Do

  • Optimised biquad
  • Optimised FIR
  • On-the-fly computation of coefficients
  • Optional dithering

Firmware Overview

This repo intends to store a set of algorithms to perform standard DSP functions, enabling people to implement, for example, graphic equalisers or sample rate converters. At present, only a cascaded biquad and a FIR filter are implemented, together with programs to compute coefficients and response curves. Coefficients and response curves for the biquad are computed based on algorithms by Robert Bristow-Johnson.

The current FIR code is written for readability - less readable (more efficient) versions to follow. The generic versions check on overflow and saturate (intermediate) results.

Known Issues

  • Makefile should invoke biquad generator properly - currently relies on java and javac, and currently recreates files unnecessarily.

Required Repositories

  • xcommon git@github.com:xcore/xcommon.git

Support

Issues may be submitted via the Issues tab in this github repo. Response to any issues submitted as at the discretion of the maintainer for this line.

Something went wrong with that request. Please try again.