高速フーリエ変換(FFT)アルゴリズムを使って離散フーリエ変換(DFT)を計算します
離散フーリエ変換は入力信号が周期的であると仮定して計算するので、周期的でない信号では意味のない計算になってしまいます
大雑把に説明すると「入力信号を周波数ごとに分ける」計算をします
例えば下図のような入力信号は5Hz+20Hz+100Hzの周波数に分解することができます
モーターなどの異常を早期に発見することを期待します
正常運転時の振動データをFFT変換して、常に現在のFFT変換データと照らし合わせて違いが出てきたら警告を出すなど
FFTの計算をします

| 値 | 窓関数 |
|---|---|
| 0 | ハニング窓 |
| 1 | ハン窓 |
| 2 | ブラックマン窓 |
| それ以外 | 矩形窓 |
サンプリングデータ(Data)は512,1024,2048,4096,8192,16384個のいずれかの要素数を持つ配列に入れてください
サンプリングデータ数が多いほど分解能が上がりますが、計算時間は長くなります
8192,16384個を追加しました(Ver0.0.3)
サンプリング周波数の半分の周波数まで観測ができます
例えば、サンプリング周波数が1kHzなら500Hzまで、10kHzなら5kHzまで観測できます
サンプリングデータ数のデータがそろえばFFTの計算を実行するようにします
FFTの計算は時間がかかるため連続してサンプリングデータを取りたい場合は、下図のように一杯になったサンプリングデータ1のFFTの計算をしながら、サンプリングデータ2を別のメモリに格納していきます
連続する必要がなければFFT計算後にサンプリングを始めたり、頻繁にFFT計算を行いたい場合はサンプリング1とサンプリング2を被せてサンプリング3、サンプリング4・・・と作ることも可能です

FFTは高速フーリエ変換のことで、 時間波形データを周波数成分へ変換するアルゴリズムです。
FFTアルゴリズムが効率よく計算できるためです。
観測したい最高周波数の2倍以上に設定します。
モーターやベアリングの振動解析で広く利用されています。