0
I Use This!
Activity Not Available

Project Summary

A framework of classes is provided for designing and realizing Infinite Impulse Response (IIR) digital filters of arbitrary order. A representation of filters as a cascade of second order sections, allows processing of arbitrary number of channels of sample data of any underlying floating point type.

Through the use of templates and a functional programming style, building blocks are assembled from a set of classes that map neatly and directly to signal processing concepts.

Filters are modeled as analog prototypes each in their own class, with a calculation of the s-plane poles and zeroes, for arbitrary order with prescribed specifications. The filter is transformed into the digital domain poles and zeroes using a set of generalized classes.

Analog prototype filters are provided for Butterworth, Chebyshev, Inverse Chebyshev, Elliptic, and Bessel low pass and shelving filters, which combined with the appropriate provided transformations allows the formation of Low Pass, High Pass, Band Pass, Band Stop, Low Shelf, High Shelf, and Peaking/Notch Equalizer filters of arbitrary order with the given response characteristic capable of operating on an arbitrary number of channels in any desired floating point type. As a bonus, highly optimized forms of the RBJ Audio Cookbook biquads are included. SSE3-optimized version of the cascade processing function is provided for Visual Studio 2008 environments.

A collection of flat functions are also provided to simplify tasks common to the handling of audio data. For example, copying interleaved channel buffers, mixing them, or de-interleaving the data.

The library allocates no memory and depends on nothing externally (except for the standard library).

Source for a small cross platform graphical test application is provided to demonstrate the features, usage, and response characteristics of each filter. The program requires the JUCE framework to build (available separately).

The following filters are defined:

BiquadLowPass, BiquadHighPass, BiquadBandPass1, BiquadBandPass2, BiquadBandStop BiquadAllPass, BiquadLowShelf, BiquadHighShelf, BiquadPeak

ButterLowPass, ButterHighPass, ButterBandPass, ButterBandStop ButterLowShelf, ButterHighShelf, ButterPeak

ChebyILowPass, ChebyIHighPass, ChebyIBandPass, ChebyIBandStop ChebyILowShelf, ChebyIHighShelf, ChebyIPeak

ChebyIILowPass, ChebyIIHighPass, ChebyIIBandPass, ChebyIIBandStop ChebyIILowShelf, ChebyIIHighShelf, ChebyIIPeak

EllipticLowPass, EllipticHighPass, EllipticBandPass, EllipticBandStop

BesselLowPass, BesselHighPass, BesselBandPass, BesselBandStop

Tags

c dsp filters

In a Nutshell, dspfilterscpp...

 No code available to analyze

Open Hub computes statistics on FOSS projects by examining source code and commit history in source code management systems. This project has no code locations, and so Open Hub cannot perform this analysis

Is this project's source code hosted in a publicly available repository? Do you know the URL? If you do, click the button below and tell us so that Open Hub can generate statistics! It's fast and easy - try it and see!

Add a code location

MIT License
Permitted

Commercial Use

Modify

Distribute

Sub-License

Private Use

Forbidden

Hold Liable

Required

Include Copyright

Include License

These details are provided for information only. No information here is legal advice and should not be used as such.

All Licenses

This Project has No vulnerabilities Reported Against it

Did You Know...

  • ...
    Black Duck offers a free trial so you can discover if there are open source vulnerabilities in your code
  • ...
    you can embed statistics from Open Hub on your site
  • ...
    55% of companies leverage OSS for production infrastructure
  • ...
    by exploring contributors within projects, you can view details on every commit they have made to that project

 No code available to analyze

Open Hub computes statistics on FOSS projects by examining source code and commit history in source code management systems. This project has no code locations, and so Open Hub cannot perform this analysis

Is this project's source code hosted in a publicly available repository? Do you know the URL? If you do, click the button below and tell us so that Open Hub can generate statistics! It's fast and easy - try it and see!

Add a code location

Community Rating

Be the first to rate this project
Click to add your rating
   Spinner
Review this Project!
Sample ohloh analysis