30-3 Multidimensional fast Fourier transform

We can generalize the 11-dimensional discrete Fourier transform defined by equation (30.8)\text{(30.8)} to dd dimensions. The input is a dd-dimensional array A=(aj1,j2,,jd)A = (a_{j_1, j_2, \dots, j_d}) whose dimensions are n1,n2,,ndn_1, n_2, \dots, n_d, where n1n2nd=nn_1n_2 \cdots n_d = n. We define the dd-dimensional discrete Fourier transform by the equation

yk1,k2,,kd=j1=0n11j2=0n21jd=0nd1aj1,j2,,jdωn1j1k1ωn2j2k2ωndjdkdy_{k_1, k_2, \dots, k_d} = \sum_{j_1 = 0}^{n_1 - 1} \sum_{j_2 = 0}^{n_2 - 1} \cdots \sum_{j_d = 0}^{n_d - 1} a_{j_1, j_2, \cdots, j_d} \omega_{n_1}^{j_1k_1}\omega_{n_2}^{j_2k_2} \cdots \omega_{n_d}^{j_dk_d}

for 0k1<n1,0k2<n2,,0kd<nd0 \le k_1 < n_1, 0 \le k_2 < n_2, \dots, 0 \le k_d < n_d.

a. Show that we can compute a dd-dimensional DFT\text{DFT} by computing 11-dimensional DFT\text{DFT}s on each dimension in turn. That is, we first compute n/n1n / n_1 separate 11-dimensional DFT\text{DFT}s along dimension 11. Then, using the result of the DFT\text{DFT}s along dimension 11 as the input, we compute n/n2n / n_2 separate 11-dimensional DFT\text{DFT}s along dimension 22. Using this result as the input, we compute n/n3n / n_3 separate 11-dimensional DFT\text{DFT}s along dimension 33, and so on, through dimension dd.

b. Show that the ordering of dimensions does not matter, so that we can compute a dd-dimensional DFT\text{DFT} by computing the 11-dimensional DFT\text{DFT}s in any order of the dd dimensions.

c. Show that if we compute each 11-dimensional DFT\text{DFT} by computing the fast Fourier transform, the total time to compute a dd-dimensional DFT\text{DFT} is O(nlgn)O(n\lg n), independent of dd.

(Omit!)