━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━計測コラム

emm69 号用━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

波形と FFT−77．FFT アナライザ
前号ではフーリエ級数、フーリエ変換式が出てきて難しくなりましたが、FFT アナライザはフーリエ係数を求めているのですから、フーリエ級数、フーリエ係数を思い浮かべると理解しやすいと思います。フーリエ係数 Cn は【スペクトル】といわれ、Cn を求めることを「スペクトルを求める」とか「スペクトルに分解する」などとつかわれます。FFT アナラ
イザでは求まった結果のパワースペクトルを元に考え、パワースペクトルは Cn の 2 乗、Cnは「パワースペクトルのリニア表示」「フーリエススペクトル」と読みとっていくことになります。このような視点から DS-0221 FFT 解析ソフトのデータ画面について考えていきましょう。
元波形 f (t)は前回までと同じ次式で作成したサンプル値を使い説明を続けます。

π⎞π⎞⎛⎛f (t ) = cos⎜ 20π t + ⎟ + cos⎜ 40π t + ⎟ ····································· （20）6⎠4⎠⎝⎝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 の高調波になると理解ください。

-1-サンプリング周波数 1000Hz、サンプル点数 2048 では f0 の高調波に 10Hz が無い。

,+34 HLB M5 AFIJ@7;
C?8A= 2*10034 > ,+*-/.34
AHL@L9EKG:E<8D6

図 7-1
1 段目：時間波形（T = 2.048 s）
2 段目：パワースペクトル（X 軸を拡大）
3 段目：フーリエスペクトル Real（X 軸を拡大）
4 段目：フーリエスペクトル Img（X 軸を拡大）-2-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
T = 2048 点÷256Hz = 8Hzs

時間波形はちょうどこのサンプル点数 2048 点を表示しています。
FFT【Fast Fourier Transform】は離散的フーリエ変換を高速で演算するアルゴリズムのことで、サンプル点数は 2 の n 乗個に取る必要があります。このことからサンプル点数の設定は 2048 点や 1024 点などとなっています。そしてサンプル点数（ここでは 2048 点）の時間を１周期 T とし、この波形が繰り返されるということを仮定しています。FFT は複素関数の実部 Real、虚部 Img を求めていますが、ここではフーリエ級数に対比して説明することを目的としていますので今後も「フーリエ級数、フーリエ係数」「Real、Img」と記していきます。フーリエ級数の sin 項の係数 Bn は、Img では−Bn の関係であることに注意ください。

7-2 フーリエスペクトル、パワースペクトルの X 軸
フーリエスペクトル、パワースペクトルの画面でカーソルを移動させると X 軸の周波数はf0 ごとの離散値【周波数分解能】となっていて、f0 の n 倍の値（高調波）となっています。
例えば「周波数レンジ 100Hz、サンプル点数 2048」の場合を考えると、
f0 = 1/T = 0.125Hz
ω0 = 2πf0
10Hz は f0 の 80 倍、20Hz は 160 倍にあたり、10Hz、20Hz はフーリエ級数のω0、2ω0、3ω0・・・に乗っていることがわかります。
式（20）のサンプル列をサンプル周波数 1000Hz ではなく、256Hz で作成して、DS-0221で解析した例が図 7-2 になります。
分析は 0Hz 〜 100Hz までありますが、見やすいように X 軸スケールは 0Hz 〜 50Hz に拡大して表示しています。
-3-

6 PF ,+579-+57 G X+4+*,-/ F
2+ U9,0+ UFMREDJH?:

図 7-2
1 段目：時間波形（8 s）
2 段目：パワースペクトル（X 軸拡大表示）
3 段目：フーリエスペクトル Real（X 軸拡大表示）
4 段目：フーリエスペクトル Img（X 軸拡大表示）-4-フーリエ級数f (t ) = ∑n =0 C n cos(nω 0 t + θ 0 )N＝∑n =0 ( An cos nω 0 t + Bn sin nω o t )N····································· （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 の計算例を次に記します。

周波数10Hz20Hz

Real0.866V0.707

Imag0.500V

0.707

30deg

θ1.00V

スペクトル（Mag）

C (10 Hz ) =（π/6 rad）

2(C (Log ) = 10 LogC n = 10 Log An 2 + Bn 22

θ (10 Hz ) = tan −1Bn
π0 .5= tan −1=An
0.866 6)(30 deg )-5-（π/4 rad）
1.00V

An + Bn = 0.866 2 + 0.500 2 = 1.00
245deg周波数レンジ 100Hz、サンプル周波数 100×2.56 = 256Hz

f (t ) = ∑n =1 C n =∑n =0 ( An cos nω o t + Bn sin nω o t )
1024

1024

パワースペクトル（リニア） ： C n
フーリエスペクトル Real： An

フーリエスペクトル Img： − Bnを表示

jolmwu /-04`tq 8 6 4 ;]- 6 .,8`_ sh :]-b: 6 . a 4--ciyr`: 6 4-- gedtxunok .-- 7< fpv

図 7-2
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＝１/T＝周波数レンジ÷（サンプル点数÷2.56）―以上―-6-