Update of /cvsroot/audacity/lib-src/libnyquist/nyquist/ffts
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv8506/ffts
Added Files:
README.txt abstract
Log Message:
Updating to Nyquist v3.03.
--- NEW FILE: abstract ---
Subject: FFT for RISC 2.0
To: [email protected]
Enclosure: FFTs-for-RISC-2.sit
Enclosed is a stuffit archive of version 2.0 of my 'C' source code fft library.
Very-Fast Fourier Transform routines. Routines are provided for real and
complex
forward and inverse 1d and 2d fourier transforms and 3d complex forward and
inverse ffts.
I coded these to optimize execution speed on Risc processors like the PowerPC.
All fft sizes must still be a power of two.
Test programs based on the Numerical Recipes in C routines are provided.
Also included are some simple applications with source code which time the FFTs.
See the enclosed read me file for more information.
Revision version 2.0:
Rewrote code to rely more on compiler optimization (and be less
ugly.)
Removed restrictions on too small or too large ffts.
Provided a library extension that manages memory for cosine and
bit
reversed counter tables.
Added 2d and 3d complex and 2d real ffts.
Speeded routines for data too large to fit in primary cache.
Changed most testing from Matlab to Numerical Recipes based
(because its cheaper.)
Changed call parameters (watch out.)
Revision version 1.21:
line 126 of rfftTest.c corrected.
Revisions version 1.2:
I now store the Nyquest point of the real transform where the 0 for the
DC term's
imaginary part used to be. !! WATCH OUT FOR THIS IF YOU USE rfft !!
Added the real inverse Fourier transform.
Revisions version 1.1:
Re-arranged to put fft routines in a shared library and changed source
file name to fftlib.c.
Removed some ugly optimizations that are no longer needed for
CodeWarrier.
This code is public domain, do anything you want to with it.
[Moderators- This file should replace ffts-for-risc-121-c.hqx and can be
included on any CD]
--- NEW FILE: README.txt ---
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) [email protected]
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.
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Audacity-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/audacity-cvs