HanningWindow, HammingWindow, BlackmanWindow の各クラス. このライブラリを登録した際のプログラム: Demo_Window
Dependents: TrG_FFT_Analyzer Demo_Window TrG_Spectrogram
Blackman.hpp@0:823e9a4ab223, 2021-05-23 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Sun May 23 06:25:26 2021 +0000
- Revision:
- 0:823e9a4ab223
- Child:
- 1:d8673bf6f89c
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:823e9a4ab223 | 1 | //------------------------------------------------------------------- |
MikamiUitOpen | 0:823e9a4ab223 | 2 | // Blackman 窓による窓掛け |
MikamiUitOpen | 0:823e9a4ab223 | 3 | // ゼロ詰め(zero-padding)の機能を持つ |
MikamiUitOpen | 0:823e9a4ab223 | 4 | // |
MikamiUitOpen | 0:823e9a4ab223 | 5 | // 2021/05/22, Copyright (c) 2021 MIKAMI, Naoki |
MikamiUitOpen | 0:823e9a4ab223 | 6 | //------------------------------------------------------------------- |
MikamiUitOpen | 0:823e9a4ab223 | 7 | |
MikamiUitOpen | 0:823e9a4ab223 | 8 | #ifndef BLACKMAN_WINDOW_HPP |
MikamiUitOpen | 0:823e9a4ab223 | 9 | #define BLACKMAN_WINDOW_HPP |
MikamiUitOpen | 0:823e9a4ab223 | 10 | |
MikamiUitOpen | 0:823e9a4ab223 | 11 | #include "WindowBase.hpp" |
MikamiUitOpen | 0:823e9a4ab223 | 12 | |
MikamiUitOpen | 0:823e9a4ab223 | 13 | namespace Mikami |
MikamiUitOpen | 0:823e9a4ab223 | 14 | { |
MikamiUitOpen | 0:823e9a4ab223 | 15 | class BlackmanWindow : public WindowBase |
MikamiUitOpen | 0:823e9a4ab223 | 16 | { |
MikamiUitOpen | 0:823e9a4ab223 | 17 | public: |
MikamiUitOpen | 0:823e9a4ab223 | 18 | // コンストラクタ |
MikamiUitOpen | 0:823e9a4ab223 | 19 | BlackmanWindow(uint16_t nFft, uint16_t nData) |
MikamiUitOpen | 0:823e9a4ab223 | 20 | : WindowBase(nFft, nData) { Generate(nData); } |
MikamiUitOpen | 0:823e9a4ab223 | 21 | BlackmanWindow(uint16_t nFft) |
MikamiUitOpen | 0:823e9a4ab223 | 22 | : WindowBase(nFft, nFft) { Generate(nFft); } |
MikamiUitOpen | 0:823e9a4ab223 | 23 | |
MikamiUitOpen | 0:823e9a4ab223 | 24 | private: |
MikamiUitOpen | 0:823e9a4ab223 | 25 | // 窓関数を生成 |
MikamiUitOpen | 0:823e9a4ab223 | 26 | virtual void Generate(uint16_t nData) |
MikamiUitOpen | 0:823e9a4ab223 | 27 | { |
MikamiUitOpen | 0:823e9a4ab223 | 28 | const float PI2L = 6.283185f/(float)nData; |
MikamiUitOpen | 0:823e9a4ab223 | 29 | for (int k=0; k<nData; k++) |
MikamiUitOpen | 0:823e9a4ab223 | 30 | Set(k, 0.42f - 0.5f*cosf(k*PI2L) + 0.08f*cosf(k*2*PI2L)); |
MikamiUitOpen | 0:823e9a4ab223 | 31 | } |
MikamiUitOpen | 0:823e9a4ab223 | 32 | |
MikamiUitOpen | 0:823e9a4ab223 | 33 | // コピー・コンストラクタおよび代入演算子の禁止のため |
MikamiUitOpen | 0:823e9a4ab223 | 34 | BlackmanWindow(const BlackmanWindow& ); |
MikamiUitOpen | 0:823e9a4ab223 | 35 | BlackmanWindow& operator=(const BlackmanWindow& ); |
MikamiUitOpen | 0:823e9a4ab223 | 36 | }; |
MikamiUitOpen | 0:823e9a4ab223 | 37 | } |
MikamiUitOpen | 0:823e9a4ab223 | 38 | #endif // BLACKMAN_WINDOW_HPP |