summaryrefslogtreecommitdiff
path: root/ffts/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'ffts/README.txt')
-rw-r--r--ffts/README.txt70
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.