サイトのタイトル

OSD

アナログ入力をFFT解析してグラフ表示する手順 (1/5)

概要

ここでは高速アナログ入力ユニット(NX-HAD???)を使って振動などの周期的なデータをFFT解析して表示器NAシリーズにグラフ表示するまでの手順を説明します

目的

その後アナログ入力データとFFT解析したデータをSDカードへcsv出力するまでの手順も説明します

準備

計測対象
周期性のある波形が計測対象になります
フーリエ変換は周期性のある波形を複数の単純なSin波に分解するのですが、一般的には周期性のある波形をある一定期間(数ミリ秒から数秒)を切り取って計算します
周期性のある波形とはモータが同じ回転数で回っているときのようなウーーンとかブーーンとかキーーンとかいう音や振動、または物体をハンマーで叩いた時の音や振動のことです
計算対象を切り取る一定期間内にモータの回転数が変わったり、ノックのように複数回叩いたりすると周波数がバラついた計算結果になってしまうので注意してください

周波数

計測したい周波数がどれぐらいなのかを大まかに決めます
可聴帯域内であればこんな感じの音を目安にします

30Hz
50Hz
100Hz
440Hz 国際標準ピッチ(♪ラの音)
1KHz テレビのテストトーン
10KHz
15KHz

サンプリング周波数

サンプリング周波数(アナログ値を取得する周期)によって観測できる周波数が変わります
サンプリング周波数を高速にすると高周波を観測できますが振動センサなど接続するセンサの性能より低い周波数でサンプリングすることになります
FFTの計算をする時にサンプリング周波数の半分の周波数をナイキスト周波数といい、この周波数以上は折り返したデータとなるため無視します

NOTE
サンプリング周波数を高くするとFFTの演算にかかる時間が長くなりスキャンタイムが長くるのでタスク周期を長くするとかイベントタスクで実行するとか工夫が必要になります

サンプリング周波数と観測可能な周波数の関係
サンプリング周波数(Hz) FFT計算後の最大周波数(Hz)
1k 500
2k 1k
5k 2.5k
10k 5k
20k 10k
100k 50k

データ数

フーリエ変換の計算をするデータ数を2のn乗にすることで高速に計算できるFFT(高速フーリエ変換)での計算が可能になります

NOTE
サンプリングするデータ数を多くすると分解能が細かくなりますが、収集時間が長くなります

データ数と収集時間と分解能の関係(サンプリング周波数=10kHzの場合)
データ数 収集にかかる時間 分解能
512 51.2ms 19.53Hz
1024 102.4ms 9.77Hz
2048 204.8ms 4.88Hz
4096 409.6ms 2.44Hz
8192 819.2ms 1.22Hz
16384 1638.4ms 0.61Hz

次のページからは

アナログデータを取得してFFT計算をする手順を説明します

ダウンロード

ここで作るプロジェクトを先にダウンロードしたい人は
naviFFT.zip

ダウンロードされたときは利用規約に同意したものとみなします