Jump to content

Bailey's FFT algorithm: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Resolving Category:Harv and Sfn no-target errors. Details must match cite exactly
→‎Sources: added source
Line 23: Line 23:
* {{cite book | title = Lecture Notes in Computer Science | last1 = Hart | first1 = William B. | last2 = Tornaría | first2 = Gonzalo | last3 = Watkins | first3 = Mark | chapter = Congruent Number Theta Coefficients to 10<sup>12</sup> | date = 2010 | pages = 186–200 | publisher = Springer Berlin Heidelberg | issn = 0302-9743 | eissn = 1611-3349 | doi = 10.1007/978-3-642-14518-6_17 | url = }}
* {{cite book | title = Lecture Notes in Computer Science | last1 = Hart | first1 = William B. | last2 = Tornaría | first2 = Gonzalo | last3 = Watkins | first3 = Mark | chapter = Congruent Number Theta Coefficients to 10<sup>12</sup> | date = 2010 | pages = 186–200 | publisher = Springer Berlin Heidelberg | issn = 0302-9743 | eissn = 1611-3349 | doi = 10.1007/978-3-642-14518-6_17 | url = }}
* {{cite journal | last1 = Al Na'mneh | first1 = Rami | last2 = Pan | first2 = W. David | title = Five-step FFT algorithm with reduced computational complexity | journal = Information Processing Letters | date = March 2007 | volume = 101 | issue = 6 | pages = 262–267 | issn = 0020-0190 | doi = 10.1016/j.ipl.2006.10.009 | pmid = | url = }}
* {{cite journal | last1 = Al Na'mneh | first1 = Rami | last2 = Pan | first2 = W. David | title = Five-step FFT algorithm with reduced computational complexity | journal = Information Processing Letters | date = March 2007 | volume = 101 | issue = 6 | pages = 262–267 | issn = 0020-0190 | doi = 10.1016/j.ipl.2006.10.009 | pmid = | url = }}
* {{cite book | first1 = Jörg | last1 = Arndt | date = 1 October 2010 | title = Matters Computational: Ideas, Algorithms, Source Code | publisher = Springer Science & Business Media | pages = 438–439 | isbn = 978-3-642-14764-7 | oclc = 1005788763 | chapter-url = https://books.google.com/books?id=HsRHS6u7e80C&pg=PA438 | chapter = The Matrix Fourier Algorithm (MFA)}}
{{math-stub}}
{{math-stub}}
[[Category:FFT algorithms]]
[[Category:FFT algorithms]]

Revision as of 16:20, 29 May 2023

Bailey algorithm (4-step version) for a 16-point FFT

The Bailey's FFT (also known as a 4-step FFT) is a high-performance algorithm for computing the fast Fourier transform (FFT). This variation of the Cooley–Tukey FFT algorithm was originally designed for systems with hierarchical memory common in modern computers (and was the first FFT algorithm in this so called "out of core" class). The algorithm treats the samples as a two dimensional matrix and executes short FFT operations on the columns and rows of the matrix, with a correction multiplication by "twiddle factors" in between.[1]

The algorithm got its name after an article by David H. Bailey, FFTs in external or hierarchical memory, published in 1989. In this article Bailey credits the algorithm to W. M. Gentleman and G. Sande who published their paper, Fast Fourier Transforms: for fun and profit, some twenty years earlier in 1966.[2] The algorithm can be considered a radix- FFT decomposition.[3]

Here is a brief overview of how the "4-step" version of the Bailey FFT algorithm works:

  1. The data (in natural order) is first arranged into a matrix.
  2. Each column of a matrix is then independently processed using a standard FFT algorithm.
  3. Each element of a matrix is multiplied by a correction coefficient.
  4. Each row of a matrix is then independently processed using a standard FFT algorithm.

The result (in natural order) is read column-by-column. Since the operations are performed column-wise and row-wise, step 2 and 4 (and reading the result) might include a matrix transpose to rearrange the elements in a way convenient for an FFT processing. The algorithm resembles a 2-dimensional FFT, a 3-dimensional (and beyond) extensions are known as 5-step FFT, 6-step FFT, etc.[1][4]

The Bailey FFT is typically used for computing DFTs of large datasets, such as those used in scientific and engineering applications. The Bailey FFT is a very efficient algorithm, and it has been used to compute FFTs of datasets with billions of elements (when applied to the number-theoretic transform, the datasets of the order of 1012 elements were processed in mid-2000s[5]).

References

Sources

  • Bailey, D. H. (March 1989). "FFTs in external or hierarchical memory" (PDF). Journal of Supercomputing. 4 (1). ACM Press: 23–35. doi:10.1145/76263.76288.
  • Frigo, M.; Johnson, S.G. (February 2005). "The Design and Implementation of FFTW3". Proceedings of the IEEE. 93 (2): 216–231. doi:10.1109/JPROC.2004.840301. ISSN 0018-9219.
  • Hart, William B.; Tornaría, Gonzalo; Watkins, Mark (2010). "Congruent Number Theta Coefficients to 1012". Lecture Notes in Computer Science. Springer Berlin Heidelberg. pp. 186–200. doi:10.1007/978-3-642-14518-6_17. eISSN 1611-3349. ISSN 0302-9743.
  • Al Na'mneh, Rami; Pan, W. David (March 2007). "Five-step FFT algorithm with reduced computational complexity". Information Processing Letters. 101 (6): 262–267. doi:10.1016/j.ipl.2006.10.009. ISSN 0020-0190.
  • Arndt, Jörg (1 October 2010). "The Matrix Fourier Algorithm (MFA)". Matters Computational: Ideas, Algorithms, Source Code. Springer Science & Business Media. pp. 438–439. ISBN 978-3-642-14764-7. OCLC 1005788763.