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
Diff: SpactrumAnalysisClasses/PeakHolder.hpp
- 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 +