Paper 2, Section II, 41E

Numerical Analysis | Part II, 2021

(a) Let x∈RN\mathbf{x} \in \mathbb{R}^{N} and define y∈R2N\mathbf{y} \in \mathbb{R}^{2 N} by

yn={xn,0⩽n⩽N−1x2N−n−1,N⩽n⩽2N−1y_{n}= \begin{cases}x_{n}, & 0 \leqslant n \leqslant N-1 \\ x_{2 N-n-1}, & N \leqslant n \leqslant 2 N-1\end{cases}

Let Y∈C2N\mathbf{Y} \in \mathbb{C}^{2 N} be defined as the discrete Fourier transform (DFT) of y\mathbf{y}, i.e.

Yk=∑n=02N−1ynω2Nnk,ω2N=exp⁡(−πi/N),0⩽k⩽2N−1Y_{k}=\sum_{n=0}^{2 N-1} y_{n} \omega_{2 N}^{n k}, \quad \omega_{2 N}=\exp (-\pi i / N), \quad 0 \leqslant k \leqslant 2 N-1

Show that

Yk=2ω2N−k/2∑n=0N−1xncos⁡[πN(n+12)k],0⩽k⩽2N−1Y_{k}=2 \omega_{2 N}^{-k / 2} \sum_{n=0}^{N-1} x_{n} \cos \left[\frac{\pi}{N}\left(n+\frac{1}{2}\right) k\right], \quad 0 \leqslant k \leqslant 2 N-1

(b) Define the discrete cosine transform (DCT)CN:RN→RN(\mathrm{DCT}) \mathcal{C}_{N}: \mathbb{R}^{N} \rightarrow \mathbb{R}^{N} by

z=CNx, where zk=∑n=0N−1xncos⁡[πN(n+12)k],k=0,…,N−1\mathbf{z}=\mathcal{C}_{N} \mathbf{x}, \text { where } z_{k}=\sum_{n=0}^{N-1} x_{n} \cos \left[\frac{\pi}{N}\left(n+\frac{1}{2}\right) k\right], \quad k=0, \ldots, N-1

For N=2pN=2^{p} with p∈Np \in \mathbb{N}, show that, similar to the Fast Fourier Transform (FFT), there exists an algorithm that computes the DCT of a vector of length NN, where the number of multiplications required is bounded by CNlog⁡NC N \log N, where CC is some constant independent of NN.

[You may not assume that the FFT algorithm requires O(Nlog⁡N)\mathcal{O}(N \log N) multiplications to compute the DFT of a vector of length NN. If you use this, you must prove it.]

Typos? Please submit corrections to this page on GitHub.