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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PeakHolder.hpp Source File

PeakHolder.hpp

00001 //-------------------------------------------------------------------
00002 // Peak holder
00003 // Copyright (c) 2014 MIKAMI, Naoki,  2014/12/20
00004 //-------------------------------------------------------------------
00005 
00006 #ifndef PEAK_HOLDER_HPP
00007 #define PEAK_HOLDER_HPP
00008 
00009 #include "mbed.h"
00010 
00011 namespace Mikami
00012 {
00013     class PeakHolder
00014     {
00015     private:
00016         float a1_, b0_;
00017         float ynM1_;
00018 
00019     public:
00020         // Constructor
00021         explicit PeakHolder(float a1 = 0)
00022         {
00023             SetCoefs(a1);
00024             ynM1_ = 0;
00025         }
00026         
00027         // Argument a1 must be as follows: 0 < a1 < 1
00028         void SetCoefs(float a1)
00029         {
00030             a1_ = a1;
00031             b0_ =1.0f - a1;
00032         }
00033         
00034         float Execute(float xn)
00035         {
00036             float yn = xn;
00037             if (xn < ynM1_) yn = a1_*ynM1_ + b0_*xn;
00038             ynM1_ = yn;
00039 
00040             return yn;
00041         }
00042     };
00043 }
00044 #endif  // PEAK_HOLDER_HPP
00045