線形チャープの瞬時周波数:$f(t)=f_0+(f_1-f_0)\,t/T$
各時間スライスをFFT:$X[k]=\sum_{n=0}^{N-1}x[n]e^{-j2\pi kn/N}$
周波数分解能:$\Delta f = f_s/N$。スペクトログラムの輝点はビン $k=f(t)/\Delta f$ を追従します。
最大5つの正弦波成分を合成してFFTスペクトルをリアルタイム解析。窓関数・ノイズ・FFT点数の影響を直感的に理解。
線形チャープの瞬時周波数:$f(t)=f_0+(f_1-f_0)\,t/T$
各時間スライスをFFT:$X[k]=\sum_{n=0}^{N-1}x[n]e^{-j2\pi kn/N}$
周波数分解能:$\Delta f = f_s/N$。スペクトログラムの輝点はビン $k=f(t)/\Delta f$ を追従します。
振動・騒音(NVH)解析:自動車や家電製品の不快な振動・騒音源を特定するために必須です。エンジンやモーターの回転周波数やその倍音成分をFFTで抽出し、Hanning窓を用いてリークを抑えながら正確な振幅を評価します。
回転機械の状態監視:工場のポンプやファンなどのベアリングや歯車の異常を、振動スペクトルの変化から早期発見します。特定の周波数(軸受の傷による固有周波数)にノイズ(SNR)の中から微小なピークが現れるかを監視します。
モーダル解析(実験):構造物(橋梁、航空機翼)にインパルス加振やランダム加振を行い、その応答のFFTから固有振動数や減衰率を同定します。加振力と応答のスペクトル比から周波数応答関数(FRF)を求めます。
音響・音声信号処理:音楽の和音分析、音声認識の前処理、騒音計測における特定周波数帯域の音圧レベル評価に利用されます。Hamming窓が音声の短時間フーリエ変換に多用されます。
FFT解析を始めたばかりの頃、僕も含めて多くの人がハマる落とし穴があるんだ。まず一つ目は「サンプリング周波数は高いほど分解能が上がる」という誤解。実は分解能 $\Delta f$ は $f_s / N$ だから、$f_s$ だけ上げても分解能は悪化する($\Delta f$ が大きくなる)。例えば、$f_s=1$kHz、$N=1024$なら $\Delta f \approx 0.98$Hzだけど、$f_s$を2kHzにすると $\Delta f \approx 1.95$Hzになってしまう。分解能を上げたいなら、$N$を大きくするか、$f_s$を下げる必要があるんだ。ただし、$f_s$はナイキスト周波数($f_s/2$)より高い信号成分を捉えられないから、計測対象の最大周波数の2倍以上は確保しなきゃいけない。このバランスが実務のキモだよ。
二つ目は「窓関数を使えば全て解決」という過信。Hanning窓は確かに便利だけど、振幅が小さく見えるから補正係数(例えば実効値なら約1.63)を掛けて真の振幅を推定する必要がある。それに、窓をかけると時間分解能が落ちる側面もある。例えば、衝撃的な過渡現象を捉えたい時は、むしろ矩形窓の方がタイミングを正確に捉えられる場合があるんだ。「何でもHanning」ではなく、現象の性格に合わせて選ぶのがプロの技だね。
最後に、「FFT点数Nは2のべき乗じゃなきゃダメ」という思い込み。このツールはN=256/512/1024など2のべき乗のみ対応している。必要な周波数分解能 $\Delta f$ と手持ちのデータ長から逆算して、用意されたNとサンプリング周波数を選ぶことが大事だよ。
モーター振動解析ケース:基本周波数100Hz・振幅3V、3倍成分300Hz・振幅0.6V、5倍成分500Hz・振幅0.3Vを合成。サンプリング周波数fs=2000Hz、FFT点数N=1024、Hanning窓、SNR=60dBで実行。結果:支配周波数99.6Hz、RMS振幅≈2.173V、THD≈22.4%、周波数分解能Δf=1.953Hz。ピークはビン格子上で離散化されるため、入力100Hzに最も近い99.6Hzとして表示されます。