This document presents an implementation of the Fast Fourier Transform (FFT) algorithm. It begins with an introduction to FFTs, explaining that they can compute the Discrete Fourier Transform (DFT) much more efficiently than direct evaluation, reducing the computation time from O(N^2) to O(N log N). It then describes the basic butterfly structures used in FFTs and shows how to implement 16-point FFT blocks. The document includes MATLAB code for an 8-point DFT and FFT, as well as VHDL code for a 16-point FFT processor. It provides details on decimation-in-time and decimation-in-frequency algorithms and how they recursively break down the DFT into smaller transforms