HOME

TheInfoList



OR:

The prime-factor algorithm (PFA), also called the Good–Thomas algorithm (1958/1963), is a fast Fourier transform (FFT) algorithm that re-expresses the
discrete Fourier transform In mathematics, the discrete Fourier transform (DFT) converts a finite sequence of equally-spaced samples of a function into a same-length sequence of equally-spaced samples of the discrete-time Fourier transform (DTFT), which is a comple ...
(DFT) of a size ''N'' = ''N''1''N''2 as a two-dimensional ''N''1×''N''2 DFT, but ''only'' for the case where ''N''1 and ''N''2 are
relatively prime In mathematics, two integers and are coprime, relatively prime or mutually prime if the only positive integer that is a divisor of both of them is 1. Consequently, any prime number that divides does not divide , and vice versa. This is equivale ...
. These smaller transforms of size ''N''1 and ''N''2 can then be evaluated by applying PFA
recursively Recursion (adjective: ''recursive'') occurs when a thing is defined in terms of itself or of its type. Recursion is used in a variety of disciplines ranging from linguistics to logic. The most common application of recursion is in mathematics ...
or by using some other FFT algorithm. PFA should not be confused with the ''mixed-radix'' generalization of the popular Cooley–Tukey algorithm, which also subdivides a DFT of size ''N'' = ''N''1''N''2 into smaller transforms of size ''N''1 and ''N''2. The latter algorithm can use ''any'' factors (not necessarily relatively prime), but it has the disadvantage that it also requires extra multiplications by roots of unity called
twiddle factor A twiddle factor, in fast Fourier transform (FFT) algorithms, is any of the trigonometric constant coefficients that are multiplied by the data in the course of the algorithm. This term was apparently coined by Gentleman & Sande in 1966, and has ...
s, in addition to the smaller transforms. On the other hand, PFA has the disadvantages that it only works for relatively prime factors (e.g. it is useless for power-of-two sizes) and that it requires more complicated re-indexing of the data based on the
additive group An additive group is a group of which the group operation is to be thought of as ''addition'' in some sense. It is usually abelian, and typically written using the symbol + for its binary operation. This terminology is widely used with structures ...
isomorphisms In mathematics, an isomorphism is a structure-preserving mapping between two structures of the same type that can be reversed by an inverse mapping. Two mathematical structures are isomorphic if an isomorphism exists between them. The word i ...
. Note, however, that PFA can be combined with mixed-radix Cooley–Tukey, with the former factorizing ''N'' into relatively prime components and the latter handling repeated factors. PFA is also closely related to the nested
Winograd FFT algorithm Winograd is a Slavic and Jewish surname: * Arthur Winograd (1920–2010), original cello player for the '' Juilliard String Quartet'' * David Ostrosky (born David Ostrosky Winograd) a Mexican actor * Eliyahu Winograd (1926–2018), chairman of th ...
, where the latter performs the decomposed ''N''1 by ''N''2 transform via more sophisticated two-dimensional convolution techniques. Some older papers therefore also call Winograd's algorithm a PFA FFT. (Although the PFA is distinct from the Cooley–Tukey algorithm,
Good In most contexts, the concept of good denotes the conduct that should be preferred when posed with a choice between possible actions. Good is generally considered to be the opposite of evil and is of interest in the study of ethics, morality, ph ...
's 1958 work on the PFA was cited as inspiration by Cooley and Tukey in their 1965 paper, and there was initially some confusion about whether the two algorithms were different. In fact, it was the only prior FFT work cited by them, as they were not then aware of the earlier research by Gauss and others.)


Algorithm

Let a(x) a polynomial and \omega_n a principal nth root of unity. We define the DFT of a(x) as the n-tuple (\hat_j) = (a(\omega_n^j)) . In other words, :\hat_j = \sum_^ a_i \omega_n^ for all j = 0, 1, \dots, n - 1. For simplicity, we denote the transformation as \text_. The PFA relies on a coprime factorization of n = \prod_^ n_d and turns \text_ into \bigotimes_d \text_ for some choices of \omega_'s where \bigotimes is the
tensor product In mathematics, the tensor product V \otimes W of two vector spaces and (over the same field) is a vector space to which is associated a bilinear map V\times W \to V\otimes W that maps a pair (v,w),\ v\in V, w\in W to an element of V \otime ...
.


Mapping Based on CRT

