FFTを理解してもらいたい,というか,自分がわかりやすく説明できるようになりたいので,しつこくFFTの話をやっていきます.今回は,時系列の長さでやっていきます.
基本事項
N=16でFFTの計算式を確認
で,時系列を
として,FFTの計算過程を見ていきます.
1回目の分割
周波数の偶数番 では,
です.ここで,の計算が共通なので,
として,について足し算すれば,全体で足し算する回数が減ります.
に添え字がたくさんつきますが,計算の確認のため記号を付けておきます.上付き添え字の
は偶数番周波数の置き換え (足し算),上付き添え字の
は奇数番周波数の置き換え (引き算&回転因子)を表すことにします.
周波数の奇数番 では,
です.ここでは,の計算が共通なので,
とします.
上半分に偶数番目の周波数,下半分に奇数番目の周波数をならべて書くと,
となります.ここで,右辺について気づくことは,上半分と下半分のそれぞれで,のときのフーリエ変換になっていると言うことです.このフーリエ変換を
と表し,さらに,偶数番,奇数番で分割すると,
となります.
3回目と4回目の分割
ちょっと込み入ってきたので,自信がなくなってきましたが,ここでも,共通部分を,
と置きます.さらにさらに,のフーリエ変換を
と表せば,
のようになります.この変形をして,さらに,これまでと同様のルールでに添え字をつけて記述すれば,
となりました.最後は,順番に並べて書きました.
ここまでの計算で何がやりたかったのか
Cooley-Tukey型FFTで何をやっているかと言えば,周波数の偶数番と奇数番を分割を繰り返しているだけです.この分割というのは,それぞれ,
- 足し算を計算する
- 引き算して回転因子をかける
に対応します.そして,最後まで,この2パターンの計算を繰り返しました.
上の変形では最終的に,
という表現がえられました.
の上付き添え字の部分
は,周波数の偶数番と奇数番の分割で,どちら側だったかという順番を表しています.
例えば,に登場する
は,1回目偶数(0),2回目偶数(0),3回目偶数(0),4回目偶数(0)だったということです.
に登場する
は,1回目奇数(1),2回目偶数(0),3回目奇数(1),4回目偶数(0)だったということです.
そして,に登場する
は,
を2進数にする計算と同じことをしています.ただし,0, 1の値の並べ方が右から左ではなく,左から右になります.これが,なぜ,ビット反転をするとうまくいくのかの理由です.
今回のお話は,前回の記事で紹介したバタフライダイアグラムを,式で表してみたということです.下の図のようなバタフライダイアグラムの構造と今回の結果の関係が見えてくるでしょうか.図の中に書いた0, 1と,の上付き添え字の部分
との対応を考えてみてください.

まとめ
Cooley-Tukey型FFTについては,いろいろな説明の仕方があります.例えば,行列を使った説明があります.私は,行列を使った説明はわかりやすいと思います.
しかし,私は個性的な説明を試みてみたかったので,今回は,周波数の分割をすべて書いてみるというアプローチをしました.数式が嫌いな人が多いので,わかりにくくなったかもしれません.私としては,数式からイメージがわいてくるので,知識の整理には役立ちました.