詳細
一次元,2の整数乗個のデータの離散 Fourier 変換, コサイン変換,サイン変換等を行います. このパッケージには C と Fortran の FFT コードが含まれます.
パッケージ
- fft.tgz (71KB) updated: 2006/12/28 (Fixed a minor bug)
- fft.zip (75KB) updated: 2006/12/28 (Fixed a minor bug)
内容
fft4g.c : FFT パッケージ in C - 高速版 (基数 4, 2) fft4g.f : FFT パッケージ in Fortran - 高速版 (基数 4, 2) fft4g_h.c : FFT パッケージ in C - 簡易版 (基数 4, 2) fft8g.c : FFT パッケージ in C - 高速版 (基数 8, 4, 2) fft8g.f : FFT パッケージ in Fortran - 高速版 (基数 8, 4, 2) fft8g_h.c : FFT パッケージ in C - 簡易版 (基数 8, 4, 2) fftsg.c : FFT パッケージ in C - 高速版 (Split-Radix) fftsg.f : FFT パッケージ in Fortran - 高速版 (Split-Radix) fftsg_h.c : FFT パッケージ in C - 簡易版 (Split-Radix) readme.txt : readme file sample1/ : サンプルプログラム1 - テスト用 Makefile : Makefile (gcc, cc 用) Makefile.f77 : Makefile (Fortran 用) testxg.c : "fft*g.c" のテスト testxg.f : "fft*g.f" のテスト testxg_h.c : "fft*g_h.c" のテスト sample2/ : サンプルプログラム2 - ベンチマーク用 Makefile : Makefile (gcc, cc 用) Makefile.pth : Makefile (マルチスレッド用) pi_fft.c : π(= 3.1415926535897932384626...) の計算プログラム
- "fft*g.c" に対するベンチマークテスト用ファイルの違い
簡易版は作業用配列を一切使いません. 高速版は三角関数表などの作業用配列を使います. 高速版は簡易版に比べて高速かつ高精度. 高速版の仕様はすべて同じ.
パッケージ内のルーチン
cdft() : 複素離散 Fourier 変換 rdft() : 実離散 Fourier 変換 ddct() : 離散コサイン変換 ddst() : 離散サイン変換 dfct() : RDFT のコサイン変換 (実対称 DFT) dfst() : RDFT のサイン変換 (実反対称 DFT) 使用法
簡潔な使用法は,パッケージプログラムのコメントにあります. 具体例は,テストプログラムを参照して下さい.
詳細
二次元または三次元の2の整数乗個のデータの離散 Fourier 変換, コサイン変換,サイン変換等を行います.
パッケージ
- fft2d.tgz (53KB) updated: 2006/12/28 (Fixed a minor bug)
- fft2d.zip (60KB) updated: 2006/12/28 (Fixed a minor bug)
内容
alloc.c : 配列の動的確保ルーチン in C fft4f2d.c : 二次元 FFT パッケージ in C - Version I fft4f2d.f : 二次元 FFT パッケージ in Fortran - Version I fftsg.c : 一次元 FFT パッケージ in C - 基数 Split-Radix fftsg.f : 一次元 FFT パッケージ in Fortran - 基数 Split-Radix fftsg2d.c : 二次元 FFT パッケージ in C - Version II fftsg2d.f : 二次元 FFT パッケージ in Fortran - Version II fftsg3d.c : 三次元 FFT パッケージ in C fftsg3d.f : 三次元 FFT パッケージ in Fortran shrtdct.c : 8x8, 16x16 DCT パッケージ - ddct2d() よりも高速 readme2d.txt : readme file sample2d/ : サンプルプログラム - テスト用 Makefile : Makefile (gcc, cc 用) Makefile.f77 : Makefile (Fortran 用) Makefile.pth : Makefile (マルチスレッド用) fft4f2dt.c : "fft4f2d.c" のテストプログラム fft4f2dt.f : "fft4f2d.f" のテストプログラム fftsg2dt.c : "fftsg2d.c" のテストプログラム fftsg2dt.f : "fftsg2d.f" のテストプログラム fftsg3dt.c : "fftsg3d.c" のテストプログラム fftsg3dt.f : "fftsg3d.f" のテストプログラム shrtdctt.c : "shrtdct.c" のテストプログラム ファイルの違い
Version II は一次元 FFT を用いるが,Version I は単独で使用可能. 通常 Version II の方が高速.
パッケージ内のルーチン
cdft2d() : 二次元 複素離散 Fourier 変換 rdft2d() : 二次元 実離散 Fourier 変換 ddct2d() : 二次元 離散コサイン変換 ddst2d() : 二次元 離散サイン変換
cdft3d() : 三次元 複素離散 Fourier 変換 rdft3d() : 三次元 実離散 Fourier 変換 ddct3d() : 三次元 離散コサイン変換 ddst3d() : 三次元 離散サイン変換
Copyright Takuya OOURA, 1996-2001
このソースコードはフリーソフトです.商用目的を含め,このコードの使用, コピー,修正及び配布は自由に行って結構です.ただし,このコードの修正を 行った場合は,そのことを明記してください.