
3. 基本的な信号処理手法
3.4 離散フーリエ変換(DFT)と高速フーリエ変換(FFT)
音や振動のような波は、時間とともに上下にゆれる形(時間領域)で観察できるが、その中身を「どんな周波数の成分が、どれくらい含まれているか」という視点(周波数領域)で見直すと、隠れていた特徴がはっきりする。時間の記録を周波数の表(スペクトル)に変える操作がフーリエ変換であり、コンピュータ上のデータのように時間も値も「等間隔のならんだ数列」として扱うときに使うのが離散フーリエ変換(DFT)である。DFTは、長さNのデータ列をN個の周波数成分(それぞれ振幅と位相をもつ複素数)へ写像する道具で、「この信号には、周波数kの正弦波・余弦波がどれだけ混ざっているか」を数で教えてくれる。実務の分析器でも、一定時間だけ信号を切り取り、DFTで振幅と位相を求めてゲインや位相差を算出する仕組みが広く使われている。[1][2][3][4]
DFTの基本式は、長さNの信号x(n)から周波数インデックスkの成分X(k)を計算する形で表せる(指数関数exp(−j2πkn/N)は、周波数kの正弦・余弦の合成を表す重みである)。直感的には、さまざまな速度で揺れる「基準の波」を用意し、元の信号にどの基準波がどれだけ当てはまるかを「内積」で見ている、というイメージでよい。こうして得たX(k)の大きさが振幅、角度が位相に対応し、全体の並びがスペクトルになる。[2][3][4]
ここで注意が必要なのは、「有限時間だけ切り取った信号を、無限に同じ形が繰り返しているものとして扱う」というDFTの前提である。この前提のため、切り取った端と端が「波の途中」でつながってしまうと、周波数軸上でエネルギーがにじむ「リーケージ(漏れ)」が起き、ピークが広がったり裾が伸びたりする。実験で周波数が既知なら、取り込み時間を信号の整数周期にそろえてリーケージを避けることができるが、未知の信号を測るFFTアナライザではふつう整数周期にならないため、その対策が必要になる。[4][1]
このリーケージを抑える代表的な手法が窓関数である。窓関数は、切り取ったデータの両端がなめらかに0へ近づくよう重みをかけ、つなぎ目の段差(過渡)を和らげる働きを持つ。窓をかけるとピークの周囲に広がるスペクトル・リークが低減し、狭い帯域にエネルギーを集中させやすくなる一方、振幅は小さく見えるため、窓の種類に応じた振幅補正(補正係数)を理解しておくと定量解析に役立つ。窓を選ぶときは、分解能(ピークを細くしたい)と漏れ低減(サイドローブを小さくしたい)のトレードオフを意識し、目的に応じて使い分けるのが実務の基本である。[5][6][4]
次に、高速フーリエ変換(FFT)について整理する。FFTは「フーリエ変換そのもの」ではなく、「DFTを高速に計算するアルゴリズム」の総称で、同じ結果をより少ない計算量で出すための工夫である。1965年にCooleyとTukeyが代表的なFFT法を示し、以後デジタル計算機の発展とともにリアルタイム解析を可能にしてきた。したがって、理屈や前提(有限時間の切り出し、ナイキスト周波数、窓によるリーケージ対策など)はDFTと共通で、FFTは「素早く求める」実装上の加速手段と理解すると間違いがない。[7][8][4]
FFTで得られるスペクトルの性質は、サンプリング周波数fsと「ブロックサイズ」(1回のFFTで使うサンプル数)BLで決まる。理論上、測定可能な最高周波数はナイキスト周波数fn=fs/2であり、周波数分解能(となり合う周波数ビンの間隔)はdf=fs/BLになる。分解能を細かくしたい(ピークを見分けたい)ときはBLを大きくして時間窓D=BL/fsを長く取る必要があるが、繰り返し更新の速さは落ちる。逆に、BLを小さくすれば更新は速いがdfが粗くなる。この基本関係を押さえると、目標の周波数分解能から必要な窓長を逆算できる。[4]
「ゼロパディング」はよく使われる補助テクニックで、データ列の後ろにゼロを付け足してBLを見かけ上大きくし、スペクトルのビン間隔を細かく表示させる方法である。ただし、ゼロパディングはあくまで周波数目盛りの刻みを細かくする(補間に似た)効果で、時間窓を実際に長くしたわけではないため、真の分解能が上がるわけではない点に注意する必要がある。また、窓関数を使うと振幅が減るため、窓の種類に応じた振幅補正を合わせて適用すると、定量値の整合が取りやすい。[9][5]
現場での設定は、次の順序で考えると失敗が少ない。第一に、対象の最高周波数と必要な分解能を見積もり、fsとBLを決める(df=fs/BL、fn=fs/2を常に意識する)。第二に、整数周期が期待できない一般信号では窓関数を適用し、リーケージを抑える。第三に、ピークの高さを評価する目的があるときは、採用窓に応じた補正係数を使ってレベルを補正する。第四に、見かけの読みやすさを上げたいときだけゼロパディングを用いるが、真の分解能は窓長が決めることを忘れない。これらの原則は、音響・振動の測定で一般的に推奨されている手順と一致している。[6][9][5][4]
DFT/FFTの応用は広く、機械の異常検知でも定常的な回転振動の基本周波数と高調波、あるいは側帯域の発生など、時間波形では見えにくいパターンを分離して観察できる。矩形波が奇数次高調波の重ね合わせで表せる、といった典型例は「複雑な波=いくつかの単純な正弦波の足し合わせ」という見方の具体例であり、スペクトル解釈の基礎訓練になる。また、計測器の説明でも、DFTを使って特定の周波数成分の実部・虚部を取り出し、ゲインや位相差を求める方法が紹介されており、解析の出力が「振幅と位相の組(複素数)」であることがわかる。[1][4]
最後に、実務で混乱しやすいポイントをまとめる。- DFTは「方法」、FFTは「DFTを速く解く計算手段」で、両者の結果は同じ性質を持つ。- スペクトルの分解能はdf=fs/BLで決まり、真の分解能を上げたければ時間窓を長くする(BLを大きくする)必要がある。- 窓関数はリーケージを抑えるが、振幅や帯域形状に影響するため、目的に合う窓の選択と補正が大切である。- ゼロパディングは「見やすさ」を改善するが、本質的な分解能は変えない。- 有効帯域はナイキスト周波数まで(fn=fs/2)であり、それを超える成分はエイリアシングを招くため、A/Dの前段での帯域制限と適切なfsの選択が不可欠である(この点はFFT基礎解説でも強調される)。[7][9][5][6][4]
これらの基礎を押さえておけば、DFT/FFTは「時間の記録を、周波数ごとの地図に翻訳する」確かな道具として、音や振動の特徴抽出、異常の手がかり探し、装置のチューニングまで幅広く役に立つ。
[1] https://www.nfcorp.co.jp/techinfo/dictionary/063/ [2] https://qiita.com/TumoiYorozu/items/5855d75a47ef2c7e62c8 [3] https://appswingby.com/%E9%9B%A2%E6%95%A3%E3%83%95%E3%83%BC%E3%83%AA%E3%82%A8%E5%A4%89%E6%8F%9B-%E4%BB%8A%E6%9B%B4%E8%81%9E%E3%81%91%E3%81%AA%E3%81%84it%E7%94%A8%E8%AA%9E%E9%9B%86/ [4] https://www.nti-audio.com/ja/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9/fft%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%81%A8%E9%9F%B3%E9%9F%BF%E6%8C%AF%E5%8B%95%E6%B8%AC%E5%AE%9A%E3%81%B8%E3%81%AE%E5%BF%9C%E7%94%A8 [5] https://www.analog.com/jp/resources/technical-articles/weblab-tnj081-window-function-compensation-factor-for-1hz-power-density-calculation.html [6] https://svmeas.rion.co.jp/support/p38veq0000000cmg-att/FFT_07881.pdf [7] https://kgrneer.com/fourier-fft-kaisetu/ [8] https://www.techeyesonline.com/article/tech-column/detail/Reference-FFTAnalyzer-01/ [9] https://watlab-blog.com/2020/11/16/zero-padding-fft/ [10] https://www.onosokki.co.jp/HP-WK/eMM_back/emm138.pdf [11] https://www.momoyama-usagi.com/entry/math-seigyo13 [12] https://imagingsolution.net/math/fourier-transform/discrete-fourier-transform/ [13] https://ameblo.jp/kagakusyanotamago12345/entry-12882858340.html [14] https://www.aps-web.jp/blog/108440/ [15] https://www.orixrentec.jp/helpful_info/detail.html?id=27 [16] http://www.ic.is.tohoku.ac.jp/~swk/lecture/yaruodsp/dft.html [17] https://www.sda.nagoya-cu.ac.jp/kimoto/sda_lec_HP/Digital_Media_lec/Chap5/Chap5_Sec17.pdf [18] https://www.onosokki.co.jp/HP-WK/eMM_back/emm150.pdf [19] https://chaosmemo.com/entry/2025/02/15/143159 [20] https://www.aps-web.jp/blog/107988/※本ページは、AIの活用や研究に関連する原理・機器・デバイスについて学ぶために、個人的に整理・記述しているものです。内容には誤りや見落としが含まれている可能性もありますので、もしお気づきの点やご助言等ございましたら、ご連絡いただけますと幸いです。
※本ページの内容は、個人的な学習および情報整理を目的として提供しているものであり、その正確性、完全性、有用性等についていかなる保証も行いません。本ページの情報を利用したこと、または利用できなかったことによって発生した損害(直接的・間接的・特別・偶発的・結果的損害を含みますが、これらに限りません)について、当方は一切責任を負いません。ご利用は利用者ご自身の責任でお願いいたします。
 
							
											
 
                         
                        
