FFT(高速フーリエ変換)

概略

高速フーリエ変換(FFT)アルゴリズムを使って離散フーリエ変換(DFT)を計算します
離散フーリエ変換は入力信号が周期的であると仮定して計算するので、周期的でない信号では意味のない計算になってしまいます

フーリエ変換とは

大雑把に説明すると「入力信号を周波数ごとに分ける」計算をします
例えば下図のような入力信号は5Hz+20Hz+100Hzの周波数に分解することができます

FFT
利用例

モーターなどの異常を早期に発見することを期待します
正常運転時の振動データをFFT変換して、常に現在のFFT変換データと照らし合わせて違いが出てきたら警告を出すなど

FFT

シンボル

FFT
FFTの計算をします
Symbol
※ 本体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・・・と作ることも可能です
wave1

使い方ナビ

FFT解析の手順

ダウンロード

SampleFFT.csm2