EECS 658_________________________PROBLEM SET #3_________________________Fall 1999
ASSIGNED: Sept 30, 1999. READ: FFT (Fast Fourier) handout given out on Tuesday Sept. 28. DUE DATE: Oct. 07, 1999. THIS WEEK: More fast convolutions and fast Fourier transforms.
Show that the minimum #multiplications required for an 11-point cyclic convolution is 20.
Show that the minimum #multiplications required for an 12-point cyclic convolution is 18.
Thus a longer convolution can require fewer multiplications, even for the lower bound!
Stubborn, you still want to convolve (real) hn and un by multiplying their DFTs.
Show how to compute the DFTs of both hn and un using only one complex DFT.
Compute the cyclic convolution of complex constants (say that 5 times) of order 2N:
Show that Winograd breaks down the cyclic convolution into a series of smaller convolutions:
Yr(z)+jYi(z)=(Hr(z)+jHi(z))(Ur(z)+jUi(z)) mod(z2K+1), 0 < K < N.
Show that Yr(z)+z2K-1Yi(z)=(Hr(z)+z2K-1Hi(z))
Show computing Yr(z)+z2K-1Yi(z) and Yr(z)-z2K-1Yi(z)
recovers both Yr(z) and Yi(z).
What is the interpretation of the computation in (c) in terms of usual complex numbers?
Note that this computes a complex convolution using two real convolutions, doubling #mults,
while simply replacing each real mult with a complex mult would triple or quadruple #mults.
Recursive implementation of the Lagrange interpolation formula:
Show that any polynomial of degree N can be written in the following form: X(z)=
Show that the constants a,b,c,d... can be computed recursively by setting z=z1, etc.
Show the Kth recursion requires about 2K mults+adds, for a total of about N² mults+adds.
Show that the standard Lagrange interpolation formula requires about N³ mults+adds.
Apply this to find the unique
cubic polynomial satisfying
Multidimensional digit reversal in the Cooley-Tukey n1n2...-point FFT:
We use the Cooley-Tukey FFT to break down a large n1n2...nN-point DFT
into small n1-point DFTs, n2-point DFTs...nN-point DFTs and twiddle mults. Show that the Cooley-Tukey FFT maps input vi to output Vk, where
input index i=i1+n1i2+n1n2i3+...and
output index k=iN+nNiN-1+nNnN-1in-2+...
Set n1=n2=...=nN=2 to derive bit-reversal for 2N-point DFT.
Show how to compute i1, i2, etc. quickly from i (and similarly for k).
You need not show uniqueness of this mixed integer radix representation.