Version using MEMS microphone and CODEC for the program "F746_RealtimeSpectrumAnalyzer". "F746_RealtimeSpectrumAnalyzer" の入力を MEMS のマイクと CODEC に変更.このプログラムは Tomona Nanase さんが作成し DISCO-F746NG_Oscilloscope の名前で登録しているプログラムで, CODEC を使って入力する部分を参考にして作成.このプログラムの説明は,CQ出版社のインターフェース誌,2016年4月号に掲載.

Dependencies:   BSP_DISCO_F746NG BUTTON_GROUP LCD_DISCO_F746NG TS_DISCO_F746NG UIT_FFT_Real mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers AnalysisBase.cpp Source File

AnalysisBase.cpp

00001 //-------------------------------------------------------
00002 //  Base class for spectrum analysis
00003 //
00004 //  2015/12/15, Copyright (c) 2015 MIKAMI, Naoki
00005 //-------------------------------------------------------
00006 
00007 #include "AnalysisBase.hpp"
00008 
00009 namespace Mikami
00010 {
00011     AnalyzerBase::AnalyzerBase(int nData, int nFft, int nUse)
00012         : N_DATA_(nData), N_FFT_(nFft),
00013           fft_(nFft), wHm_(nData-1, nUse),
00014           xData_(new float[nUse]), wData_(new float[nUse]) {}
00015 
00016     AnalyzerBase::~AnalyzerBase()
00017     {
00018         delete[] xData_;
00019     }
00020 
00021     void AnalyzerBase::Execute(const float xn[], float db[])
00022     {
00023         // Differencing
00024         for (int n=0; n<N_DATA_-1; n++)
00025             xData_[n] = xn[n+1] - xn[n];
00026             
00027         // Windowing (FFT, cepstrum: + zero-padding)
00028         wHm_.Execute(xData_, wData_);
00029             
00030         // Pure virtual function for analyzing
00031         Analyze(wData_, db);
00032     }
00033 }
00034