Realtime spectrogram for DISCO-F746NG. On-board MEMS microphone is used for input sound signal. リアルタイムスペクトログラム.入力:MEMSマイク

Dependencies:   F746_GUI F746_SAI_IO UIT_FFT_Real

Committer:
MikamiUitOpen
Date:
Sun May 22 06:28:40 2016 +0000
Revision:
0:9470a174c910
Child:
2:1f092ac020e1
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:9470a174c910 1 //-------------------------------------------------------
MikamiUitOpen 0:9470a174c910 2 // Base class for spectrum analysis
MikamiUitOpen 0:9470a174c910 3 //
MikamiUitOpen 0:9470a174c910 4 // 2016/05/14, Copyright (c) 2015 MIKAMI, Naoki
MikamiUitOpen 0:9470a174c910 5 //-------------------------------------------------------
MikamiUitOpen 0:9470a174c910 6
MikamiUitOpen 0:9470a174c910 7 #include "AnalysisBase.hpp"
MikamiUitOpen 0:9470a174c910 8
MikamiUitOpen 0:9470a174c910 9 namespace Mikami
MikamiUitOpen 0:9470a174c910 10 {
MikamiUitOpen 0:9470a174c910 11 AnalyzerBase::AnalyzerBase(int nData, int nFft, int nUse)
MikamiUitOpen 0:9470a174c910 12 : N_DATA_(nData), N_FFT_(nFft),
MikamiUitOpen 0:9470a174c910 13 fft_(nFft), wHm_(nData-1, nUse),
MikamiUitOpen 0:9470a174c910 14 xData_(new float[nUse]), wData_(new float[nUse]) {}
MikamiUitOpen 0:9470a174c910 15
MikamiUitOpen 0:9470a174c910 16 AnalyzerBase::~AnalyzerBase()
MikamiUitOpen 0:9470a174c910 17 {
MikamiUitOpen 0:9470a174c910 18 delete[] xData_;
MikamiUitOpen 0:9470a174c910 19 }
MikamiUitOpen 0:9470a174c910 20
MikamiUitOpen 0:9470a174c910 21 void AnalyzerBase::Execute(const float xn[], float db[])
MikamiUitOpen 0:9470a174c910 22 {
MikamiUitOpen 0:9470a174c910 23 // Differencing
MikamiUitOpen 0:9470a174c910 24 for (int n=0; n<N_DATA_-1; n++)
MikamiUitOpen 0:9470a174c910 25 xData_[n] = xn[n+1] - 0.8f*xn[n];
MikamiUitOpen 0:9470a174c910 26
MikamiUitOpen 0:9470a174c910 27 // Windowing (FFT, cepstrum: + zero-padding)
MikamiUitOpen 0:9470a174c910 28 wHm_.Execute(xData_, wData_);
MikamiUitOpen 0:9470a174c910 29
MikamiUitOpen 0:9470a174c910 30 // Pure virtual function for analyzing
MikamiUitOpen 0:9470a174c910 31 Analyze(wData_, db);
MikamiUitOpen 0:9470a174c910 32 }
MikamiUitOpen 0:9470a174c910 33 }
MikamiUitOpen 0:9470a174c910 34