Spectrum analyzer using DISCO-F746NG. Spectrum is calculated by FFT or linear prediction. The vowel data is in "vowel_data.hpp"

Dependencies:   BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG UIT_FFT_Real mbed BUTTON_GROUP

Committer:
MikamiUitOpen
Date:
Tue Oct 09 10:34:47 2018 +0000
Revision:
6:f385940fbdb1
Parent:
0:c35b8a23a863
7

Who changed what in which revision?

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