For a coprime factorization n = \prod_^ n_d, we have the Chinese remainder map m \mapsto (m \bmod q_d) from \mathbb_ to \prod_^ \mathbb_ with (m_d) \mapsto \sum_^ e_d m_d as its inverse where e_d's are the central orthogonal idempotent elements with \sum_^ e_d = 1 \pmod. Choosing \omega_ = \omega_n^ (therefore, \prod_^ \omega_ = \omega_n^ = \omega_n), we rewrite \text_ as follows: :\hat_j = \sum_^ a_i \omega_n^ = \sum_^ a_i \left( \prod_^ \omega_ \right)^ = \sum_^ a_i \prod_^ \omega_^ = \sum_^ \cdots \sum_^ a_ \prod_^ \omega_^ . Finally, define a_ = a_ and \hat_ = \hat_, we have \hat_ = \sum_^ \cdots \sum_^ a_ \prod_^ \omega_^ . Therefore, we have the multi-dimensional DFT, \otimes_^ \text_.


As Algebra Isomorphisms

PFA can be stated in a high-level way in terms of algebra isomorphisms. We first recall that for a commutative ring R and a group isomorphism from G to \prod_d G_d, we have the following algebra isomorphism :R \cong \bigotimes_d R _d/math> where \bigotimes refers to the
tensor product of algebras In mathematics, the tensor product of two algebras over a commutative ring ''R'' is also an ''R''-algebra. This gives the tensor product of algebras. When the ring is a field, the most common application of such products is to describe the prod ...
. To see how PFA works, we choose G = (\mathbb_n, +, 0) and G_d = (\mathbb_, +, 0) be
additive group An additive group is a group of which the group operation is to be thought of as ''addition'' in some sense. It is usually abelian, and typically written using the symbol + for its binary operation. This terminology is widely used with structures ...
s. We also identify R /math> as \frac and R _d/math> as \frac. Choosing \eta = a \mapsto (a \bmod n_d) as the group isomorphism G \cong \prod_d G_d, we have the algebra isomorphism \eta^* : R \cong \bigotimes_d R _d/math>, or alternatively, \eta^* : \frac \cong \bigotimes_d \frac . Now observe that \text_ is actually an algebra isomorphism from \frac to \prod_i \frac and each \text_ is an algebra isomorphism from \frac to \prod_ \frac, we have an algebra isomorphism \eta' from \bigotimes_d \prod_ \frac to \prod_i \frac. What PFA tells us is that \text_ = \eta' \circ \bigotimes_d \text_ \circ \eta^* where \eta^* and \eta' are re-indexing without actual arithmetic in R.


Counting the Number of Multi-Dimensional Transformations

Notice that the condition for transforming \text_ into \eta' \circ \bigotimes_d \text_ \circ \eta^* relies on "an" additive group isomorphism \eta from (\mathbb_n, +, 0) to \prod_d (\mathbb_, +, 0). Any additive group isomorphism will work. To count the number of ways transforming \text_ into \eta' \circ \bigotimes_d \text_ \circ \eta^*, we only need to count the number of additive group isomorphisms from (\mathbb_n, +, 0) to \prod_d (\mathbb_, +, 0), or alternative, the number of additive group automorphisms on (\mathbb_n, +, 0). Since (\mathbb_n, +, 0) is
cyclic Cycle, cycles, or cyclic may refer to: Anthropology and social sciences * Cyclic history, a theory of history * Cyclical theory, a theory of American political history associated with Arthur Schlesinger, Sr. * Social cycle, various cycles in s ...
, any automorphism can be written as 1 \mapsto g where g is a
generator Generator may refer to: * Signal generator, electronic devices that generate repeating or non-repeating electronic signals * Electric generator, a device that converts mechanical energy to electrical energy. * Generator (circuit theory), an eleme ...
of (\mathbb_n, +, 0). By the definition of (\mathbb_n, +, 0), g's are exactly those coprime to n. Therefore, there are exactly \varphi(n) many such maps where \varphi is the Euler's totient function. The smallest example is n = 6 where \varphi(n) = 2, demonstrating the two maps in the literature: the "CRT mapping" and the "Ruritanian mapping".


See also

*
Bluestein's FFT algorithm The chirp Z-transform (CZT) is a generalization of the discrete Fourier transform (DFT). While the DFT samples the Z plane at uniformly-spaced points along the unit circle, the chirp Z-transform samples along spiral arcs in the Z-plane, correspon ...
*
Rader's FFT algorithm Rader's algorithm (1968), named for Charles M. Rader of MIT Lincoln Laboratory, is a fast Fourier transform (FFT) algorithm that computes the discrete Fourier transform (DFT) of prime sizes by re-expressing the DFT as a cyclic convolution (the oth ...


References

* Addendum, ''ibid.'' 22 (2), 373-375 (1960) . * * * *{{cite journal , first=I. J. , last=Good , title=The relationship between two fast Fourier transforms , journal = IEEE Transactions on Computers , volume=100 , issue=3 , pages=310–317 , year=1971 FFT algorithms