Top quark: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>StringTheory11
m fixed dashes using a script
 
en>Quadrupedi
m Tevatron no longer operational + original document indicates error in value previously indicated.
Line 1: Line 1:
Gabrielle is what her hubby loves to call your wife's though she doesn't really like being called in that way. Fish getting is something her life partner doesn't really like however she does. Managing people is considered what she does yet , she plans on to change it. For years she's been living in Massachusetts. Go to her website to find accessible more: http://[http://Www.Google.com/search?q=prometeu.net&btnI=lucky prometeu.net]<br><br>My web blog clash of clans hack ([http://prometeu.net http://prometeu.net/])
'''Rader's algorithm''' (1968) is a [[fast Fourier transform]] (FFT) algorithm that computes the [[discrete Fourier transform]] (DFT) of [[prime number|prime]] sizes by re-expressing the DFT as a cyclic [[convolution]].  (The other algorithm for FFTs of prime sizes, [[Bluestein's FFT algorithm|Bluestein's algorithm]], also works by rewriting the DFT as a convolution.)
 
Since Rader's algorithm only depends upon the periodicity of the DFT kernel, it is directly applicable to any other transform (of prime order) with a similar property, such as a [[number-theoretic transform]] or the [[discrete Hartley transform]].
 
The algorithm can be modified to gain a factor of two savings for the case of DFTs of real data, using a slightly modified re-indexing/permutation to obtain two half-size cyclic convolutions of real data (Chu & Burrus, 1982); an alternative adaptation for DFTs of real data, using the discrete Hartley transform, was described by Johnson & Frigo (2007).
 
