【DFT】離散フーリエ変換の原理・計算式

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

スポンサーリンク

離散フーリエ変換(DFT)の計算式

音楽や画像データはデジタルの周期信号です。
そのため、アナログの周期信号を前提とする「フーリエ変換」の計算式はそのまま利用できません。
つまり、フーリエ変換の元の式そのままではコンピュータで利用できません。

そこでコンピュータ上では「離散フーリエ変換(Discrete Fourier Transform)」と呼ばれる離散データ向けのフーリエ変換を使います。

離散周期信号f(n)を離散フーリエ変換する式は次のようになります。

(1)   \begin{eqnarray*} F(k)=\sum^{N-1}_{n=0}f(n)W^{kn}_N \end{eqnarray*}

ここで、Nはサンプル数、W_N=e^{-j\frac{2\pi}{N}}は回転子(位相回転因子)です。
一方、離散逆フーリエ変換の式は次のようになります。

(2)   \begin{eqnarray*} f(n)=\frac{1}{N}\sum^{N-1}_{k=0}F(k)W^{-kn}_N \end{eqnarray*}

スポンサーリンク

【計算例】離散フーリエ変換

次のようなアナログ周期信号f(t)を用意します。

(3)   \begin{eqnarray*} f(t)=sin(2\pi f_1t)+sin(2\pi f_2t)+Noise \end{eqnarray*}

ここでf_1=10, f_2=20, Noiseは雑音とします。
次にアナログ周期信号f(t)をンプル数N=256、サンプリング周波数f_s=100でデジタル周期信号f(n)に変換します。
そして、デジタル周期信号f(n)を離散フーリエ変換した結果は次の通りです。


右が入力信号f(n)、左が振幅スペクトル|F(k)|です。
振幅スペクトルを見ると、周波数10, 20のピークが大きいことがわかります。
これは、入力信号に周波数10と20の周波数成分が多く含まれていることを表しています。
このように、振幅スペクトルから入力信号の周波数成分を解析できます。

サンプリング間隔が0.01なのでサンプリング周波数は100Hzとなります。
高周波側(80, 90Hz)のスペクトルは、0Hz~50Hzの正の周波数(sin)に対して、-50Hz~0Hzの負の周波数(cos)に相当する成分です。
入力信号が実数の場合、低周波側と高周波側のスペクトルは対称になりますが、複素数の場合は非対称になります。

スポンサーリンク

サンプリング周波数、ナイキスト周波数、エイリアシング

用語 概要
サンプリング周波数f_s 1秒間にサンプリングされるデータ数です。例えば、サンプリング周波数f_sが100[Hz]ならば1秒間に100個の割合でデータを取得します。
ナイキスト周波数f_n サンプリングしたときに表現できる、周波数の最大値をナイキスト周波数f_nといいます。標本化定理よりサンプリング周波数f_sの半分となります。つまり、ナイキスト周波数f_nは正しく検出できる最大の周波数となります。例えば、サンプリング周波数f_s=100[Hz]なのでナイキスト周波数f_nは50[Hz]となります。高速フーリエ変換で周波数解析を正確に行うためには、入力信号の最大周波数の2倍以上のサンプリング周波数でサンプリングする必要があります。先程の数値例では入力信号の最大周波数が20[Hz]なので、サンプリング周波数は最低でも40[Hz]にすることになります。
エイリアシング サンプリング周波数f_sが不十分な場合(ナイキスト周波数f_n$より高い周波数の信号を標本化)、標本化した際に折り返し (エイリアシング) という現象を生じ、元信号に忠実に復元できません。
【高速フーリエ変換】ナイキスト周波数とサンプリング周波数の違いとエイリアシング
高速フーリエ変換(FFT)におけるナイキスト周波数とサンプリング周波数の違いとエイリアシングについてまとめました。
スポンサーリンク

【実装例】C言語でDFT

【C言語】離散フーリエ変換(DFT)
C言語を用いて、データを離散フーリエ変換(DFT)する方法について紹介します。
【C言語】離散逆フーリエ変換
C言語を用いて、離散逆フーリエ変換する方法について紹介します。
【C言語】フーリエ変換でパワースペクトルを計算
C言語を用いてフーリエ変換による周波数解析を行い、パワースペクトルを求める方法について紹介します。
スポンサーリンク

関連ページ

【フーリエ変換】計算式の原理・意味
フーリエ変換の原理について入門者向けに紹介します。
【逆フーリエ変換】計算式の原理・意味
逆フーリエ変換(IFT)の公式と原理について入門者向けに紹介します。
【DFT】離散フーリエ変換の原理・計算式
この記事では、離散フーリエ変換(DFT)の公式と原理について入門者向けに紹介します。
高速フーリエ変換(FFT)の計算式の原理・意味
この記事では、高速フーリエ変換(FFT)の公式と原理について入門者向けに紹介します。
信号処理
スポンサーリンク

コメント