セクション: または分解変形する
y = fft (x、n、d)
xが
数タイプのn次元
配列であるところ。 整数のタイプはDFTの計算前に二重
タイプに促進される。 議論nは
FFTの長さであり、dは
DFTを取るため次元である。 |n|が次元d
に沿うx
の長さより大きければ、xは
DFTの計算前に(ゼロを付けることによって)ゼロパッドを入れられる。 nが
ある特定の次元に沿うx
の長さより小さければ、xは
長さn.
に(端に要素を取除くことによって)省略される。 dが
省略されれば、DFTはx.
の最初の非独身者次元に沿って取られる。 nが
省略されれば、DFTの長さは次元d.
に沿うx
の長さのマッチに選ばれる。
Linuxの造りのFFTサポートがコンパイル時でFFTWの図書館の供給を要求することに注目しなさい。 Windowsおよびmac os Xで、単一および倍精度FFTsはデフォルトで利用できる。
反対DFTのために、計算は類似して、議論にDFTと同じ意味がある:
FFTはhttp://www.netlib.org
のnetlibから利用できるFFTPackの図書館を使用して計算される。 一般的に、FFTのための計算の費用は(最悪の場合で) o (n^2)
である。 但しnが
合成なら、ように考慮され
それからDFTは計算することができる
操作。 nが
2の力なら、FFTはo (n log_2 n)
で計算することができる。 反対FFTのための計算は同一である。
--> t = linspace (0,2*pi、128); --> x = Cos (15*t); --> y = fft (x); -->プロット(tのABS (y));
生じるプロットは次のとおりである:
FFTはまた異なった次元に沿って、そしてパッディングや切り捨てと取ることができる。 次に次の例は各コラムと各列に沿って計算されるフーリエ変換を示したものだ。
--> a = [2,5; 3,6] a = 2 5 3 6 -->実質(fft (a、[]、1)) 答え= 5 11 -1 -1 -->実質(fft (a、[]、2)) 答え= 7 -3 9 -3
フーリエはまたnの
議論を使用してパッドを入れることができる変形する。
これはフーリエ変換を取る前にゼロの信号にパッドを入れる。 時間領域のゼロパッディングは頻度補入で起因する。
次の例は(緑の円の)パッディングとの(赤線)そしてのない脈拍のFFTを(10物から成っている)示したものだ。
-->デルタ(1: 10) = 1; -->プロット((0: 実質255) /256*pi*2 (fft (デルタ、256))、「r-」); -->把握 -->プロット((0: 実質9) /10*pi*2 (fft (デルタ))、「行きなさい」);
生じるプロットは次のとおりである:
FC2 | |||
FC2 | |||