当計測コラムでは、当社お客様相談室によくお問い合わせいただくご質問をとりあげ、回答内容をご紹介しています。
FFT解析(フーリエ解析)では、時間軸波形をある長さに切り出し、切り出した時間軸波形をフーリエ変換してフーリエ級数を求めます。得られたフーリエ級数を周波数軸に並べたものがフーリエスペクトルです。
FFT時間長と周波数分解能
FFT解析のために切り出した時間波形の長さ(FFT時間長 [秒] )、 周波数分解能 [Hz]とFFT解析の周波数レンジ、サンプル点数の関係は次の通りです。
ライン数 [点] = サンプル点数 [点] ÷ 2.56
周波数分解能 [Hz] = 周波数レンジ [Hz] ÷ ライン数 [点]
FFT時間長 [秒] = 1 ÷ 周波数分解能 [Hz]
周波数レンジ 8 kHz、サンプル点数 2048 点の場合、ライン数は800 点、FFT時間長は0.1 秒、周波数分解能は 10 Hzになります。1回のFFTには長さ0.1 秒の時間波形が使われます。FFT解析をおこなうと 10 Hzごとのスペクトルの値が得られます。10 Hzより細かい間隔での周波数成分の値、たとえば 995 Hz成分や 1001 Hz成分などは求まりません。
周波数分解能にのらない信号のスペクトル
振幅が 1 V、周波数が 1 kHzの正弦波を、周波数レンジ 8 kHz、サンプル点数 2048 点の条件でFFT解析して得られたスペクトルの 1 kHz成分の値は 1 Vになります。
周波数分解能にのらない周波数の信号をFFT解析するとどのようなスペクトルが得られるかは、使用する窓関数に依存します。
ハニング窓を使用して、振幅が 1 V、周波数が 995 Hzの正弦波を、周波数レンジ 8 kHz、サンプル点数 2048 点の条件でFFT解析すると 990 Hz成分と1 kHz成分の値がそれぞれ 約 0.85 Vになります。周波数分解能(10 Hz)にのらない周波数の信号の振幅は、その前後の周波数成分に分割されてしまいます。
周波数分解能にのらない信号のスペクトルの実測例
振幅 1 の正弦波の周波数を990 Hzから1010 Hzまで変化させてFFT解析をおこなった結果の980 Hz~1020 Hzまでの成分の値 表1 に示します。二乗和の値はこれら5つの成分の二乗和です。また二乗和の平方根の値ものせています。窓関数はハニング窓を使用しました。
表1 正弦波(990 ~1010 Hz)のFFT解析結果
| 正弦波周波数 | 980 Hz成分 | 990 Hz成分 | 1000 Hz成分 | 1010 Hz成分 | 1020 Hz成分 | 二乗和 | 二乗和の平方根 |
| 990 Hz | 0.500 | 1.000 | 0.500 | 0.000 | 0.000 | 1.500 | 1.225 |
| 991 Hz | 0.430 | 0.994 | 0.571 | 0.018 | 0.004 | 1.500 | 1.225 |
| 992 Hz | 0.352 | 0.974 | 0.652 | 0.047 | 0.010 | 1.500 | 1.225 |
| 993 Hz | 0.289 | 0.945 | 0.719 | 0.079 | 0.015 | 1.499 | 1.225 |
| 994 Hz | 0.222 | 0.898 | 0.792 | 0.124 | 0.021 | 1.499 | 1.224 |
| 995 Hz | 0.170 | 0.849 | 0.849 | 0.170 | 0.024 | 1.499 | 1.224 |
| 996 Hz | 0.124 | 0.792 | 0.898 | 0.222 | 0.026 | 1.500 | 1.225 |
| 997 Hz | 0.079 | 0.719 | 0.944 | 0.289 | 0.026 | 1.500 | 1.225 |
| 998 Hz | 0.047 | 0.652 | 0.974 | 0.352 | 0.022 | 1.500 | 1.225 |
| 999 Hz | 0.018 | 0.571 | 0.994 | 0.430 | 0.013 | 1.500 | 1.225 |
| 1000 Hz | 0.000 | 0.500 | 1.000 | 0.500 | 0.000 | 1.500 | 1.225 |
| 1001 Hz | 0.014 | 0.426 | 0.994 | 0.575 | 0.020 | 1.500 | 1.225 |
| 1002 Hz | 0.022 | 0.354 | 0.975 | 0.650 | 0.046 | 1.500 | 1.225 |
| 1003 Hz | 0.026 | 0.287 | 0.943 | 0.721 | 0.080 | 1.500 | 1.225 |
| 1004 Hz | 0.027 | 0.225 | 0.901 | 0.788 | 0.121 | 1.500 | 1.225 |
| 1005 Hz | 0.024 | 0.170 | 0.849 | 0.849 | 0.170 | 1.499 | 1.225 |
| 1006 Hz | 0.020 | 0.121 | 0.788 | 0.901 | 0.225 | 1.499 | 1.224 |
| 1007 Hz | 0.015 | 0.080 | 0.721 | 0.943 | 0.287 | 1.499 | 1.225 |
| 1008 Hz | 0.010 | 0.046 | 0.650 | 0.975 | 0.354 | 1.500 | 1.225 |
| 1009 Hz | 0.005 | 0.020 | 0.575 | 0.994 | 0.426 | 1.500 | 1.225 |
| 1010 Hz | 0.000 | 0.000 | 0.500 | 1.000 | 0.500 | 1.500 | 1.225 |
1000 Hzの正弦波の1000 Hz成分を見るとその振幅は 1 であり、正弦波の振幅を正しく示しています。990 Hz成分と 1010 Hz成分は 0.5です。これはハニング窓の影響でスペクトルが横に広がっているためです。980 Hz~1020 Hz成分の二乗和は 1.5 です。これもハニング窓を使用したために横に広がったためです。この1.5 はスペクトルが横に広がる度合い示す値で等価ノイズ帯域幅といいます。
995 Hzの正弦波の 990 Hz成分と1000 Hz成分は 0.849 を示しています。これは 995 Hzの正弦波の大きさが前後の周波数成分にわけられたためです。スペクトルのピーク値をみると本来の振幅より小さくなります。その割合は最悪で 0.849 倍、-1.42 dBです。スペクトルがピークとなる周波数は最大で周波数分解能の半分、5 Hzずれることになります。
周波数分解能 (10 Hz)の整数倍ではない周波数の正弦波についてもその成分の大きさは前後の成分にわけられ 1 より小さくなります。ただ、前後5成分の二乗和は 1.5 になっています。これを等価ノイズ帯域幅(1.5)で割ってから平方根をとると正弦波の正確な振幅(1 ) が得られます。
まとめ
今回は正弦波をハニング窓関数を使用してFFT 解析(フーリエ解析)した結果をご紹介しました。FFT解析では周波数分解能ごとのスペクトルが得られるため、正弦波の周波数が周波数分解能の整数倍でない場合は、その振幅は前後の周波数成分にわかれ小さめの値になります。正確な値を求める場合は、周波数分解能が細かくなる設定に変更するなどが必要です。
(2020年10月21日発行メールマガジンより抜粋)