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.hpp Source File

AnalysisBase.hpp

00001 //-------------------------------------------------------
00002 //  Base class for spectrum analysis (Header)
00003 //
00004 //  2015/12/15, Copyright (c) 2015 MIKAMI, Naoki
00005 //-------------------------------------------------------
00006 
00007 #ifndef BASE_ANALYZER_HPP
00008 #define BASE_ANALYZER_HPP
00009 
00010 #include "fftReal.hpp"
00011 #include "Hamming.hpp"
00012 
00013 namespace Mikami
00014 {
00015     class AnalyzerBase
00016     {
00017     public:
00018         // nData: Number of data to be analyzed
00019         // nFft:  Number of FFT points
00020         // nUse:  FFT, cepstrum: window width + zero padding
00021         //        Linear prediction: window width
00022         AnalyzerBase(int nData, int nFft, int nUse);
00023         virtual ~AnalyzerBase();
00024         void Execute(const float xn[], float db[]);
00025 
00026     protected:
00027         const int N_DATA_;
00028         const int N_FFT_;
00029 
00030         FftReal fft_;
00031                 
00032         float Norm(Complex x)
00033         { return x.real()*x.real() + x.imag()*x.imag(); }
00034 
00035     private:
00036         HammingWindow wHm_;
00037 
00038         float* xData_;  // data to be analyzed
00039         float* wData_;  // windowd data
00040 
00041         virtual void Analyze(const float wData[], float db[]) = 0;
00042 
00043         // disallow copy constructor and assignment operator
00044         AnalyzerBase(const AnalyzerBase& );
00045         AnalyzerBase& operator=(const AnalyzerBase& );
00046     };
00047 }
00048 #endif  // BASE_ANALYZER_HPP
00049