Application example of FftReal class. FftReal クラスの使用例.

Dependencies:   Array_Matrix mbed UIT_FFT_Real

Committer:
MikamiUitOpen
Date:
Sat Dec 12 03:21:58 2020 +0000
Revision:
4:8248d5b5cdc9
5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 4:8248d5b5cdc9 1 //--------------------------------------------------------------
MikamiUitOpen 4:8248d5b5cdc9 2 // 離散的フーリエ変換 (DFT)
MikamiUitOpen 4:8248d5b5cdc9 3 //
MikamiUitOpen 4:8248d5b5cdc9 4 // 2020/12/12, Copyright (c) 2020 MIKAMI, Naoki
MikamiUitOpen 4:8248d5b5cdc9 5 //--------------------------------------------------------------
MikamiUitOpen 4:8248d5b5cdc9 6
MikamiUitOpen 4:8248d5b5cdc9 7 #include "mbed.h"
MikamiUitOpen 4:8248d5b5cdc9 8 #include <complex> // complex で使用
MikamiUitOpen 4:8248d5b5cdc9 9
MikamiUitOpen 4:8248d5b5cdc9 10 #ifndef DFT_REAL_HPP
MikamiUitOpen 4:8248d5b5cdc9 11 #define DFT_REAL_HPP
MikamiUitOpen 4:8248d5b5cdc9 12
MikamiUitOpen 4:8248d5b5cdc9 13 typedef complex<float> Complex; // "Complex" の定義
MikamiUitOpen 4:8248d5b5cdc9 14
MikamiUitOpen 4:8248d5b5cdc9 15 void DftReal(const float x[], Complex y[], int nFft);
MikamiUitOpen 4:8248d5b5cdc9 16
MikamiUitOpen 4:8248d5b5cdc9 17 // DFT の計算
MikamiUitOpen 4:8248d5b5cdc9 18 void DftReal(const float x[], Complex y[], int nFft)
MikamiUitOpen 4:8248d5b5cdc9 19 {
MikamiUitOpen 4:8248d5b5cdc9 20 Complex j2PiN = Complex(0, -6.28318531f/nFft);
MikamiUitOpen 4:8248d5b5cdc9 21
MikamiUitOpen 4:8248d5b5cdc9 22 for (int k=0; k<nFft; k++)
MikamiUitOpen 4:8248d5b5cdc9 23 {
MikamiUitOpen 4:8248d5b5cdc9 24 y[k] = 0.0;
MikamiUitOpen 4:8248d5b5cdc9 25 for (int n=0; n<nFft; n++)
MikamiUitOpen 4:8248d5b5cdc9 26 y[k] = y[k] + x[n]*exp(j2PiN*(float)(n*k));
MikamiUitOpen 4:8248d5b5cdc9 27 }
MikamiUitOpen 4:8248d5b5cdc9 28 }
MikamiUitOpen 4:8248d5b5cdc9 29 #endif // DFT_REAL_HPP