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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Hamming.hpp Source File

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