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

FFTスペクトル解析ツール

合成波形を入力して FFT(高速フーリエ変換)の周波数スペクトルをリアルタイム可視化。窓関数・エイリアシング・スペクトルリークなどデジタル信号処理の落とし穴を、自分で操作しながら体感できます。

信号構成

解析設定

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

プリセット

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

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

信号

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

スペクトル
理論・主要公式

$$X[k] = \sum_{n=0}^{N-1} x[n] e^{-j2\pi kn/N}$$

離散フーリエ変換(DFT):時間信号 $x[n]$ を周波数成分 $X[k]$ に分解。FFTはこれを $O(N\log N)$ で計算。

$$f_k = \frac{k \cdot f_s}{N}$$

周波数分解能:サンプリング周波数 $f_s$(Hz)をデータ点数 $N$ で割った最小検出周波数間隔。

$$f_{Nyquist} = \frac{f_s}{2}$$

ナイキスト周波数(Hz):これより高い成分はエイリアシングを起こすため、$f_s/2$ 以上の周波数は測定不可。

💬 博士に聞いてみた

🙋
振動解析で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が見かけ上向上し、スペクトルが滑らかになります(実際の分解能は増えませんが補間効果があります)。

FFTスペクトル解析ツールとは

FFTスペクトル解析ツールの物理モデルでは、入力信号を離散フーリエ変換(DFT)の高速アルゴリズムであるFFTを用いて周波数領域へ変換します。連続時間信号 \( x(t) \) をサンプリング周期 \( T_s \) で離散化した系列 \( x[n] \) に対し、N点FFTは次式で定義されます。 $$ X[k] = \sum_{n=0}^{N-1} x[n] \, e^{-j 2\pi k n / N} $$ ここで \( k \) は周波数ビン番号であり、対応する物理周波数は \( f_k = k / (N T_s) \) です。しかし、有限長のデータを切り出す際に生じるスペクトルリークを抑制するため、窓関数 \( w[n] \) を乗算します。例えばハニング窓は \( w[n] = 0.5 - 0.5 \cos(2\pi n / (N-1)) \) で与えられ、適用後のスペクトルは次式となります。 $$ X_w[k] = \sum_{n=0}^{N-1} x[n] \, w[n] \, e^{-j 2\pi k n / N} $$ また、サンプリング周波数 \( f_s = 1/T_s \) の半分を超える周波数成分はエイリアシングを引き起こすため、本ツールでは入力合成波形の周波数設定とサンプリング条件を変更することで、その影響をリアルタイムに観察できます。窓関数の選択により周波数分解能とリーク低減のトレードオフを体感し、エイリアシングの発生条件を理解することが可能です。

よくある質問

ハニング窓はスペクトルリーク低減に汎用的で、周波数分解能と振幅精度のバランスが良いです。矩形窓は分解能が高いがリークしやすく、周波数が整数倍の周期信号向けです。目的に応じて切り替えて比較してください。
サンプリング周波数が信号の最高周波数の2倍未満の場合、高周波成分が低周波に折り返って見える現象です。ツールでは入力波形の周波数をサンプリング周波数の半分(ナイキスト周波数)以下に設定することで防げます。
有限長の信号を切り出す際に波形が不連続になるため、本来ない周波数成分が現れます。ツールで矩形窓を選び、周波数がサンプリング周期の整数倍でない正弦波を入力すると、ピークが広がる様子を確認できます。
縦軸は各周波数ビンの複素スペクトルの絶対値です。窓関数の影響で振幅が減衰するため、ツールでは補正をかけない生の値が表示されます。実際の振幅と比較したい場合は、窓関数のコヒーレントゲインで割る必要があります。

実世界での応用

産業での実際の使用例
自動車業界では、エンジンやモーターの振動解析に本ツールが活用されます。例えば、トヨタのハイブリッド車用インバーターでは、スイッチングノイズの周波数成分をFFTで特定し、EMC対策に利用。また、航空機エンジン(GE9X)のタービンブレードでは、回転に伴う共振周波数をスペクトル解析し、疲労破壊リスクを低減。窓関数を適切に選択(ハニング窓など)することで、スペクトルリークを抑制し、高精度な異常診断を実現します。

研究・教育での活用
大学の電気・機械工学実験では、音響信号や振動データの周波数特性を理解する教材として利用。例えば、東京大学の信号処理講義では、矩形波のFFT結果に現れるギブズ現象や、エイリアシングの影響を実演。学生が窓関数の種類(ブラックマン、フラットトップ)を変更しながら、周波数分解能と振幅精度のトレードオフを体感的に学べます。

CAE解析との連携や実務での位置付け
本ツールは、CAE(例:ANSYS、COMSOL)で計算した過渡応答波形の後処理に直結。例えば、構造解析で得た応力波形をFFTし、共振周波数を特定して設計変更の指標に。実務では、実験データとCAE結果の相関検証(Model Updating)に必須で、スペクトルリークを最小化する窓関数選択が、解析精度を左右する重要な工程となります。

よくある誤解と注意点

「窓関数をかけさえすればスペクトルリークは完全に防げる」と思いがちですが、実際は窓関数はリークを低減するものであり、完全に除去できるわけではありません。特に非整数周期で切り出した信号では、どの窓関数を使っても周波数成分が隣接ビンに漏れ出るため、振幅の正確な読み取りには注意が必要です。

「サンプリング周波数の半分(ナイキスト周波数)までは全て正しく表示される」と思いがちですが、実際はアンチエイリアシングフィルタが不十分な場合、ナイキスト周波数付近の信号は折り返し歪み(エイリアシング)の影響を受けます。実務では、解析したい最高周波数に対し、サンプリング周波数を2.5〜5倍程度に余裕を持たせることが推奨されます。

「FFTの分解能はサンプリング点数を増やせば無限に向上する」と思いがちですが、実際は時間窓長が長くなると非定常な信号の時間変化を見逃すトレードオフがあります。周波数分解能と時間分解能は反比例の関係にあるため、目的に応じた適切な窓長の選択が重要です。

使い方ガイド

  1. f1ValNum、f2ValNumで基本周波数を設定(例:50Hz、150Hz)
  2. a1ValNum、a2ValNumで各周波数の振幅を入力(例:1.0、0.5)
  3. シミュレーション実行でFFT変換を開始し、周波数スペクトルをリアルタイム表示
  4. 窓関数(ハニング窓、ハミング窓)を切り替えてスペクトルリークの低減効果を確認

具体的な計算例

50Hz(振幅1.0)と150Hz(振幅0.5)の合成波形をサンプリング周波数1kHzで1秒間採取した場合、矩形窓でのFFT結果は50Hzピーク値100、150Hzピーク値50を示します。ハニング窓適用時はスペクトルリークが大幅削減され、隣接周波数への漏れ込みが-60dBに抑制されます。ナイキスト周波数500Hz以上のサンプリングレート設定により、150Hzの高調波成分まで正確に解析可能です。

実務での注意点