Definition

FFT rapidly computes DFT by factorizing the DFT matrix As a result, It manages to reduce the complexity of computing the DCT from to , where is a data size.
Algorithm
Consider a problem evaluating points in an degree polynomial It costs multiplication operations.
We can split the terms of the polynomial into odd and even parts
Both even and odd parts are degree polynomials for , so these are even functions. Therefore, the following is satisfied
So, if we take points as negative-positive pairs , we can divide the original problem into two small problems.
Now the problem is to evaluate points on the degree polynomials So, the cost become to multiplication operations.
It seems to be the subject of a recursive algorithm. (can apply same logic to each) However, since the evaluating points are squared form don’t have positive-negative pairs, so recursion breaks.
But if we extend the domain of the points to complex number, this become possible.
The roots of an equation , which lie on the unit circle on a complex plane with equal distance, satisfy the above condition.
So, If we choose the roots of the equation as evaluating points, the -Squares of roots also consist of positive-negative pairs, and can exploit recursion.
Finally, the cost become to
Let’s express the original problem that evaluating the points in the polynomial
where
The matrix is exactly the DCT matrix. In other words, we can accelerate DFT using the FFT algorithm. The inverse of the matrix also has similar structure, so we can apply the same logic to the calculation where