7.FFT アナライザ
前回ではフーリエ級数、フーリエ変換式が出てきて難しくなりましたが、FFT アナライザはフーリエ係数を求めているのですから、フーリエ級数、フーリエ係数を思い浮かべると理解しやすいと思います。フーリエ係数Cn は【スペクトル】といわれ、Cn を求めることを「スペクトルを求める」とか「スペクトルに分解する」などとつかわれます。FFT アナライザでは求まった結果のパワースペクトルを元に考え、パワースペクトルはCn の2 乗、Cnは「パワースペクトルのリニア表示」「フーリエススペクトル」と読みとっていくことになります。このような視点からDS-0221 FFT 解析ソフトのデータ画面について考えていきましょう。
元波形f (t)は前回までと同じ次式で作成したサンプル値を使い説明を続けます。
FFT アナライザはf0(= 1/T)の整数倍でフーリエ係数を計算します。
前回でお気づきになった方がおられると思いますが、サンプリング周波数1000Hz、データ数2048 ではT=2.048s、f0=1/T=0.488Hz なので10Hz はf0 の高調波ではありません。しかし10Hz でフーリエ係数を計算しました。図7-1 はDS-0221 でFFT したパワースペクトル画面です。このデータを見ると10Hz のポイントは無く、f0 の高調波第20 次の9.766Hzと第21 次10.254Hz に分かれて表示されます。20Hz は第41 次20.020 にほぼ一致するため、20.020Hz で表示されているようです。
FFT アナライザではX 軸の目盛りはf0 の高調波になると理解ください。
サンプリング周波数1000Hz、サンプル点数2048 ではf0 の高調波に10Hz が無い。
-
図7-1
1段目:時間波形(T = 2.048 s)
2 段目:パワースペクトル(X 軸を拡大)
3 段目:フーリエスペクトルReal(X 軸を拡大)
4 段目:フーリエスペクトルImg(X 軸を拡大)
7-1 時間波形
次に図7-2 を見ていきましょう。DS-0221FFT 解析ソフトで分析を始める場合、まず【周波数レンジ】を設定します。サンプリング周波数は周波数レンジの2.56 倍に定めてあります。周波数レンジが100Hz の場合のサンプル周波数は256Hz、サンプリング間隔【時間分解能】は1/256(s)となります。
サンプル点数2048 点を時間T に換算すると2048×(1/256)=8(s)となります。
サンプル周波数=周波数レンジ×2.56 = 100Hz×2.56 = 256 Hz
T = 2048 点÷256Hz = 8 s
時間波形はちょうどこのサンプル点数2048 点を表示しています。
FFT【Fast Fourier Transform】は離散的フーリエ変換を高速で演算するアルゴリズムのこ
とで、サンプル点数は2 のn 乗個に取る必要があります。このことからサンプル点数の設
定は2048 点や1024 点などとなっています。そしてサンプル点数(ここでは2048 点)の
時間を1周期T とし、この波形が繰り返されるということを仮定しています。FFT は複素
関数の実部Real、虚部Img を求めていますが、ここではフーリエ級数に対比して説明する
ことを目的としていますので今後も「フーリエ級数、フーリエ係数」「Real、Img」と記し
ていきます。フーリエ級数のsin 項の係数Bn は、Img では-Bn の関係であることに注意
ください。
7-2 フーリエスペクトル、パワースペクトルのX 軸
フーリエスペクトル、パワースペクトルの画面でカーソルを移動させるとX 軸の周波数は
f0 ごとの離散値【周波数分解能】となっていて、f0 のn 倍の値(高調波)となっています。
例えば「周波数レンジ100Hz、サンプル点数2048」の場合を考えると、
10Hz はf0 の80 倍、20Hz は160 倍にあたり、10Hz、20Hz はフーリエ級数のω0、2ω0、3ω0・・・に乗っていることがわかります。
式(20)のサンプル列をサンプル周波数1000Hz ではなく、256Hz で作成して、DS-0221で解析した例が図7-2 になります。
分析は0Hz ~ 100Hz までありますが、見やすいようにX 軸スケールは0Hz ~ 50Hz に拡大して表示しています。
-
図7-2
1段目:時間波形(8 s)
2 段目:パワースペクトル(X 軸拡大表示)
3 段目:フーリエスペクトルReal(X 軸拡大表示)
4 段目:フーリエスペクトルImg(X 軸拡大表示)
フーリエ級数
····································· (21)
FFT 演算で求めることのできるフーリエ係数の個数N はサンプル点数の半分、サンプル点数2048 点の場合1024 までです。サンプリングは波形に含まれる最高周波数成分の2 倍以上でサンプリングする必要があるという【サンプリング定理】とも関連していて、具体的には、入力信号はサンプリングの前にローパスフィルタ【アンチエリアシングフィルタ】を通して処理しています。このローパスフィルタのカットオフ周波数はL f0 に設定されます。(ここでL の値は800< L < 1024) 1024 f0 以上の成分が1024 f0 を中心に折り返されたような成分として現れる折り返しの影響【折り返し歪 エリアシング】を避けるため、n = 0 ~800 点までを表示し、n = 801 ~ 1024 は表示しておりません。n = 800 のときがちょうど100Hz になり、周波数レンジに一致します。X 軸はf0 ごとのスペクトルが表示されますので【周波数数分解能】はf0 となります。周波数分解能はFFT の周波数レンジとサンプル点数の設定値から次式で計算でき、サンプル点数2048 では周波数レンジの1/800 となります。
周波数分解能f0 = 周波数レンジ÷(サンプル点数÷2.56)Hz········· (22)
7-3 フーリエスペクトル、パワースペクトルのY 軸値
図7-3 のフーリエスペクトルの周波数10Hz、20Hz のY 軸の値を読み取ると、位相θ、振
幅C が計算できます。前回の繰り返しになりますが10Hz の計算例を次に記します。
| 周波数 | 10Hz | 20Hz |
| Real | 0.866V | 0.707 |
| Imag | 0.500V | 0.707 |
| θ | 30deg (π/6 rad) | 45deg (π/4 rad) |
| スペクトル(Mag) | 1.00V | 1.00V |
周波数レンジ100Hz、サンプル周波数100×2.56 = 256Hz
パワースペクトル(リニア) : n C
フーリエスペクトルReal : n A
フーリエスペクトルImg : n − B を表示
-
図7-3
1 段目:時間軸波形⇒サンプル点数2048 点、T = 8s を表示
2 段目:パワースペクトル ⇒ X 軸はn f0 を表示、n = 800 のとき100HzY 軸は10 Log Cn2 = 20 Log Cn を表示
3、4 段目:フーリエスペクトルReal、Imag
<ポイント>
FFT はサンプル点数の時間(取り込む時間窓)を周期T とし計算される。
周波数分解能f0 は
f0=1/T=周波数レンジ÷(サンプル点数÷2.56)
(2007年6月21日発行メールマガジンより抜粋)