FFTの(反対の)高速フーリエ変換機能

セクション: または分解変形する

使用法

高速フーリエ変換の技術を使用してベクトルの分離したフーリエ変換(DFT)を計算する。 使用のための一般的な構文法はある
  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はデフォルトで利用できる。

機能Internals

出力はを経て計算される

反対DFTのために、計算は類似して、議論にDFTと同じ意味がある:

FFTはhttp://www.netlib.orgのnetlibから利用できるFFTPackの図書館を使用して計算される。 一般的に、FFTのための計算の費用は(最悪の場合で) o (n^2)である。 但しnが合成なら、ように考慮され

それからDFTは計算することができる

操作。 nが2の力なら、FFTはo (n log_2 n)で計算することができる。 反対FFTのための計算は同一である。

次のコードは正弦信号のための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キャッシング 無料ホームページ ブログ blog

FC2キャッシング 無料ホームページ ブログ blog
inserted by FC2 system