diff options
Diffstat (limited to '3rdparty/portaudio/qa/loopback/src/biquad_filter.h')
-rwxr-xr-x | 3rdparty/portaudio/qa/loopback/src/biquad_filter.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/3rdparty/portaudio/qa/loopback/src/biquad_filter.h b/3rdparty/portaudio/qa/loopback/src/biquad_filter.h new file mode 100755 index 0000000..0895aba --- /dev/null +++ b/3rdparty/portaudio/qa/loopback/src/biquad_filter.h @@ -0,0 +1,38 @@ +#ifndef _BIQUADFILTER_H +#define _BIQUADFILTER_H + + +/** + * Unit_BiquadFilter implements a second order IIR filter. + * + * @author (C) 2002 Phil Burk, SoftSynth.com, All Rights Reserved + */ + +#define BIQUAD_MIN_RATIO (0.000001) +#define BIQUAD_MIN_Q (0.00001) + +typedef struct BiquadFilter_s +{ + double xn1; // storage for delayed signals + double xn2; + double yn1; + double yn2; + + double a0; // coefficients + double a1; + double a2; + + double b1; + double b2; + + double cos_omega; + double sin_omega; + double alpha; +} BiquadFilter; + +void BiquadFilter_SetupHighPass( BiquadFilter *filter, double ratio, double Q ); +void BiquadFilter_SetupNotch( BiquadFilter *filter, double ratio, double Q ); + +void BiquadFilter_Filter( BiquadFilter *filter, float *inputs, float *outputs, int numSamples ); + +#endif |