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 // Class for spectrum analysis using FFT (Header)
MikamiUitOpen 0:c5b026c2d07e 3 // Copyright (c) 2014 MIKAMI, Naoki, 2014/12/30
MikamiUitOpen 0:c5b026c2d07e 4 //-------------------------------------------------------
MikamiUitOpen 0:c5b026c2d07e 5
MikamiUitOpen 0:c5b026c2d07e 6 #ifndef FFT_ANALYZER_HPP
MikamiUitOpen 0:c5b026c2d07e 7 #define FFT_ANALYZER_HPP
MikamiUitOpen 0:c5b026c2d07e 8
MikamiUitOpen 0:c5b026c2d07e 9 #include "fftReal.hpp"
MikamiUitOpen 0:c5b026c2d07e 10 #include "Hamming.hpp"
MikamiUitOpen 0:c5b026c2d07e 11 #include "PeakHolder.hpp"
MikamiUitOpen 0:c5b026c2d07e 12
MikamiUitOpen 0:c5b026c2d07e 13 namespace Mikami
MikamiUitOpen 0:c5b026c2d07e 14 {
MikamiUitOpen 0:c5b026c2d07e 15 class FftAnalyzer
MikamiUitOpen 0:c5b026c2d07e 16 {
MikamiUitOpen 0:c5b026c2d07e 17 public:
MikamiUitOpen 0:c5b026c2d07e 18 FftAnalyzer(int nData, int nFft);
MikamiUitOpen 0:c5b026c2d07e 19 ~FftAnalyzer();
MikamiUitOpen 0:c5b026c2d07e 20 void Execute(float xn[], float db[]);
MikamiUitOpen 0:c5b026c2d07e 21
MikamiUitOpen 0:c5b026c2d07e 22 private:
MikamiUitOpen 0:c5b026c2d07e 23 const int N_DATA_;
MikamiUitOpen 0:c5b026c2d07e 24 const int N_FFT_;
MikamiUitOpen 0:c5b026c2d07e 25
MikamiUitOpen 0:c5b026c2d07e 26 HammingWindow hm_;
MikamiUitOpen 0:c5b026c2d07e 27 FftReal fft_;
MikamiUitOpen 0:c5b026c2d07e 28 PeakHolder* pkHolder_;
MikamiUitOpen 0:c5b026c2d07e 29
MikamiUitOpen 0:c5b026c2d07e 30 float* xData; // Data to be analyzed
MikamiUitOpen 0:c5b026c2d07e 31 float* xFft; // Input for FFT
MikamiUitOpen 0:c5b026c2d07e 32 Complex* yFft; // Output of FFT
MikamiUitOpen 0:c5b026c2d07e 33 float* normY; // Powerspectrum
MikamiUitOpen 0:c5b026c2d07e 34
MikamiUitOpen 0:c5b026c2d07e 35 float Sqr(float x) { return x*x; }
MikamiUitOpen 0:c5b026c2d07e 36 };
MikamiUitOpen 0:c5b026c2d07e 37 }
MikamiUitOpen 0:c5b026c2d07e 38
MikamiUitOpen 0:c5b026c2d07e 39 #endif // FFT_ANALYZER_HPP