<< Chapter < Page | Chapter >> Page > |
The power-of-two FFT algorithms , such as the radix-2 and radix-4 FFTs, and the common-factor and prime-factor FFTs, achieve great reductions in computational complexity of the DFT when the length, $N$ , is a composite number.DFTs of prime length are sometimes needed, however, particularly for the short-length DFTs in common-factor or prime-factor algorithms.The methods described here, along with the composite-length algorithms, allow fast computation of DFTs of any length.
There are two main ways of performing DFTs of prime length:
Rader's conversion is a one-dimensional index-mapping scheme that turns a length- $N$ DFT ( $N$ prime) into a length-( $N-1$ ) convolution and a few additions. Rader's conversion works only for prime-length $N$ .
An index map simply rearranges the order of the sum operation in the DFT definition . Because addition is a commutative operation, the same mathematical result is producedfrom any order, as long as all of the same terms are added once and only once. (This is the condition that defines an index map.)Unlike the multi-dimensional index maps used in deriving common factor and prime-factor FFTs , Rader's conversion uses a one-dimensional index map in a finite group of $N$ integers: $k=r^{m}\mod N$
If $N$ is prime, there exists an integer " $r$ " called a primitive root , such that the index map $k=r^{m}\mod N$ , $m$
$N=5$ , $r=2$ $$2^{0}\mod 5=1$$ $$2^{1}\mod 5=2$$ $$2^{2}\mod 5=4$$ $$2^{3}\mod 5=3$$
For $N$ prime, the inverse of $r$ (i.e. $r^{(-1)}r\mod N=1$ is also a primitive root (call it $r^{(-1)}$ ).
$N=5$ , $r=2$ $r^{(-1)}=3$ $$2\times 3\mod 5=1$$ $$3^{0}\mod 5=1$$ $$3^{1}\mod 5=3$$ $$3^{2}\mod 5=4$$ $$3^{3}\mod 5=2$$
So why do we care? Because we can use these facts to turn a DFT into a convolution!
Let $\forall mn, (m)$
$N=5$ , $r=2$ , $r^{(-1)}=3$ $$\begin{pmatrix}X(0)\\ X(1)\\ X(2)\\ X(3)\\ X(4)\\ \end{pmatrix}=\begin{pmatrix}0 & 0 & 0 & 0 & 0\\ 0 & 1 & 2 & 3 & 4\\ 0 & 2 & 4 & 1 & 3\\ 0 & 3 & 1 & 4 & 2\\ 0 & 4 & 3 & 2 & 1\\ \end{pmatrix}\begin{pmatrix}x(0)\\ x(1)\\ x(2)\\ x(3)\\ x(4)\\ \end{pmatrix}$$ $$\begin{pmatrix}X(0)\\ X(1)\\ X(2)\\ X(4)\\ X(3)\\ \end{pmatrix}=\begin{pmatrix}0 & 0 & 0 & 0 & 0\\ 0 & 1 & 3 & 4 & 2\\ 0 & 2 & 1 & 3 & 4\\ 0 & 4 & 2 & 1 & 1\\ 0 & 3 & 4 & 2 & 3\\ \end{pmatrix}\begin{pmatrix}x(0)\\ x(1)\\ x(3)\\ x(4)\\ x(2)\\ \end{pmatrix}$$ where for visibility the matrix entries represent only the power , $m$ of the corresponding DFT term ${W}_{N}^{m}$ Note that the 4-by-4 circulant matrix $$\begin{pmatrix}1 & 3 & 4 & 2\\ 2 & 1 & 3 & 4\\ 4 & 2 & 1 & 1\\ 3 & 4 & 2 & 3\\ \end{pmatrix}$$ corresponds to a length-4 circular convolution.
Rader's conversion turns a prime-length DFT into a few adds and a composite-length ( $N-1$ ) circular convolution, which can be computed efficiently using either
S. Winograd has proved that a length- $N$ circular or linear convolution or DFT requires less than $2N$ multiplies (for real data), or $4N$ real multiplies for complex data. (This doesn't count multiplies by rational fractions, like $3$ or $\frac{1}{N}$ or $\frac{5}{17}$ , which can be computed with additions and one overall scaling factor.) Furthermore, Winograd showed how toconstruct algorithms achieving these counts. Winograd prime-length DFTs and convolutions have the followingcharacteristics:
The Winograd Fourier Transform Algorithm (WFTA) is a technique that recombines the short Winograd modules in a prime-factor FFT into a composite- $N$ structure with fewer multiplies but more adds. While theoretically interesting,WFTAs are complicated and different for every length, and on modern processors with hardware multipliers the trade of multiplies for manymore adds is very rarely useful in practice today.
Notification Switch
Would you like to follow the 'The dft, fft, and practical spectral analysis' conversation and receive update notifications?