時間領域で離散化した信号\(f[n]\)を次の様に定義する:
\begin{equation*}
f[n] = f(nt_{s}) \quad n = 0,...,N-1
\end{equation*}
ここで、\(N\)はサンプリング個数である。重要な仮定として、\(f(t)\)は\(N\)このサンプリング期間で周期的であるとする。即ち、\(f(t)\)の周期を\(T\)とおくと、
\begin{equation*}
T = Nt_{s}
\end{equation*}
が成立する。更に、周波数領域についても\(\omega_{s}\)を\(N\)分割
し、
\begin{equation*}
\omega_{k} = \frac{\omega_{s}}{N} k = \frac{2\pi}{Nt_{s}}k \quad k = 0,...,N-1
\end{equation*}
として、周波数領域で離散化した信号\(F[k]\)を次の様に定義する:
\begin{equation*}
F[k] = F(\omega_{k}) \quad k = 0,...,N-1
\end{equation*}
分割の個数\(N\)が時間領域と周波数領域で異なる場合、変換対が対称にならないので高速フーリエ変換の時に不都合が生じる。
離散化の仮定のもとで、フーリエ変換は次の様に計算できる:
\begin{equation*}
F[k] = \int_{-\infty}^{\infty} f(t) \exp(-j\omega_{k}t) dt = \int_{-\infty}^{\infty} f(t) \exp\left(-j\frac{2\pi k}{Nt_{s}} t \right) dt
\end{equation*}
\(f(t)\)は周期\(T\)で繰り返すので、積分範囲は1周期分とする(なぜ一周期か:フーリエ係数の仮定から。係数は1周期の積分で良い。三角関数の完全性を見よ):
\begin{equation*}
F[k] = \int^{T}_{0} f(t) \exp \left(-j \frac{2\pi k}{Nt_{s}} t \right)dt
\end{equation*}
\(t = nt_{s}\)と変数変換すると(\(n\)を積分変数とする)、
\begin{equation*}
F[k] = t_{s}\int^{N}_{0} f(nt_{s}) \exp \left(-j \frac{2\pi k}{N} n\right)dn
\end{equation*}
この積分は、次の和で近似できる。
\begin{equation*}
F[k] \approx t_{s}\sum^{N-1}_{n=0} f(nt_{s}) \exp \left(-j \frac{2\pi k}{N} n\right) = t_{s} \sum^{N-1}_{n=0} f[n] \exp \left(-j \frac{2\pi nk}{N} \right)
\end{equation*}
この式が離散フーリエ変換の式となる。逆変換については、複素フーリエ級数
\begin{equation*}
\left\{ \begin{array}{l}
f(nt_{s}) = \displaystyle \sum_{k=-\infty}^{\infty} c_{n} \exp(j\omega_{k}kn t) \\
c_{n} = \displaystyle \frac{1}{T} \int^{T}_{0} f(t) \exp(-j n\omega_{k} t) dt
\end{array} \right.
\end{equation*}
から、\(c_{n}\)を消去すると、
\begin{align*}
f(nt_{s}) = \sum_{k=-\infty}^{\infty} \left\{ \frac{1}{T} \int^{T}_{0} f(t) \exp\left( -j \frac{2\pi kt}{T} \right) dt \right\} \exp\left( \frac{j2\pi k}{T} nt_{s} \right) \\
f(nt_{s}) = \frac{\omega_{s}}{2 \pi N} \sum_{k=-\infty}^{\infty} F[k] \exp\left(j \frac{2\pi nk}{N} \right)
\end{align*}
\(F[k]\)の周期は\(\omega_{s}\)なので、1周期分は\(k = 0,...,N-1\)となる。再び1周期分のみを考えると、
\begin{equation*}
f[n] = \frac{\omega_{s}}{2 \pi N} \sum_{k=0}^{N-1} F[k] \exp\left(j \frac{2\pi nk}{N} \right)
\end{equation*}
この式が離散フーリエ逆変換の式となる。変換の式をまとめると、
\begin{equation*}
\left\{ \begin{array}{l}
\displaystyle F[k] = t_{s} \sum^{N-1}_{n=0} f[n] \exp \left(-j \frac{2\pi nk}{N} \right) \\
\displaystyle f[n] = \frac{\omega_{s}}{2 \pi N} \sum_{k=0}^{N-1} F[k] \exp\left(j \frac{2\pi nk}{N} \right)
\end{array} \right.
\end{equation*}
これがフーリエ変換対となり、一方に他方を代入するとちゃんと逆に戻る事が確認できる:
\begin{equation*}
\begin{split}
f[n] &= \frac{\omega_{s}}{2\pi N}\sum_{k=0}^{N-1}F[k]\exp\left(j\frac{2\pi nk}{N}\right) \\
&= \frac{2\pi t_{s}}{2\pi t_{s}N}\sum_{k=0}^{N-1}\left\{ \sum^{N-1}_{n^\prime=0} f[n^\prime] \exp \left(-j \frac{2\pi n^\prime k}{N} \right) \right\} \exp\left(j\frac{2\pi nk}{N}\right) \\
&= \frac{1}{N} \sum_{n^{\prime}=0}^{N-1} f[n^\prime] \sum_{k=0}^{N-1} \exp\left[ -j (n-n^\prime) \frac{2\pi k}{N} \right]
\end{split}
\end{equation*}
\(\sum_{k=0}^{N-1} \exp\left[ -j (n-n^\prime) \frac{2\pi k}{N} \right]\)の値ついては\(k\)の積分
\begin{equation*}
\int^{N}_{0} \exp\left[ -j (n-n^\prime) \frac{2\pi k}{N} \right] dk
\end{equation*}
と考えれば、\(n=n^\prime\)の時は明らかに\(N\)であり、残りの\(n \neq n^\prime\)の時は
\begin{equation*}
\begin{split}
\int^{N}_{0} \exp\left[ -j (n-n^\prime) \frac{2\pi k}{N} \right] dk
&= - \frac{1}{j(n-n^\prime)\frac{2\pi}{N}}
\left[ \exp\left[ -j(n-n^\prime)\frac{2\pi k}{N} \right] \right]_{0}^{N} \\
&= - \frac{1}{j(n-n^\prime)\frac{2\pi}{N}} \left\{ \exp[-j2(n-n^\prime)\pi] - \exp(0)\right\} \\
&= 0
\end{split}
\end{equation*}
となるので、最終的に
\begin{equation*}
\frac{1}{N} \sum_{n^{\prime}=0}^{N-1} f[n^\prime] \sum_{k=0}^{N-1} \exp\left[ -j (n-n^\prime) \frac{2\pi k}{N} \right] = \frac{1}{N} f[n] N = f[n]
\end{equation*}
を得る。
また\(t_{s}=1\)とおくと、\(\omega_{s} = 2\pi\)となって、DFTのよく見る変換式が得られる:
\begin{equation*}
\left\{ \begin{array}{l}
\displaystyle F[k] = \sum^{N-1}_{n=0} f[n] \exp \left(-j \frac{2\pi nk}{N} \right) \\
\displaystyle f[n] = \frac{1}{N} \sum_{k=0}^{N-1} F[k] \exp\left(j \frac{2\pi nk}{N} \right)
\end{array} \right.
\end{equation*}
これらの式を実装するのは簡単である。じゃあ、実装しようか…(暗黒微笑)
(デルタ関数から導く方法だと、どうしても正規化定数\(1/N\)が出てこない。正規化定数は本質的では無いとかいうけど、計算上は無視できない。)