この記事では、離散フーリエ変換(DFT)の公式と原理について入門者向けに紹介します。
離散フーリエ変換(DFT)の計算式
音楽や画像データはデジタルの周期信号です。
そのため、アナログの周期信号を前提とする「フーリエ変換」の計算式はそのまま利用できません。
つまり、フーリエ変換の元の式そのままではコンピュータで利用できません。
そこでコンピュータ上では「離散フーリエ変換(Discrete Fourier Transform)」と呼ばれる離散データ向けのフーリエ変換を使います。
離散周期信号
を離散フーリエ変換する式は次のようになります。
(1) 
ここで、
はサンプル数、
は回転子(位相回転因子)です。
一方、離散逆フーリエ変換の式は次のようになります。
(2) 
【計算例】離散フーリエ変換
次のようなアナログ周期信号
を用意します。
(3) ![]()
ここで
, Noiseは雑音とします。
次にアナログ周期信号
をンプル数
、サンプリング周波数
でデジタル周期信号
に変換します。
そして、デジタル周期信号
を離散フーリエ変換した結果は次の通りです。

右が入力信号
、左が振幅スペクトル
です。
振幅スペクトルを見ると、周波数10, 20のピークが大きいことがわかります。
これは、入力信号に周波数10と20の周波数成分が多く含まれていることを表しています。
このように、振幅スペクトルから入力信号の周波数成分を解析できます。
サンプリング間隔が0.01なのでサンプリング周波数は100Hzとなります。
高周波側(80, 90Hz)のスペクトルは、0Hz~50Hzの正の周波数(sin)に対して、-50Hz~0Hzの負の周波数(cos)に相当する成分です。
入力信号が実数の場合、低周波側と高周波側のスペクトルは対称になりますが、複素数の場合は非対称になります。
サンプリング周波数、ナイキスト周波数、エイリアシング
| 用語 | 概要 |
|---|---|
| サンプリング周波数 |
1秒間にサンプリングされるデータ数です。例えば、サンプリング周波数 |
| ナイキスト周波数 |
サンプリングしたときに表現できる、周波数の最大値をナイキスト周波数 |
| エイリアシング | サンプリング周波数 |

【高速フーリエ変換】ナイキスト周波数とサンプリング周波数の違いとエイリアシング
高速フーリエ変換(FFT)におけるナイキスト周波数とサンプリング周波数の違いとエイリアシングについてまとめました。
【実装例】C言語でDFT
https://algorithm.joho.info/signal/c-discrete-fourier-transform/
https://algorithm.joho.info/signal/c-inverse-fourier-transform/
https://algorithm.joho.info/signal/c-fourier-transform-power-spectrum/
関連ページ

【フーリエ変換】計算式の原理・意味
フーリエ変換の原理について入門者向けに紹介します。

【逆フーリエ変換】計算式の原理・意味
逆フーリエ変換(IFT)の公式と原理について入門者向けに紹介します。

【DFT】離散フーリエ変換の原理・計算式
この記事では、離散フーリエ変換(DFT)の公式と原理について入門者向けに紹介します。

高速フーリエ変換(FFT)の計算式の原理・意味
この記事では、高速フーリエ変換(FFT)の公式と原理について入門者向けに紹介します。

コメント