AM中波放送用SDR.CICフィルタのみを使用.CQ出版社「トランジスタ技術」誌,2021年4月号に掲載

Dependencies:   mbed

Revision:
1:30d9fb51dec1
Child:
2:4bec6b2be809
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDR_Library/IirDcCut.hpp	Mon Sep 23 07:32:10 2019 +0000
@@ -0,0 +1,44 @@
+//-----------------------------------------------------------------
+// 直流分除去用 IIR フィルタ
+//      u[n] = a1*u[n-1] + x[n]
+//      y[n] = g0*(u[n] - u[n-1])
+//
+// 2019/09/21, Copyright (c) 2019 MIKAMI, Naoki
+//-----------------------------------------------------------------
+
+#include "mbed.h"
+
+#ifndef IIR_DC_CUT_HPP
+#define IIR_DC_CUT_HPP
+namespace Mikami
+{
+    class IirDcCut
+    {
+    public:
+        // コンストラクタ
+        //      a1  フィルタの係数
+        //      g0  利得定数
+        IirDcCut(float a1, float g0)
+            : A1_(a1), G0_(g0) { un1_ = 0; }
+
+        // フィルタの実行
+        float Execute(float xn)
+        {
+            float un = A1_*un1_ + xn;
+            float yn = (un - un1_)*G0_;
+            un1_ = un;
+            return yn;
+        }
+
+    private:
+        const float A1_;        // フィルタ係数
+        const float G0_;        // 利得定数
+        float un1_;             // 中間の値
+
+        // コピー・コンストラクタ禁止のため
+        IirDcCut(const IirDcCut&);
+        // 代入演算子禁止のため
+        IirDcCut& operator=(const IirDcCut&);
+    };
+}
+#endif  // IIR_DC_CUT_HPP