Real-time spectrum analyzer for ST Nucleo F401RE using Seeed Studio 2.8'' TFT Touch Shield V2.0.
Dependencies: SeeedStudioTFTv2 UITDSP_ADDA UIT_FFT_Real mbed
Hamming.hpp
00001 //------------------------------------------------------------------- 00002 // Hamming windowing with zero-padding 00003 // Copyright (c) 2014 MIKAMI, Naoki, 2014/12/21 00004 //------------------------------------------------------------------- 00005 00006 #ifndef HAMMING_WINDOW_HPP 00007 #define HAMMING_WINDOW_HPP 00008 00009 #include "mbed.h" 00010 00011 namespace Mikami 00012 { 00013 class HammingWindow 00014 { 00015 private: 00016 const int N_; 00017 const int NFFT_; 00018 00019 float* w_; 00020 00021 public: 00022 // Constructor 00023 HammingWindow(uint16_t nData, uint16_t nFft) 00024 : N_(nData), NFFT_(nFft) 00025 { 00026 w_ = new float[nData]; 00027 float pi2L = 6.283185f/(float)nData; 00028 for (int k=0; k<nData; k++) 00029 w_[k] = 0.54f - 0.46f*cosf(k*pi2L); 00030 } 00031 00032 // Destructor 00033 ~HammingWindow() {delete[] w_;} 00034 00035 // Windowing 00036 void Execute(const float x[], float y[]) 00037 { 00038 for (int n=0; n<N_; n++) y[n] = x[n]*w_[n]; 00039 for (int n=N_; n<NFFT_; n++) y[n] = 0; 00040 } 00041 }; 00042 } 00043 #endif // HAMMING_WINDOW_HPP 00044
Generated on Wed Jul 13 2022 10:14:59 by 1.7.2