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
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
Generated on Sun Jul 17 2022 12:37:24 by 1.7.2