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
Hamming.hpp
00001 //------------------------------------------------------------------- 00002 // Hamming windowing with zero-padding 00003 // 00004 // 2015/12/17, Copyright (c) 2015 MIKAMI, Naoki 00005 //------------------------------------------------------------------- 00006 00007 #ifndef HAMMING_WINDOW_HPP 00008 #define HAMMING_WINDOW_HPP 00009 00010 #include "mbed.h" 00011 00012 namespace Mikami 00013 { 00014 class HammingWindow 00015 { 00016 public: 00017 // Constructor 00018 HammingWindow(uint16_t nData, uint16_t nFft) 00019 : N_(nData), NFFT_(nFft), w_(new float[nData]) 00020 { 00021 float pi2L = 6.283185f/(float)nData; 00022 for (int k=0; k<nData; k++) 00023 w_[k] = 0.54f - 0.46f*cosf(k*pi2L); 00024 } 00025 00026 // Destructor 00027 ~HammingWindow() {delete[] w_;} 00028 00029 // Windowing 00030 void Execute(const float x[], float y[]) 00031 { 00032 for (int n=0; n<N_; n++) y[n] = x[n]*w_[n]; 00033 for (int n=N_; n<NFFT_; n++) y[n] = 0; 00034 } 00035 00036 private: 00037 const int N_; 00038 const int NFFT_; 00039 00040 float* w_; 00041 00042 // disallow copy constructor and assignment operator 00043 HammingWindow(const HammingWindow& ); 00044 HammingWindow& operator=(const HammingWindow& ); 00045 }; 00046 } 00047 #endif // HAMMING_WINDOW_HPP
Generated on Sun Jul 17 2022 12:37:24 by 1.7.2