diff options
Diffstat (limited to 'ffts/README.txt')
-rw-r--r-- | ffts/README.txt | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/ffts/README.txt b/ffts/README.txt new file mode 100644 index 0000000..d3d8192 --- /dev/null +++ b/ffts/README.txt @@ -0,0 +1,70 @@ +This directory contains a public domain FFT library which was optimized +for speed on RISC processors such as the PowerPC. All ffts +use single precision floats, for double precision just use a +global search and replace to change float to double in all +source files. +Codewarrier Pro 1.0 project files are also supplied. + +** Warning ** Perform rigorous testing to +your own standards before using this code. + + (John Green) green_jt@vsdec.npt.nuwc.navy.mil + +files: + fftTiming +Application to time complex ffts + + rfftTiming +Application to time real ffts + +// Directory: fft libraries + +files: + + fftext.c +Library of in-place fast fourier transforms. Contains forward +and inverse complex and real transforms. The real fft's expect the +frequency domain data to have the real part of the fsamp/2 bin (which +has a 0 imaginary part) to be stored in the location for the imaginary +part of the DC bin (the DC bin of real data is also strictly real.) +You must first call an initialization routine fftInit before calling +the fft computation routines ffts, iffts, rffts and riffts. +The init routines malloc the memory to store the cosine and +bit reversed counter tables as well as initializing their values. + + fftlib.c +Lower level library of in-place fast fourier transforms. Same as fftext.c but you +need to manage the mallocs for the cosine and bit reversed tables yourself. + + + fft2d.c +Library of 2d and 3d complex and 2d real in-place fast fourier transforms. +The init routine fft2dInit must be called before using the 2d routines and +fft3dInit must be called before using the 3d routines. These init routines +will also call the appropriate 1d init routines in fftext.c + + matlib.c +Matrix transpose routines used by fft2d.c and complex vector multiply +for forming the product of two spectra. + + dxpose.c +Double precision matrix transpose for quick single precision complex transposing + +// Directory: timing code +This directory contains the source to fftTiming and rfftTiming + +// Directory: Numerical Recipes testing +This directory contains files used to test the various fft routines using +the Numerical Recipes in C routines as a baseline. These routines can be purchased +in PeeCee (after expanding you can move them to a Mac) format from: +http://cfata2.harvard.edu/numerical-recipes/ +Unfortunately Numerical Recipes defines its forward and inverse fft's backwards. +For complex fft's I just use their inverse fft as a forward one, but for real ffts +their forward fft followed by my inverse fft reverses the data. They also have ugly matrix +and tensor data types and start their indices with one, Fortran style, but these are +minor annoyances. + +// Directory: Matlab testing +This directory contains files to test fast 1d and 2d convolution with Matlab used to +verify the results. An example of using Matlab to test the fft library routines is +also given for the 2d real fft. |