SFTPACK
"Slow" Fourier Transforms
SFTPACK
is a Python 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 FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
C8LIB,
a Python library which
implements certain elementary functions for double precision complex variables;
COSINE_TRANSFORM,
a Python library which
demonstrates some simple properties of the discrete cosine transform (DCT).
SINE_TRANSFORM,
a Python library which
demonstrates some simple properties of the discrete sine transform.
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.py,
prints a C8MAT.
-
c8mat_print_some.py,
prints some of a C8MAT.
-
c8mat_sft.py,
computes a "slow" forward or backward Fourier transform of a C8MAT.
-
c8mat_uniform_01.py,
returns a unit pseudorandom C8MAT.
-
c8vec_indicator.py,
returns the indicator vector as a C8VEC.
-
c8vec_print.py,
prints a C8VEC.
-
c8vec_print_part.py,
prints "part" of a C8VEC.
-
c8vec_sft.py,
computes a "slow" forward or backward Fourier transform of a C8VEC.
-
c8vec_uniform_01.py,
returns a unit pseudorandom C8VEC.
-
i4_modp.py,
returns the nonnegative remainder of integer division;
-
i4_wrap.py,
forces an integer to lie between given limits by wrapping.
-
r8vec_indicator1.py,
evaluates the 1-based indicator vector (1,2,3,...) as an R8VEC.
-
r8vec_permute_cyclic.py,
performs a cyclic permutation of an R8VEC.
-
r8vec_print.py,
prints an R8VEC.
-
r8vec_print_part.py,
prints "part" of an R8VEC.
-
r8vec_sct.py,
computes a "slow" forward or backward cosine transform of an R8VEC.
-
r8vec_sft.py,
computes a "slow" forward or backward Fourier transform of an R8VEC.
-
r8vec_sht.py,
computes a "slow" forward or backward Hartley transform of an R8VEC.
-
r8vec_sqct.py,
computes a "slow" forward or backward quarter cosine transform of an R8VEC.
-
r8vec_sqst.py,
computes a "slow" forward or backward quarter sine transform of an R8VEC.
-
r8vec_sst.py,
computes a "slow" forward or backward sine transform of an R8VEC.
-
r8vec_swt.py,
computes a "slow" forward or backward wavelet transform of an R8VEC.
-
r8vec_uniform_ab.py,
returns a scaled pseudorandom R8VEC.
-
timestamp.py,
prints the current YMDHMS date as a time stamp.
Examples and Tests:
You can go up one level to
the Python source codes.
Last revised on 27 June 2015.