Integrated program of 4 different kinds of application programs for processing sound signal. 4種類のサウンド信号処理を統合したプログラム.
Dependencies: F746_GUI F746_SAI_IO FrequencyResponseDrawer SD_PlayerSkeleton UIT_FFT_Real
Diff: MyAcousticEffector_MIC/IIR_Cascade.hpp
- Revision:
- 0:224dccbc4edd
- Child:
- 7:2735829e6657
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MyAcousticEffector_MIC/IIR_Cascade.hpp Mon Aug 15 07:18:07 2016 +0000 @@ -0,0 +1,49 @@ +//------------------------------------------------------------------------------ +// 縦続形 IIR フィルタのクラス +// +// 2016/04/12, Copyright (c) 2016 MIKAMI, Naoki +//------------------------------------------------------------------------------ + +#ifndef IIR_CASCADE_HPP +#define IIR_CASCADE_HPP + +#include "Biquad.hpp" + +namespace Mikami +{ + template<int order> class IIR_Cascade + { + public: + // コンストラクタ + IIR_Cascade(const Biquad::Coefs ck[], float g0) : g0_(g0) + { + for (int n=0; n<order/2; n++) hk_[n] = Biquad(ck[n]); + Clear(); + } + + // デストラクタ + ~IIR_Cascade() + { + for (int n=0; n<order/2; n++) delete hk_[n]; + } + + // 過去の計算結果を格納する配列のクリア + void Clear() + { + for (int k=0; k<order/2; k++) hk_[k].Clear(); + } + + // フィルタ処理の実行 + float Execute(float xn) + { + float yn = g0_*xn; + for (int k=0; k<order/2; k++) yn = hk_[k].Execute(yn); + return yn; + } + + private: + Biquad hk_[order/2]; // 2 次の IIR フィルタ + const float g0_; // 利得定数 + }; +} +#endif // IIR_CASCADE_HPP