Realtime sound spectrogram using FFT or linear prediction. Spectrogram is displayed on the display of PC. リアルタイム・スペクトログラム.解析の手法:FFT,線形予測法.スペクトログラムは PC のディスプレー装置に表示される.PC 側のプログラム:F446_Spectrogram.
Dependencies: Array_Matrix mbed SerialTxRxIntr F446_AD_DA UIT_FFT_Real
Hamming.hpp
00001 //------------------------------------------------------------------- 00002 // Hamming windowing with zero-padding 00003 // 00004 // 2016/07/23, Copyright (c) 2016 MIKAMI, Naoki 00005 //------------------------------------------------------------------- 00006 00007 #ifndef HAMMING_WINDOW_HPP 00008 #define HAMMING_WINDOW_HPP 00009 00010 #include "mbed.h" 00011 #include "Array.hpp" 00012 00013 namespace Mikami 00014 { 00015 class HammingWindow 00016 { 00017 public: 00018 // Constructor 00019 HammingWindow(uint16_t nData, uint16_t nFft) 00020 : N_(nData), NFFT_(nFft), w_(nData) 00021 { 00022 float pi2L = 6.283185f/(float)nData; 00023 for (int k=0; k<nData; k++) 00024 w_[k] = 0.54f - 0.46f*cosf(k*pi2L); 00025 } 00026 00027 // Destructor 00028 virtual ~HammingWindow() {} 00029 00030 // Windowing 00031 void Execute(const float x[], float y[]) 00032 { 00033 for (int n=0; n<N_; n++) y[n] = x[n]*w_[n]; 00034 for (int n=N_; n<NFFT_; n++) y[n] = 0; 00035 } 00036 00037 private: 00038 const int N_; 00039 const int NFFT_; 00040 00041 Array<float> w_; 00042 00043 // disallow copy constructor and assignment operator 00044 HammingWindow(const HammingWindow& ); 00045 HammingWindow& operator=(const HammingWindow& ); 00046 }; 00047 } 00048 #endif // HAMMING_WINDOW_HPP
Generated on Mon Jul 25 2022 07:38:49 by 1.7.2