![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Cutoff frequency variable LPF by IIR 6th-order Butterworth filter for ST Nucleo F401RE.
Dependencies: UIT_IIR_Filter UIT_ACM1602NI UITDSP_ADDA mbed UIT_AQM1602
Diff: IIR_Cascade.hpp
- Revision:
- 7:34eced3597bb
- Parent:
- 6:116f72cda0f4
--- a/IIR_Cascade.hpp Sat Jul 25 06:41:36 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -//-------------------------------------------------------------- -// IIR filter ---- Cascade structure -// 2014/10/23, Copyright (c) 2014 MIKAMI, Naoki -//-------------------------------------------------------------- - -#ifndef IIR_CASCADE_HPP -#define IIR_CASCADE_HPP - -#include "mbed.h" -#include "Biquad.hpp" - -namespace Mikami -{ - // IIR filter -- Cascade structure - template<int order> class IirCascade - { - private: - Biquad hk_[order]; // Elements of cascade structure - float g0_; // gain factor - - IirCascade(const IirCascade&); - IirCascade& operator=(const IirCascade&); - - public: - IirCascade() {} - IirCascade(float g0, const Biquad::Coefs ck[]) - { SetCoefs(g0, ck); } - - void SetCoefs(float g0, const Biquad::Coefs ck[]) - { - g0_ = g0; - for (int k=0; k<order; k++) - hk_[k] = Biquad(ck[k]); - } - - float Execute(float xn) - { - float yn = g0_*xn; - for (int k=0; k<order; k++) - yn = hk_[k].Execute(yn); - - return yn; - } - - void Clear() - { - for (int k=0; k<order; k++) - hk_[k].Clear(); - } - }; -} -#endif // IIR_CASCADE_HPP - - -