22-Elec-B1 Digital Signal Processing · Undated paper
Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
Paper format. National Exam, May 2019 — 16-Elec-B1 Digital Signal Processing. Three hours, closed book; two approved calculators (Casio or Sharp) and one double-sided aid sheet are permitted. Six questions, each worth 12 marks; the printed rubric states that any five of the six constitute a complete paper. Marking scheme as printed: Q1 (a) 6 (b) 6; Q2 (a) 6 (b) 6; Q3 (a) 6 (b) 6; Q4 (a) 7 (b) 5; Q5 (a) 3 (b) 2 (c) 2 (d) 3 (e) 2; Q6 (a) 5 (b) 3 (c) 4. All six questions are solved here, because the set is a study resource rather than an exam script.
Reference texts. A. V. Oppenheim and R. W. Schafer, Discrete-Time Signal Processing, 3rd ed. — the standard EGBC reference for this subject (sampling Ch. 4, the z-transform Ch. 3, the DFS/DFT Ch. 8, filter structures Ch. 6, FIR design by windowing Ch. 7). Supporting: J. G. Proakis and D. G. Manolakis, Digital Signal Processing: Principles, Algorithms and Applications, 4th ed.; A. V. Oppenheim and A. S. Willsky, Signals and Systems, 2nd ed. The paper supplies its own aid sheet (DTFT analysis/synthesis pair, Parseval, a table of z-transform properties, a table of common z-transform pairs including the finite-length geometric pair, the geometric sum and series, the DFT/CTFT/DTFT property table, and the Kaiser design formulas), and the solutions below use only those.
Source-quality disclosure. Two places where the paper itself is still partly illegible are flagged in check notes at the questions concerned (Q4(b) numerator coefficient, Q5 expanded denominator); in both cases the printed information elsewhere in the same expression fixes the value uniquely. Readers comparing against another copy of the paper should treat those two items as reconstructed.
Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.
Given. $N_a = 498$ nonzero samples; the 498-point DFT costs $t_a = 1$ s. Fourteen trailing zeros give $N_b = 498 + 14 = 512$ samples, and the 512-point DFT costs $t_b = 9.29$ ms. Both transforms are computed on the same machine with the same library.
Find. (a) a qualitative explanation of why the longer transform is the faster one, and (b) an arithmetic justification of the observed speed ratio.
Approach. Separate two independent facts: zero-padding does not add information, it only samples the same DTFT more finely; and the cost of a DFT depends on how the transform length factors, not on how large it is.
so the 512-point transform supplies 512 samples of the same curve instead of 498. Zero-padding is frequency-domain interpolation; no resolution is gained, because resolution is set by the 498 genuine samples of data.
Because 83 is prime, 498 admits no decomposition into small radices beyond a single factor of 2 and 3, so a general-purpose routine falls back on the direct sum — an $\mathcal{O}(N^2)$ computation. In contrast 512 is a pure power of two, so the transform decomposes nine times, which is the radix-2 fast Fourier transform.
costs one complex multiply and one complex add per $(n,k)$ pair, so
$$M_{\text{direct}} = N_a^{2} = 498^{2} = 248\,004 \ \text{complex multiplies}.$$so if the run time is proportional to the multiply count the 512-point transform should take
$$t_b = \frac{t_a}{107.64} = \frac{1\ \text{s}}{107.64} = \boxed{\,9.29\ \text{ms}\,}$$which is exactly the measured figure, and the measured ratio $1/(9.29\times10^{-3}) = 107.6$ reproduces the predicted one to three significant figures. Expressed in real multiplies (one complex multiply is four real ones) the counts are $992\,016$ against $9216$ — the same ratio.
| Quantity | Value |
|---|---|
| Factorisation of the lengths | $498 = 2\cdot3\cdot83$ (83 prime); $512 = 2^{9}$ |
| Direct DFT, complex multiplies | $498^{2} = 248\,004$ |
| Radix-2 FFT, complex multiplies | $(512/2)\log_2 512 = 2304$ |
| Predicted speed-up | 107.6× |
| Predicted 512-point run time | 9.29 ms (measured 9.29 ms) |