Updated on 

高速フーリエ変換(FFT)- 理論編

参考

FFTとは

DFTとの違い

前章のDFTで理解した公式、 では、変数 に対してそれぞれ操作を行うため、計算量は となってしまう。

これを、非常に巧妙なやり方で にまで落とすのがFFTである。

準備

回転因子

回転因子 を次のように定義する。 これは、複素数平面上の点 を原点 を中心に だけ回転させたものと考えられる。

また、DFTのときに用いた行列 (文字が混ざってややこしい)の成分 と表すことができる。

の方に乗っける部分の正負を逆転させたため、DFTの時とは の中身の符号が逆になっちゃってます。

回転因子の周期性

複素数平面上での回転を考えると、

回転因子の対称性

が偶数のとき、複素数平面上での位置関係から、

DFTの回転因子を用いた表記

のDFTを考える。入力ベクトル を出力ベクトル に変換する操作は以下のように表すことができる。

ここで、[[回転因子の周期性]]を用いると、

上の式はこのように変形される。

高速フーリエ変換の導出

前準備で作った行列が持つ性質をうまく利用して、計算量を落としていく。具体的には、奇数行と偶数行に分けて計算していく。

奇数行

縦線で区切ったときの左右が全く同じ値になっていることがわかる。したがって、 と変形できる。

偶数行

これを[[回転因子の対称性]]を用いて変形すると、