Function to design a 4th order BiQuad filter
Dependents: Project_EMGtosetpoint emg_calibration emg_calibration demo_with_emg ... more
BiQuad4.h
- Committer:
- Mirjam
- Date:
- 2018-10-22
- Revision:
- 0:caa20b96f300
File content as of revision 0:caa20b96f300:
#ifndef BIQUAD4_BIQUAD4_H #define BIQUAD4_BIQUAD4_H #include <vector> #include <complex> /** BiQuad class implements a single filter * * Filters that - in the z domain - are the ratio of two fourth order functions. The general form is: * * b0 + b1 z^-1 + b2 z^-2 + b3 z^-3 + b4 z^-4 * H(z) = ------------------------------------------ * a0 + a1 z^-1 + a2 z^-2 + a3 z^-3 + a4 z^-4 * Which is often normalized by dividing all coefficients by a0. */ class BiQuad4 { private: double B[5]; double A[4]; double wz[4]; bool resetStateOnGainChange; /** * Sets the gain parameters */ void set( double b0, double b1, double b2, double b3, double b4, double a1, double a2, double a3, double a4 ); public: /** * Initialize a unity TF biquad * @return BiQuad instance */ BiQuad4( ); // Initialize a normalized biquad filter BiQuad4( double b0, double b1, double b2, double b3, double b4, double a1, double a2, double a3, double a4 ); /** * Execute one digital timestep and return the result... * @param x input of the filer * @return output of the filter */ double step( double x ); void setResetStateOnGainChange( bool v ); }; #endif //BIQUAD_BIQUAD_H