FFT is an efficient algorithm to compute the discrete Fourier transform (DFT) and convert a time domain signal to its frequency domain representation. Radix-2 FFT is the most common algorithm, in which the input is divided into groups of 2 samples at each stage. FFT algorithms generally have a number of samples that is a power of 2, like 2N, to efficiently compute the DFT. The radix-2 FFT breaks the computation into "butterflies" or decimation in time (DIT) and decimation in frequency (DIF) structures to recursively compute the DFT. Twiddle factors representing complex roots of unity are used to compute the outputs of each butterfly operation.