Winograd extended Rader's algorithm to include prime-power DFT sizes <math>p^m</math> (Winograd 1976; Winograd 1978), and today Rader's algorithm is sometimes described as a special case of [[Winograd's FFT algorithm]], also called the ''multiplicative Fourier transform algorithm'' (Tolimieri et al., 1997), which applies to an even larger class of sizes.  However, for [[composite number|composite]] sizes such as prime powers, the [[Cooley–Tukey FFT algorithm]] is much simpler and more practical to implement, so Rader's algorithm is typically only used for large-prime [[base case]]s of Cooley–Tukey's [[Recursion_(computer_science)|recursive]] decomposition of the DFT (Frigo and Johnson, 2005).
 
==Algorithm==
 
Recall that the DFT is defined by the formula
 
:<math> X_k = \sum_{n=0}^{N-1} x_n e^{-\frac{2\pi i}{N} nk }
\qquad
k = 0,\dots,N-1. </math>
 
If ''N'' is a prime number, then the set of non-zero indices ''n'' = 1,...,''N''&ndash;1 forms a [[group (mathematics)|group]] under multiplication [[modular arithmetic|modulo]] ''N''. One consequence of the [[number theory]] of such groups is that there exists a [[generating set of a group|generator]] of the group (sometimes called a [[Primitive root modulo n|primitive root]]), an integer ''g'' such that ''n'' = ''g''<sup>''q''</sup> (mod ''N'') for any non-zero index ''n'' and for a unique ''q'' in 0,...,''N''&ndash;2 (forming a [[bijection]] from ''q'' to non-zero ''n''). Similarly ''k'' = ''g''<sup>&ndash;''p''</sup>  (mod ''N'') for any non-zero index ''k'' and for a unique ''p'' in 0,...,''N''&ndash;2, where the negative exponent denotes the [[modular multiplicative inverse|multiplicative inverse]] of ''g''<sup>''p''</sup> modulo ''N''.  That means that we can rewrite the DFT using these new indices ''p'' and ''q'' as:
 
:<math> X_0 =  \sum_{n=0}^{N-1} x_n,</math>
 
:<math> X_{g^{-p}} = x_0 +  \sum_{q=0}^{N-2} x_{g^q} e^{-\frac{2\pi i}{N} g^{-(p-q)} }
\qquad
p = 0,\dots,N-2. </math>
 
(Recall that ''x''<sub>''n''</sub> and ''X''<sub>''k''</sub> are implicitly periodic in ''N'', and also that ''e''<sup>2πi</sup>=1.  Thus, all indices and exponents are taken modulo ''N'' as required by the group arithmetic.)
 
The final summation, above, is precisely a cyclic convolution of the two sequences ''a''<sub>''q''</sub> and ''b''<sub>''q''</sub> of length ''N''&ndash;1 (''q'' = 0,...,''N''&ndash;2) defined by:
 
:<math>a_q = x_{g^q}</math>
:<math>b_q = e^{-\frac{2\pi i}{N} g^{-q} }.</math>
 
===Evaluating the convolution===
 
Since ''N''&ndash;1 is composite, this convolution can be performed directly via the [[convolution theorem]] and more conventional FFT algorithms. However, that may not be efficient if ''N''&ndash;1 itself has large prime factors, requiring recursive use of Rader's algorithm. Instead, one can compute a length-(''N''&ndash;1) cyclic convolution exactly by zero-padding it to a length of at least 2(''N''&ndash;1)&ndash;1, say to a [[power of two]], which can then be evaluated in O(''N'' log ''N'') time without the recursive application of Rader's algorithm.
 
This algorithm, then, requires O(''N'') additions plus O(''N'' log ''N'') time for the convolution.  In practice, the O(''N'') additions can often be performed by absorbing the additions into the convolution: if the convolution is performed by a pair of FFTs, then the sum of ''x''<sub>''n''</sub> is given by the DC (0th) output of the FFT of ''a''<sub>''q''</sub> plus ''x''<sub>0</sub>, and ''x''<sub>0</sub> can be added to all the outputs by adding it to the DC term of the convolution prior to the inverse FFT.  Still, this algorithm requires intrinsically more operations than FFTs of nearby composite sizes, and typically takes 3&ndash;10 times as long in practice.
 
If Rader's algorithm is performed by using FFTs of size ''N''&ndash;1 to compute the convolution, rather than by zero padding as mentioned above, the efficiency depends strongly upon ''N'' and the number of times that Rader's algorithm must be applied recursively. The worst case would be if ''N''&ndash;1 were 2''N''<sub>2</sub> where ''N''<sub>2</sub> is prime, with ''N''<sub>2</sub>&ndash;1 = 2''N''<sub>3</sub> where ''N''<sub>3</sub> is prime, and so on. In such cases, supposing that the chain of primes extended all the way down to some bounded value, the recursive application of Rader's algorithm would actually require O(''N''<sup>2</sup>) time.  Such ''N''<sub>j</sub> are called [[Sophie Germain prime]]s, and such a sequence of them is called a [[Cunningham chain]] of the first kind.  The lengths of Cunningham chains, however, are observed to grow more slowly than log<sub>2</sub>(''N''), so Rader's algorithm applied in this way is probably not [[Big O notation|&Omega;]](''N''<sup>2</sup>), though it is possibly worse than O(''N'' log ''N'') for the worst cases.  Fortunately, a guarantee of O(''N'' log ''N'') complexity can be achieved by zero padding.
 
==References==
* C. M. Rader, "Discrete Fourier transforms when the number of data samples is prime," ''Proc. IEEE'' '''56''', 1107&ndash;1108 (1968).
* S. Chu and C. Burrus, "A prime factor FTT <nowiki>[</nowiki>''sic''<nowiki>]</nowiki> algorithm using distributed arithmetic," '' IEEE Transactions on Acoustics, Speech, and Signal Processing'' '''30''' (2), 217&ndash;227 (1982).
* Matteo Frigo and Steven G. Johnson, "[http://fftw.org/fftw-paper-ieee.pdf The Design and Implementation of FFTW3]," ''Proceedings of the IEEE'' '''93''' (2), 216–231 (2005).
* S. Winograd, "On Computing the Discrete Fourier Transform", ''Proc. National Academy of Sciences USA'', '''73'''(4), 1005&ndash;1006 (1976).
* S. Winograd, "On Computing the Discrete Fourier Transform", ''Mathematics of Computation'', '''32'''(141), 175&ndash;199 (1978).
* R. Tolimieri, M. An, and C.Lu, "Algorithms for Discrete Fourier Transform and Convolution," Springer-Verlag, 2nd ed., 1997.
 
[[Category:FFT algorithms]]

Revision as of 19:13, 28 November 2013

Rader's algorithm (1968) 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 other algorithm for FFTs of prime sizes, Bluestein's algorithm, also works by rewriting the DFT as a convolution.)

Since Rader's algorithm only depends upon the periodicity of the DFT kernel, it is directly applicable to any other transform (of prime order) with a similar property, such as a number-theoretic transform or the discrete Hartley transform.

The algorithm can be modified to gain a factor of two savings for the case of DFTs of real data, using a slightly modified re-indexing/permutation to obtain two half-size cyclic convolutions of real data (Chu & Burrus, 1982); an alternative adaptation for DFTs of real data, using the discrete Hartley transform, was described by Johnson & Frigo (2007).

Winograd extended Rader's algorithm to include prime-power DFT sizes (Winograd 1976; Winograd 1978), and today Rader's algorithm is sometimes described as a special case of Winograd's FFT algorithm, also called the multiplicative Fourier transform algorithm (Tolimieri et al., 1997), which applies to an even larger class of sizes. However, for composite sizes such as prime powers, the Cooley–Tukey FFT algorithm is much simpler and more practical to implement, so Rader's algorithm is typically only used for large-prime base cases of Cooley–Tukey's recursive decomposition of the DFT (Frigo and Johnson, 2005).

Algorithm

Recall that the DFT is defined by the formula

If N is a prime number, then the set of non-zero indices n = 1,...,N–1 forms a group under multiplication modulo N. One consequence of the number theory of such groups is that there exists a generator of the group (sometimes called a primitive root), an integer g such that n = gq (mod N) for any non-zero index n and for a unique q in 0,...,N–2 (forming a bijection from q to non-zero n). Similarly k = gp (mod N) for any non-zero index k and for a unique p in 0,...,N–2, where the negative exponent denotes the multiplicative inverse of gp modulo N. That means that we can rewrite the DFT using these new indices p and q as:

(Recall that xn and Xk are implicitly periodic in N, and also that e2πi=1. Thus, all indices and exponents are taken modulo N as required by the group arithmetic.)

The final summation, above, is precisely a cyclic convolution of the two sequences aq and bq of length N–1 (q = 0,...,N–2) defined by:

Evaluating the convolution

Since N–1 is composite, this convolution can be performed directly via the convolution theorem and more conventional FFT algorithms. However, that may not be efficient if N–1 itself has large prime factors, requiring recursive use of Rader's algorithm. Instead, one can compute a length-(N–1) cyclic convolution exactly by zero-padding it to a length of at least 2(N–1)–1, say to a power of two, which can then be evaluated in O(N log N) time without the recursive application of Rader's algorithm.

This algorithm, then, requires O(N) additions plus O(N log N) time for the convolution. In practice, the O(N) additions can often be performed by absorbing the additions into the convolution: if the convolution is performed by a pair of FFTs, then the sum of xn is given by the DC (0th) output of the FFT of aq plus x0, and x0 can be added to all the outputs by adding it to the DC term of the convolution prior to the inverse FFT. Still, this algorithm requires intrinsically more operations than FFTs of nearby composite sizes, and typically takes 3–10 times as long in practice.

If Rader's algorithm is performed by using FFTs of size N–1 to compute the convolution, rather than by zero padding as mentioned above, the efficiency depends strongly upon N and the number of times that Rader's algorithm must be applied recursively. The worst case would be if N–1 were 2N2 where N2 is prime, with N2–1 = 2N3 where N3 is prime, and so on. In such cases, supposing that the chain of primes extended all the way down to some bounded value, the recursive application of Rader's algorithm would actually require O(N2) time. Such Nj are called Sophie Germain primes, and such a sequence of them is called a Cunningham chain of the first kind. The lengths of Cunningham chains, however, are observed to grow more slowly than log2(N), so Rader's algorithm applied in this way is probably not Ω(N2), though it is possibly worse than O(N log N) for the worst cases. Fortunately, a guarantee of O(N log N) complexity can be achieved by zero padding.

References

  • C. M. Rader, "Discrete Fourier transforms when the number of data samples is prime," Proc. IEEE 56, 1107–1108 (1968).
  • S. Chu and C. Burrus, "A prime factor FTT [sic] algorithm using distributed arithmetic," IEEE Transactions on Acoustics, Speech, and Signal Processing 30 (2), 217–227 (1982).
  • Matteo Frigo and Steven G. Johnson, "The Design and Implementation of FFTW3," Proceedings of the IEEE 93 (2), 216–231 (2005).
  • S. Winograd, "On Computing the Discrete Fourier Transform", Proc. National Academy of Sciences USA, 73(4), 1005–1006 (1976).
  • S. Winograd, "On Computing the Discrete Fourier Transform", Mathematics of Computation, 32(141), 175–199 (1978).
  • R. Tolimieri, M. An, and C.Lu, "Algorithms for Discrete Fourier Transform and Convolution," Springer-Verlag, 2nd ed., 1997.