■フーリエ解析(9): 1次元離散フーリエ変換を体験しよう (JavaScript版はこちら)

 関数 f(t)の1次元離散フーリエ変換(DFT)、離散フーリエ逆変換(IDFT)は次式で定義されます。
  F (k) = n=0N-1 f (n)W nk

  f (n) = (1/N)k=0N-1 F (k)W -nk

  ここで、
    N: 分割数
    W = e-j2π/N

 次のアプレットは、各種の関数 f(t)の離散フーリエ変換を行い、結果 F(k)をグラフおよび表形式にして表示します。
 グラフでは、F(k)の実数部が青、虚数部が緑で表示されます。

 「任意折線」、「任意曲線」を選択した場合は通過点を左から順にクリックして入力します(但し、横軸:0〜T、縦軸:0〜1 の範囲)。


 「逆変換」ボタンを押すと、F(k)から f(t) へ逆変換します。但し、逆変換は指定された項数 K(≦ N)を低周波成分側からとって、次式で計算されます(直流成分+K項)。
  f (n) = (1/N)k=0K/2 F (k)W -nk + (1/N)k=N-K/2N-1 F (k)W -nk

・K = N の時は完全に元のサンプル値に逆変換されますが、K < N の時は誤差がでます。
・f(n)が実数値のとき、任意のk(0<k<N)に対して F(N-k) = F(k)、即ち両者は複素共役の関係にあります。
 例えば N = 20のとき、F(17) = F(3)となり、F(17)とF(3)の実数部は等しく、虚数部は互いに絶対値が等しく異符号となります。
 これは定義式より以下のようにして証明できます。
  F (k) = n=0N-1 f (n)W nk

      = n=0N-1 f (n)[cos(2πnk/N) - j sin(2πnk/N)]

  F(N-k) = n=0N-1 f (n)[cos(2πn(N-k)/N) - j sin(2πn(N-k)/N)]

      = n=0N-1 f (n)[cos(-2πnk/N) - j sin(-2πnk/N)]

      = n=0N-1 f (n)[cos(2πnk/N) + j sin(2πnk/N)]

      = F(k)

(注)本アプレットで表示されるF(k)値は上式で計算される値を分割数Nで割った値です。
フーリエ解析(10): 2次元離散フーリエ変換を体験しよう 〜 画像データ処理の例 〜
ホーム