SFTPACK
"Slow" Fourier Transforms
SFTPACK
is a MATLAB library which
carries out some "slow" Fourier transforms, that is, Fourier
transforms without the techniques that allow for very fast
computation.
The intention is to make the underlying calculation clear,
and to provide a simple check and comparison of timing and usage
for the fast calculations.
The fast Fourier transform is a highly efficient procedure. However,
the coding of the algorithm, and the conventions for indexing, ordering,
and normalization, can make it quite difficult to understand what is
being done, or even to see how to use the software correctly. This
means that a coding error or mistaken use can be undetected.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
SFTPACK is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
C8LIB,
a MATLAB library which
implements certain elementary functions for double precision complex variables;
FFT_OPENMP,
a FORTRAN90 program which
demonstrates the computation of a Fast Fourier Transform
in parallel, using OpenMP.
FFT_SERIAL,
a MATLAB program which
demonstrates the computation of a Fast Fourier Transform,
and is intended as a starting point for implementing a parallel version.
FFTPACK5,
a FORTRAN90 library which
implements the Fast Fourier Transform
by Paul Swarztrauber and Dick Valent;
HAAR,
a MATLAB library which
computes the Haar transform of data.
SINE_TRANSFORM,
a MATLAB library which
demonstrates some simple properties of the discrete sine transform.
WALSH,
a MATLAB library which
implements versions of the Walsh and Haar transforms.
WAVELET,
a MATLAB library which
does some simple wavelet calculations;
Reference:
-
William Briggs, Van Emden Henson,
The DFT: An Owner's Manual for the Discrete Fourier Transform,
SIAM, 1995,
ISBN13: 978-0-898713-42-8,
LC: QA403.5.B75.
-
Ralph Hartley,
A More Symmetrical Fourier Analysis Applied to Transmission
Problems,
Proceedings of the Institute of Radio Engineers,
Volume 30, 1942, pages 144-150.
Source Code:
-
c8mat_print_some.m,
prints some of a C8MAT.
-
c8mat_sftb.m,
computes a "slow" backward Fourier transform of a C8MAT.
-
c8mat_sftf.m,
computes a "slow" forward Fourier transform of a C8MAT.
-
c8mat_uniform_01.m,
returns a unit pseudorandom C8MAT.
-
c8vec_print_part.m,
prints part of a C8VEC.
-
c8vec_sftb.m,
computes a "slow" backward Fourier transform of a C8VEC.
-
c8vec_sftf.m,
computes a "slow" forward Fourier transform of a C8VEC.
-
c8vec_uniform_01.m,
returns a unit pseudorandom C8VEC.
-
i4_modp.m,
returns the nonnegative remainder of integer division;
-
i4_wrap.m,
forces an integer to lie between given limits by wrapping.
-
r8vec_permute_cyclic.m,
cyclically permutes an R8VEC;
-
r8vec_print_part.m,
prints "part" of an R8VEC.
-
r8vec_sct.m,
computes a "slow" cosine transform of an R8VEC.
-
r8vec_sftb.m,
computes a "slow" backward Fourier transform of an R8VEC.
-
r8vec_sftf.m,
computes a "slow" forward Fourier transform of an R8VEC.
-
r8vec_sht.m,
computes a "slow" Hartley transform of an R8VEC.
-
r8vec_sqctb.m,
computes a "slow" quarter cosine transform backward of an R8VEC.
-
r8vec_sqctf.m,
computes a "slow" quarter cosine transform forward of an R8VEC.
-
r8vec_sqstb.m,
computes a "slow" quarter sine transform backward of an R8VEC.
-
r8vec_sqstf.m,
computes a "slow" quarter sine transform forward of an R8VEC.
-
r8vec_sst.m,
computes a "slow" sine transform (forward or backward) of an R8VEC.
-
r8vec_uniform.m,
returns a scaled pseudorandom R8VEC.
-
timestamp.m,
prints the current YMDHMS date as a time stamp.
Examples and Tests:
-
sftpack_test.m, calls all the tests.
-
sftpack_test01.m,
tests R8VEC_SCT.
-
sftpack_test02.m,
tests R8VEC_SFTB and R8VEC_SFTF.
-
sftpack_test03.m,
tests R8VEC_SHT.
-
sftpack_test04.m,
tests R8VEC_SQCTB and R8VEC_SQCTF.
-
sftpack_test05.m,
tests R8VEC_SQSTB and R8VEC_SQSTF.
-
sftpack_test06.m,
tests R8VEC_SST.
-
sftpack_test07.m,
tests C8VEC_SFTB and C8VEC_SFTF.
-
sftpack_test08.m,
tests C8VEC_SFTB and C8VEC_SFTF.
-
sftpack_test11.m,
tests C8MAT_SFTB and C8MAT_SFTF.
-
sftpack_prb_output.txt,
the output file.
You can go up one level to
the MATLAB source codes.
Last revised on 21 December 2010.