■フーリエ解析(8): 離散フーリエ変換(DFT)

フーリエ変換は連続関数を対象として定義されていますが、コンピュータでフーリエ変換の計算をする場合には、これを離散化した離散フーリエ変換(Discrete Fourier Transform:DFT)を用います。

フーリエ変換とフーリエ逆変換の定義式は次のとおりです。
  F(ω) = -∞ f (t)e-jωt dt  ・・・(式1-1)

  f (t) = 1/(2π)-∞ F(ω)e jωt  ・・・(式1-2)

 ●1次元離散フーリエ変換
離散フーリエ変換では、関数 f(t)はある領域[0, T]内でのみ値をとり、領域外ではゼロとします。

区間[0, T]をN等分し、標本化されたN個の1次元信号(関数値)をf(n) [n = 0, 1, 2, .., N-1]、標本化のサンプルタイムを冲(=T/N)とします。 また、周期Tに対する角振動数をω0(=2π/T)とします。

ω = kω0に対するフーリエ変換は、
  F (ω) = -∞ f (t)e-jkω0t dt

      = 0T f (t)e-j2πkt/T dt

      ≒ n=0N-1 f (n)e-j2πnk/N

ここで、W = e-j2π/N と置き、上の近似値を F(k) として、
  F (k) = (T/N)n=0N-1 f (n)W nk
を1次元離散フーリエ変換と呼んでいます。
 ●1次元離散フーリエ逆変換(IDFT)
上と同様の表記をすると、逆変換は
  f(t) = 1/(2π)-∞ F(ω)e jωt

    ≒ 1/(2π)k=0N-1 F (k)e j2πnk/N 刄ヨ

  (刄ヨ = ω0 = 2π/T であるので)
    ≒ 1/(2π)k=0N-1 F (k)e j2πnk/N ω0

    ≒ 1/(2π)k=0N-1 F (k)e j2πnk/N 2π/T

    ≒ (1/T)k=0N-1 F (k)e j2πnk/N

この近似値を f(n) として、
  f (n) = (1/T)k=0N-1 F (k)W -nk
を1次元離散フーリエ逆変換と呼んでいます。

通常は変換式の前の係数を次のようにしたものがよく使用されます。
  F (k) = n=0N-1 f (n)W nk    ・・・(式2-1)

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

   ここで、 W = e-j2π/N
 

(注)関数f(t)は領域[0, T]内でのみ値をとり、領域外ではゼロとしましたが、(式2-2)で計算されるf(n)はn = N(あるいは、t = T)の周期関数と見なせることがわかります。
 ●2次元離散フーリエ変換
1次元離散フーリエ変換は、画像データのような2次元信号 f(x, y) に対しても拡張できます。
2次元離散フーリエ変換とその逆変換は次式で定義されます。
  F (k, l) = x=0M-1y=0N-1 f (x, y)WM xk WN yl  ・・・(式3-1)

  f (x, y) = (1/(MN))k=0M-1l=0N-1 F (k, l)WM -xkWN -yl   ・・・(式3-2)

  ここで、
    WM = e-j2π/M,     WN = e-j2π/N
 
[参考文献]末松良一、他: 画像処理工学、コロナ社(2001)

フーリエ解析(9): 1次元離散フーリエ変換を体験しよう
ホーム