Week 18 — Coding Projects
Core
Implement DFT first, then FFT.
- NumPy: Implement O(N²) DFT manually. Compare against
numpy.fft.fft. Visualize magnitude spectra of simple signals. - Metal: Small DFT or radix-2 FFT prototype using buffer ping-pong for stages. · Reading: MBT — compute-heavy multi-stage algorithms, buffer ping-pong, performance debugging.
- Vulkan: Compute DFT/FFT prototype with staged compute pipelines. · Reading: Vulkan Book — staged compute pipelines, storage buffers, synchronization between FFT passes.
- CUDA: Radix-2 FFT prototype with shared-memory staging. · Reading: CUDA Book — multi-stage compute, shared-memory staging, memory access patterns.
- Stretch: 2D FFT for images. Frequency-domain filtering.
- Verify: DFT matches NumPy within tolerance · Peaks appear where expected for sinusoidal signals · Inverse transform reconstructs original signal.