離散フーリエ変換の式( 1.離散化フーリエ変換の式の(1)式)と
これを逆フーリエ変換して得られる関数( f(nT) )は離散化ならびにΣでの和を有限個に制限する事で
元もとの関数や、それをフーリエ変換したものと異なる点が出てくるので、プログラムの例に
書いたプログラムを使用する際は注意が必要になります。それを以下で説明します。
以下の説明について詳しい事は離散フーリエ変換について記述した本(たとえば「光とフーリエ変換」)等を見てください。
まず高速フーリエ変換したい関数 f(x)[下図左] とそのフーリエ変換 F(ν)[下図右]が下図のようになっているとします。
次に関数f(x)を間隔 T で離散化するとそれをフーリエ変換したものはF(ν)が周期的(周期 1/T)に繰り返したものに
なります。
次に数値的に扱うためフーリエ変換のほうも離散化します。このとき離散間隔を 1/(N*T) にすると
逆変換した関数f(x)は周期N*T の周期関数になります。
フーリエ変換F(ν)の引数(周波数)νは、離散化されて ν = k/(N*T) (k は整数)という形になっていますが、
プログラムの例では、kの範囲として0から N-1 をとっているので
フーリエ変換F(ν)は、下図右のように ν = 0 〜 1/T の範囲(一周期分)をとることになります。
このとき逆変換された関数f(x)は、下図左のように 引数x(間隔Tで離散化)が、0 から N*T の範囲をとります
以上のようにこの図(左)の関数のフーリエ変換を計算したい場合は、上の図(左)のように
関数を書き換えてから計算する必要があります。
(さらにフーリエ変換したものも、上の図(右)とこの図(右)を比べてわかるように書き換える必要があります。)