ファンクション・ジェネレータ

Dependencies:   mbed SerialTxRxIntr MyTicker7 Array_Matrix

Revision:
0:17c762b41fc7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IIR_Cascade/IIR_Cascade.hpp	Sat Oct 17 10:05:58 2020 +0000
@@ -0,0 +1,42 @@
+//---------------------------------------------------
+//  縦続形 IIR フィルタ(ヘッダ)
+//
+// 2020/05/30, Copyright (c) 2020 MIKAMI, Naoki
+//---------------------------------------------------
+
+#ifndef IIR_CASCADE_HPP
+#define IIR_CASCADE_HPP
+
+#include "Biquad.hpp"
+#include "Array.hpp"    // Array クラスが定義されている
+
+namespace Mikami
+{
+    class IirCascade
+    {
+    public:
+        // コンストラクタ
+        IirCascade(int order = 0, const Biquad::Coefs ck[] = NULL,
+                   float g0 = 1);
+
+        // フィルタ処理を実行する
+        float Execute(float xn);
+
+        // 係数の設定
+        void SetCoefs(int order, const Biquad::Coefs ck[], float g0);
+
+        // 内部変数(遅延器)のクリア
+        void Clear()
+        {   for (int k=0; k<hOrder_; k++) bq_[k].Clear(); }
+
+    private:
+        int hOrder_;        // 次数/2
+        Array<Biquad> bq_;  // Biquad クラスのオブジェクトの配列
+        float g0_;          // 利得定数
+
+        // コピー・コンストラクタ,代入演算子禁止禁止のため
+        IirCascade(const IirCascade&);
+        IirCascade& operator=(const IirCascade&);
+    };
+}
+#endif  // IIR_CASCADE_HPP
\ No newline at end of file