Real-time spectrum analyzer for ST Nucleo F401RE using Seeed Studio 2.8'' TFT Touch Shield V2.0.

Dependencies:   SeeedStudioTFTv2 UITDSP_ADDA UIT_FFT_Real mbed

Revision:
0:c5b026c2d07e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SpactrumAnalysisClasses/PeakHolder.hpp	Sun Jul 26 02:48:23 2015 +0000
@@ -0,0 +1,45 @@
+//-------------------------------------------------------------------
+// Peak holder
+// Copyright (c) 2014 MIKAMI, Naoki,  2014/12/20
+//-------------------------------------------------------------------
+
+#ifndef PEAK_HOLDER_HPP
+#define PEAK_HOLDER_HPP
+
+#include "mbed.h"
+
+namespace Mikami
+{
+    class PeakHolder
+    {
+    private:
+        float a1_, b0_;
+        float ynM1_;
+
+    public:
+        // Constructor
+        explicit PeakHolder(float a1 = 0)
+        {
+            SetCoefs(a1);
+            ynM1_ = 0;
+        }
+        
+        // Argument a1 must be as follows: 0 < a1 < 1
+        void SetCoefs(float a1)
+        {
+            a1_ = a1;
+            b0_ =1.0f - a1;
+        }
+        
+        float Execute(float xn)
+        {
+            float yn = xn;
+            if (xn < ynM1_) yn = a1_*ynM1_ + b0_*xn;
+            ynM1_ = yn;
+
+            return yn;
+        }
+    };
+}
+#endif  // PEAK_HOLDER_HPP
+