[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
interesting FFT benchmarking!
From: |
John W. Eaton |
Subject: |
interesting FFT benchmarking! |
Date: |
Tue, 29 Jul 2003 11:30:19 -0500 |
On 29-Jul-2003, address@hidden <address@hidden> wrote:
| Anyway, what is interesting is that I couldn't believe how faster
| Matlab was to compute the Fourier transforms! Don't they use the
| same FFT algorithm?
I believe that the MathWorks uses FFTW, but since we can't see their
sources, we have no way of knowing whether they have made some
modifications.
With Octave, FFTW is optional (but will be used if it is present on
your system when Octave is built).
| Anybody has any idea of what is going on here? Octave transforms complex
| signals as fast as Matlab transforms real signals,
In Octave, all FFTW calculations are done on complex values. So if
you start with a real matrix, Octave must make a copy of it before it
can proceed. Look at the functions in oct-fftw.cc and the fourier
functions in CMatrix.cc and dMatrix.cc in the liboctave directory of
the Octave sources for other details.
Also, at least for the version of FFTW that Octave uses, the array of
complex values that FFTW uses is expected to have values stored in one
array with real and imaginary parts intermixed
real, imag, real, imag, ...
which is also how Octave stores complex values internally. But I
believe that Matlab stores the real and imaginary parts in separate
arrays. If so, a copy would need to be made to perform a complex
calculation.
jwe
-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.
Octave's home on the web: http://www.octave.org
How to fund new projects: http://www.octave.org/funding.html
Subscription information: http://www.octave.org/archive.html
-------------------------------------------------------------