1章:高速フーリエ変換の基礎理論
- フーリエ変換一般式
フーリエ変換一般式を下記に示します。
また、フーリエ逆変換は
- 離散的フーリエ変換
N個のデータf(k)(k=0〜N-1)が与えられた時、N個の有限列G(n)をf(k)の離散的フーリエ変換といい次式によって定義される。
また、フーリエ逆変換は
(5.4)式正規化定数1/Nは(5.3)式と(5.4)式のどちらかにいれる。または平方根にして両方にいれて良い。
- 高速フーリエ変換
(5.3)式をつぎのように書く
N=2、すなわちデータ数が2個の場合(5.5)式は以下のようになる。
(5.7)式の演算においては、指数の項が消えて単純な和と差の項のみが残ります。
これが、データ数N=2の場合のフーリエ変換の重要な特徴であり、演算時間の短縮を可能としています。
また、(5.6)式のWNを回転子と呼びます。
- データ数N=8の場合の高速フーリエ変換
データ数がN=8の場合について考えてみます。 (5.5)式は以下のようになります。
ここで、nとkを2進数に分解します。
そして(5.10)式を以下のように変形します。
(5.13)式の右辺の和を外側から計算を実行します。
ここで
ゆえに
回転子の定義から
したがって
となります。これはN=2のDFTそのものです。
(5.13)式に(5.19)式を代入して
(5.20)式を得ます。
{ }の中のDTFをG1(n0,k1,k0)とおき、k1について整理すると
(5.21)式より
(5.22)式を得ます。これは、 G1(n0,k1,k0)に回転子W82k1n0をかけたものに対するN=2のDTFになっています。
(5.22)式を(5.20)式に代入して
(5.23)式を得ます。ふたたび{ }の中のDTFをG2(n0,n1,k0)とおき、また
(5.24)式より
- データ数N=16の場合の高速フーリエ変換
N=16のFFTの演算はさらに複雑になります。実用的にはNの数を大きく
設定する必要があります。
FFTをDFTに分解するには、
(5.5)式において、WNnkがどのように分解されるかを調べればよいのです。
いきなりNの数を一般化するのは飛躍を伴いますので、N=16のFFTについて検討します。
(5.26)式の性質を利用します。また、
(5.27)式を用いて整理します。Nとkを2進数で表して
(5.30)式において、アンダーバーの部分は下記ようにN=2のDFTに置き換えることができます。
残りの項は途中の結果に掛け合わされる回転子となります。
ここで、データ数NとDFT演算の段(m)とN=2のDFT演算子(kn)と回転子(arg)の関係を整理
してみましょう。
- 高速フーリエ変換の回転子表
高速フーリエ変換の回転子を整理すると以下の表になります。
- 高速フーリエ変換の回転子の規則性
上記表から回転子の規則性を見出します。
上記の規則性を利用すれば、より大きなデータ数Nに対するFFTが可能です。
2章:プログラミングの課題に行く。
トップページに戻る。