HanningWindow, HammingWindow, BlackmanWindow の各クラス. このライブラリを登録した際のプログラム: Demo_Window
Dependents: TrG_FFT_Analyzer Demo_Window TrG_Spectrogram
Diff: Hamming.hpp
- Revision:
- 0:823e9a4ab223
- Child:
- 1:d8673bf6f89c
diff -r 000000000000 -r 823e9a4ab223 Hamming.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Hamming.hpp Sun May 23 06:25:26 2021 +0000 @@ -0,0 +1,38 @@ +//------------------------------------------------------------------- +// Hamming 窓による窓掛け +// ゼロ詰め(zero-padding)の機能を持つ +// +// 2021/05/22, Copyright (c) 2021 MIKAMI, Naoki +//------------------------------------------------------------------- + +#ifndef HAMMING_WINDOW_HPP +#define HAMMING_WINDOW_HPP + +#include "WindowBase.hpp" + +namespace Mikami +{ + class HammingWindow : public WindowBase + { + public: + // コンストラクタ + HammingWindow(uint16_t nFft, uint16_t nData) + : WindowBase(nFft, nData) { Generate(nData); } + HammingWindow(uint16_t nFft) + : WindowBase(nFft, nFft) { Generate(nFft); } + + private: + // 窓関数を生成 + virtual void Generate(uint16_t nData) + { + const float PI2L = 6.283185f/(float)nData; + for (int k=0; k<nData; k++) + Set(k, 0.54f - 0.46f*cosf(k*PI2L)); + } + + // コピー・コンストラクタおよび代入演算子の禁止のため + HammingWindow(const HammingWindow& ); + HammingWindow& operator=(const HammingWindow& ); + }; +} +#endif // HAMMING_WINDOW_HPP \ No newline at end of file