rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
biquad.h
Go to the documentation of this file.
1/*
2 * @file biquad.h
3 *
4 * @date Sep 10, 2016
5 * @author Andrey Belomutskiy, (c) 2012-2020
6 */
7
8#pragma once
9
10class Biquad {
11public:
12 Biquad();
13
14 float filter(float input);
15 void reset();
16 void cookSteadyState(float steadyStateInput);
17
18 void configureBandpass(float samplingFrequency, float centerFrequency, float Q);
19
20 // Default Q = 0.54, which is the maximum quality factor without time domain overshoot
21 // note that it is less than the maximally flat (frequency domain) Q=0.707, which gives some overshoot
22 void configureLowpass(float samplingFrequency, float cutoffFrequency, float Q = 0.54f);
23 void configureHighpass(float samplingFrequency, float cutoffFrequency, float Q = 0.54f);
24
25private:
26 float a0, a1, a2, b1, b2;
27 float z1, z2;
28};
float filter(float input)
Definition biquad.cpp:74
float a0
Definition biquad.h:26
float b1
Definition biquad.h:26
float z1
Definition biquad.h:27
float z2
Definition biquad.h:27
void configureBandpass(float samplingFrequency, float centerFrequency, float Q)
Definition biquad.cpp:32
float b2
Definition biquad.h:26
Biquad()
Definition biquad.cpp:12
float a1
Definition biquad.h:26
void configureHighpass(float samplingFrequency, float cutoffFrequency, float Q=0.54f)
Definition biquad.cpp:61
void cookSteadyState(float steadyStateInput)
Definition biquad.cpp:84
void configureLowpass(float samplingFrequency, float cutoffFrequency, float Q=0.54f)
Definition biquad.cpp:48
void reset()
Definition biquad.cpp:20
float a2
Definition biquad.h:26