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

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