S. Winograd has proved that a
length-
NN circular or linear
convolution or
DFT requires less than
2N
2
N
multiplies (for real data), or
4N
4
N
real multiplies for complex data. (This doesn't
count multiplies by rational fractions, like
33 or
1N
1
N
or
517
5
17
, which can be computed with additions and one
overall scaling factor.) Furthermore, Winograd showed how to
construct algorithms achieving these counts. Winograd
prime-length DFTs and convolutions have the following
characteristics:
- Extremely efficient for small
NN
(
N<20
N
20
)
- The number of adds becomes huge
for large NN.
Thus Winograd's minimum-multiply FFT's are useful only for
small
NN. They are
very important for
Prime-Factor
Algorithms, which generally use Winograd modules to
implement the short-length DFTs. Tables giving the
multiplies and adds necessary to compute Winograd FFTs for
various lengths can be found in
C.S. Burrus (1988). Tables and FORTRAN
and TMS32010 programs for these short-length transforms can
be found in
C.S. Burrus and
T.W. Parks (1985). The theory and derivation of these
algorithms is quite elegant but requires substantial
background in number theory and abstract algebra.
Fortunately for the practitioner, all of the short
algorithms one is likely to need have already been derived
and can simply be looked up without mastering the
details of their derivation.