 When dealing with a signal containing a number of samples, it is a power of 2. The fast Fourier transform is a much more efficient algorithm than the discrete Fourier transform. This is due to the way it breaks down the problem into lots of little problems and solves them in stages, using the results from one stage as the starting point for the next. Unlike the discrete Fourier transform, this means that it doesn't have to redo calculations it already performed. However, although this saves a lot of work, it also causes a problem. By treating every part of the calculation as a simple 2-point DFT, it ignores the fact that not all the samples occupy the same two positions in the signal that are necessary in order to perform a 2-point DFT. To compensate for this, the FFT uses twiddle factors, sometimes called phase factors, to continuously correct the phase of the signal, shifting the samples to where they need to be for the next stage of the algorithm.