History
When I first started working on image analysis software, I looked around on the internet for existing libraries that would do 2D FFTs. I came across the Intel Math Kernel Library and the Image Processing Library. However, just the ugly implementation of these libraries (I'm sure they're very efficient) prompted me to write something that was reasonably fast but also aesthetically beautiful and fast to implement. So I am spending time learning/writing some fast fourier transform functions, primarily for use in my astronomy image analysis software projects. I'm writing everything in C++ and I use the Standard Template Library (STL) extensively where possible. The source code in its most recent release state is downloadable below. I will add documentation on how to use these functions as I find some time in the next few days. The source code is provided under the GNU General Public License. Please read it and agree to it before downloading and using the source code.
FTTL In Action
Source
fttl.h (10.21.2001)
Links
Please contact me if you have any questions, feedback or contributions to make to this library. In the mean time, listed below are some other FFT related links that I have found useful:
- FFTW - an FFT library written in C with excellent documentation and support
- Philip Charlton's plans/design for an FFT library
- General Purpose FFT Package by Takuya Ooura
- GNU Scientific Library (GSL)
Task List
- Implement optimized routines for real->real transforms
- Investigate use of matrix transpose for 2D FFT
- Research video card programming APIs to see if any FFTs can be performed in video card hardware.
History
10.21.2001
- Tested all existing functions in class fourier_analyzer
- Added helper functions to do bit reversal and compute trigonometric recurrances
- Iterator-based 1D and 2D transform functions implemented and tested
- Matrix transpose function added but not fully implemented
07.15.2001
- Added 2D complex-complex FFT - needs testing though
- Moved everything into namespace fttl
- Moved transform functions into class fourier_analyzer
07.07.2001
- First release
- 1D complex-complex FFT tested and working