CQエレクトロニクス・セミナ「実習・マイコンを動かしながら学ぶディジタル・フィルタ」で使うプログラム.1次IIRフィルタの係数をターミナルから変更できる. http://seminar.cqpub.co.jp/ccm/ES18-0020

Dependencies:   mbed Array_Matrix BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG

Revision:
0:47718d3154d9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Filter/IIR1_Variable.hpp	Mon Oct 09 02:36:11 2017 +0000
@@ -0,0 +1,37 @@
+//---------------------------------------------------
+//  一次の IIR フィルタ ― 係数可変
+//
+//  2017/09/24, Copyright (c) 2017 MIKAMI, Naoki
+//---------------------------------------------------
+
+#ifndef IIR_1ST_VARIABLE_HPP
+#define IIR_1ST_VARIABLE_HPP
+
+#include "mbed.h"
+
+class Iir1Variable
+{
+public:
+    Iir1Variable(float a1)
+        : a1_(a1), b0_(1.0f - a1), yn_(0) {}
+
+    // フィルタ処理を実行する
+    int16_t Execute(int16_t xn)
+    {
+        yn_ = a1_*yn_ + b0_*xn;
+
+        return (int16_t)yn_;
+    }
+    
+    void SetCoefs(float a1)
+    {
+        a1_ = a1;
+        b0_ = 1.0f - a1;
+    }
+
+private:
+    float a1_;  // 係数
+    float b0_;  // 係数
+    float yn_;
+};
+#endif  // IIR_1ST_VARIABLE_HPP
\ No newline at end of file