https://github.com/kleydon/fir-filter-demo-cpp
User friendly DSP high/low/band-pass windowed sync filter, implemented in C++.
https://github.com/kleydon/fir-filter-demo-cpp
band-pass band-pass-filter cplusplus cplusplus-11 cplusplus-basic cpp dsp fast filter fir fir-filter high-pass high-pass-filter high-performance low-pass low-pass-filter sync user-friendly window
Last synced: about 1 month ago
JSON representation
User friendly DSP high/low/band-pass windowed sync filter, implemented in C++.
- Host: GitHub
- URL: https://github.com/kleydon/fir-filter-demo-cpp
- Owner: kleydon
- License: mit
- Created: 2019-05-09T00:34:50.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-05-10T00:20:09.000Z (about 6 years ago)
- Last Synced: 2025-04-10T01:08:07.408Z (about 1 month ago)
- Topics: band-pass, band-pass-filter, cplusplus, cplusplus-11, cplusplus-basic, cpp, dsp, fast, filter, fir, fir-filter, high-pass, high-pass-filter, high-performance, low-pass, low-pass-filter, sync, user-friendly, window
- Language: C++
- Homepage:
- Size: 229 KB
- Stars: 27
- Watchers: 1
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FIR-Filter, C++
Easy-to-use DSP filter code, written in C++, with low, high, and band-pass variants.
Implements a windowed sync FIR using the overlap-and-add method.## Usage:
```
FIRFilter* filter = &FIRFilter::getSingleton();
//Low Pass:
filter->initializeAsLowPass(44100.0f, //sample rate
256, //frame length
4000.0f, //cutoff frequency
1000.0f); //transition bandwidth
//High Pass:
filter->initializeAsHighPass(44100.0, //sample rate
256, //frame length
1000.0f, //cutoff frequency
1000.0f); //transition bandwidth
//Band Pass:
filter->initializeAsBandPass(44100.0, //sample rate
256, //frame length
500.0f, //low cutoff frequency
200.0f, //low transition bandwidth
4000.0f, //high cutoff frequency
200.0f); //high transition bandwidth//Demo/Test:
float frequency = 4500.0f;
float duration = 0.010f;
filter->test(frequency, duration);//filter->test() calls:
applyFilter(const float inputFrameSamples[],
float outputFrameSamples[])
//...which can be in-place w.r.t. input and output.
```