HanningWindow, HammingWindow, BlackmanWindow の各クラス. このライブラリを登録した際のプログラム: Demo_Window

Dependents:   TrG_FFT_Analyzer Demo_Window TrG_Spectrogram

Committer:
MikamiUitOpen
Date:
Wed Nov 10 05:47:10 2021 +0000
Revision:
1:d8673bf6f89c
Parent:
0:823e9a4ab223
2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:823e9a4ab223 1 //-------------------------------------------------------------------
MikamiUitOpen 0:823e9a4ab223 2 // Blackman 窓による窓掛け
MikamiUitOpen 0:823e9a4ab223 3 // ゼロ詰め(zero-padding)の機能を持つ
MikamiUitOpen 0:823e9a4ab223 4 //
MikamiUitOpen 1:d8673bf6f89c 5 // 2021/11/10, 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 1:d8673bf6f89c 20 : WindowBase(nFft, nData) { Generate(nData); }
MikamiUitOpen 1:d8673bf6f89c 21 explicit BlackmanWindow(uint16_t nFft)
MikamiUitOpen 1:d8673bf6f89c 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 1:d8673bf6f89c 28 // k = 0 で値が 0 になるようにするため,計算の順番を変えている
MikamiUitOpen 0:823e9a4ab223 29 for (int k=0; k<nData; k++)
MikamiUitOpen 1:d8673bf6f89c 30 Set(k, 0.42f + 0.08f*cosf(2*k*PI2L_) - 0.5f*cosf(k*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