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

Committer:
MikamiUitOpen
Date:
Sun Jul 26 02:48:23 2015 +0000
Revision:
0:c5b026c2d07e
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:c5b026c2d07e 1 //-------------------------------------------------------------------
MikamiUitOpen 0:c5b026c2d07e 2 // Peak holder
MikamiUitOpen 0:c5b026c2d07e 3 // Copyright (c) 2014 MIKAMI, Naoki, 2014/12/20
MikamiUitOpen 0:c5b026c2d07e 4 //-------------------------------------------------------------------
MikamiUitOpen 0:c5b026c2d07e 5
MikamiUitOpen 0:c5b026c2d07e 6 #ifndef PEAK_HOLDER_HPP
MikamiUitOpen 0:c5b026c2d07e 7 #define PEAK_HOLDER_HPP
MikamiUitOpen 0:c5b026c2d07e 8
MikamiUitOpen 0:c5b026c2d07e 9 #include "mbed.h"
MikamiUitOpen 0:c5b026c2d07e 10
MikamiUitOpen 0:c5b026c2d07e 11 namespace Mikami
MikamiUitOpen 0:c5b026c2d07e 12 {
MikamiUitOpen 0:c5b026c2d07e 13 class PeakHolder
MikamiUitOpen 0:c5b026c2d07e 14 {
MikamiUitOpen 0:c5b026c2d07e 15 private:
MikamiUitOpen 0:c5b026c2d07e 16 float a1_, b0_;
MikamiUitOpen 0:c5b026c2d07e 17 float ynM1_;
MikamiUitOpen 0:c5b026c2d07e 18
MikamiUitOpen 0:c5b026c2d07e 19 public:
MikamiUitOpen 0:c5b026c2d07e 20 // Constructor
MikamiUitOpen 0:c5b026c2d07e 21 explicit PeakHolder(float a1 = 0)
MikamiUitOpen 0:c5b026c2d07e 22 {
MikamiUitOpen 0:c5b026c2d07e 23 SetCoefs(a1);
MikamiUitOpen 0:c5b026c2d07e 24 ynM1_ = 0;
MikamiUitOpen 0:c5b026c2d07e 25 }
MikamiUitOpen 0:c5b026c2d07e 26
MikamiUitOpen 0:c5b026c2d07e 27 // Argument a1 must be as follows: 0 < a1 < 1
MikamiUitOpen 0:c5b026c2d07e 28 void SetCoefs(float a1)
MikamiUitOpen 0:c5b026c2d07e 29 {
MikamiUitOpen 0:c5b026c2d07e 30 a1_ = a1;
MikamiUitOpen 0:c5b026c2d07e 31 b0_ =1.0f - a1;
MikamiUitOpen 0:c5b026c2d07e 32 }
MikamiUitOpen 0:c5b026c2d07e 33
MikamiUitOpen 0:c5b026c2d07e 34 float Execute(float xn)
MikamiUitOpen 0:c5b026c2d07e 35 {
MikamiUitOpen 0:c5b026c2d07e 36 float yn = xn;
MikamiUitOpen 0:c5b026c2d07e 37 if (xn < ynM1_) yn = a1_*ynM1_ + b0_*xn;
MikamiUitOpen 0:c5b026c2d07e 38 ynM1_ = yn;
MikamiUitOpen 0:c5b026c2d07e 39
MikamiUitOpen 0:c5b026c2d07e 40 return yn;
MikamiUitOpen 0:c5b026c2d07e 41 }
MikamiUitOpen 0:c5b026c2d07e 42 };
MikamiUitOpen 0:c5b026c2d07e 43 }
MikamiUitOpen 0:c5b026c2d07e 44 #endif // PEAK_HOLDER_HPP
MikamiUitOpen 0:c5b026c2d07e 45