FFTスペクトル解析ツール 戻る
振動・信号処理

FFTスペクトル解析ツール

合成波形を入力してFFT(高速フーリエ変換)の周波数スペクトルをリアルタイム可視化。窓関数・エイリアシング・スペクトルリークを実際に体感できます。

信号構成

解析設定

サンプリング周波数 fs
窓関数

プリセット

2成分合成波 ナイキスト境界 うなり(同周波数) 高ノイズ
1.0
周波数分解能 Δf (Hz)
512
ナイキスト周波数 (Hz)
50
最大ピーク周波数 (Hz)
SNR 概算 (dB)

DFT 定義

$X[k] = \sum_{n=0}^{N-1} x[n]\,e^{-j2\pi kn/N}$
$\Delta f = f_s / N,\quad f_\text{Nyq} = f_s / 2$

時系列波形(先頭256サンプル)

パワースペクトル(FFT出力)

💬 博士に聞いてみた

🧑‍🎓
振動解析でFFTってよく使うらしいんですが、何をやってるのか全然わかりません。時系列データを「周波数」に変換するってどういうことですか?
🎓
ざっくり言うと「この複雑な振動の中に、どの周波数の波がどのくらいの強さで含まれているか」を分解する計算だよ。例えばエンジンの振動を録ったデータを FFT にかけると、「50Hz のピーク」=燃焼周波数、「200Hz のピーク」=歯車の噛み合い周波数って感じで原因が見えてくる。
🧑‍🎓
窓関数って矩形窓とハニング窓で結果が全然違いますね。これ何が起きてるんですか?
🎓
FFT は「有限長のデータが無限に繰り返す」と仮定して計算する。矩形窓は端でデータをブツ切りにするから、端で急激な変化が生じてスペクトルが滲む「リーク」が起きる。ハニング窓は端をゆっくりゼロに落とすことで不連続をなくす。ピークの鋭さ vs リーク量のトレードオフで窓を選ぶんだ。
🧑‍🎓
サンプリング周波数 1024Hz にして 600Hz の信号を入れたらどうなりますか?
🎓
それがエイリアシング(折り返し歪み)!ナイキスト周波数は fs/2=512Hz なのに、それを超える 600Hz の成分は 1024-600=424Hz として現れる。本来ないはずの周波数にピークが出るから非常に厄介。実際の計測では ADC の前にアンチエイリアシングフィルタ(ローパス)を入れて fs/2 以上をカットするのが常識だよ。
🧑‍🎓
CAEでは FFT をどう使うんですか?
🎓
構造解析では実験モーダル解析(EMA)が典型例。ハンマーで構造物を叩いて加速度を計測し、入力と応答の FFT 比(伝達関数)から固有振動数・減衰比・モード形状を求める。FEM の固有値計算結果との比較(コリレーション)に使うんだ。騒音・振動(NVH)解析でも必須の手法だよ。

❓ よくある質問

FFTのサンプル数はなぜ2の累乗が多いのですか?

クーリー・テューキーFFTアルゴリズムはN=2^k(2の累乗)のときに計算を再帰的に分割して O(N log N) を実現します。任意長でも動作するアルゴリズム(例:Rader-Brenner)はありますが、2のべき乗が圧倒的に高速です。

デシベル(dB)スケールはなぜ使われますか?

音響・振動のダイナミックレンジは 10⁶ を超えることがあります。線形スケールだと小さなピークが見えなくなります。dB = 20 log₁₀(X/X_ref) とすることで 120dB のダイナミックレンジを均一に表示できます。

短時間フーリエ変換(STFT)とウェーブレット変換の違いは?

FFTは定常信号を前提としますが、非定常信号(周波数が時間変化)には短時間FFT(STFT)が有用です。ウェーブレット変換は高周波は時間分解能を高く、低周波は周波数分解能を高くするため、衝撃信号や音声解析に適しています。

ゼロパディングとは何ですか?

信号の末尾にゼロを追加してサンプル数を増やしてからFFTをかけることです。これにより周波数分解能Δf=fs/Nが見かけ上向上し、スペクトルが滑らかになります(実際の分解能は増えませんが補間効果があります)。