FFT によるスペクトル解析器

Dependencies:   Array_Matrix mbed SerialTxRxIntr UIT_FFT_Real DSP_ADDA

Committer:
MikamiUitOpen
Date:
Fri Jan 08 02:27:46 2021 +0000
Revision:
0:91cc5a03f0ca
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:91cc5a03f0ca 1 //-------------------------------------------------------
MikamiUitOpen 0:91cc5a03f0ca 2 // FFT を使ってスペクトル解析を行うクラス(ヘッダ)
MikamiUitOpen 0:91cc5a03f0ca 3 //
MikamiUitOpen 0:91cc5a03f0ca 4 // 2020/11/07, Copyright (c) 2020 MIKAMI, Naoki
MikamiUitOpen 0:91cc5a03f0ca 5 //-------------------------------------------------------
MikamiUitOpen 0:91cc5a03f0ca 6
MikamiUitOpen 0:91cc5a03f0ca 7 #ifndef FFT_ANALYZER_HPP
MikamiUitOpen 0:91cc5a03f0ca 8 #define FFT_ANALYZER_HPP
MikamiUitOpen 0:91cc5a03f0ca 9
MikamiUitOpen 0:91cc5a03f0ca 10 #include "Array.hpp"
MikamiUitOpen 0:91cc5a03f0ca 11 #include "fftReal.hpp"
MikamiUitOpen 0:91cc5a03f0ca 12 #include "Blackman.hpp"
MikamiUitOpen 0:91cc5a03f0ca 13
MikamiUitOpen 0:91cc5a03f0ca 14 namespace Mikami
MikamiUitOpen 0:91cc5a03f0ca 15 {
MikamiUitOpen 0:91cc5a03f0ca 16 class FftAnalyzer
MikamiUitOpen 0:91cc5a03f0ca 17 {
MikamiUitOpen 0:91cc5a03f0ca 18 public:
MikamiUitOpen 0:91cc5a03f0ca 19 // nFft: FFT のデータ点の数
MikamiUitOpen 0:91cc5a03f0ca 20 FftAnalyzer(int nFft);
MikamiUitOpen 0:91cc5a03f0ca 21 virtual ~FftAnalyzer() {}
MikamiUitOpen 0:91cc5a03f0ca 22 void Execute(const Array<float> &xn, Array<float> &absFt);
MikamiUitOpen 0:91cc5a03f0ca 23
MikamiUitOpen 0:91cc5a03f0ca 24 private:
MikamiUitOpen 0:91cc5a03f0ca 25 const int N_FFT_;
MikamiUitOpen 0:91cc5a03f0ca 26
MikamiUitOpen 0:91cc5a03f0ca 27 FftReal fft_;
MikamiUitOpen 0:91cc5a03f0ca 28 BlackmanWindow wHm_;
MikamiUitOpen 0:91cc5a03f0ca 29
MikamiUitOpen 0:91cc5a03f0ca 30 Array<float> xData_; // 解析対象の時系列データ
MikamiUitOpen 0:91cc5a03f0ca 31 Array<float> wData_; // 窓掛けされたデータ
MikamiUitOpen 0:91cc5a03f0ca 32 Array<Complex> yFft_; // FFT の結果
MikamiUitOpen 0:91cc5a03f0ca 33
MikamiUitOpen 0:91cc5a03f0ca 34 // コピー・コンストラクタおよび代入演算子の禁止のため
MikamiUitOpen 0:91cc5a03f0ca 35 FftAnalyzer(const FftAnalyzer& );
MikamiUitOpen 0:91cc5a03f0ca 36 FftAnalyzer& operator=(const FftAnalyzer& );
MikamiUitOpen 0:91cc5a03f0ca 37 };
MikamiUitOpen 0:91cc5a03f0ca 38 }
MikamiUitOpen 0:91cc5a03f0ca 39 #endif // FFT_ANALYZER_HPP