Bluestein‘s algorithm 算法可以在\(O (n \log n) \)的时间内完成任意长度的 DFT
考虑DFT,有:
\(\begin{align*} y_k &= \sum_{i = 0}^{n - 1} a_i \omega_n^{ki}\\ &= \sum_{i = 0}^{n - 1} a_i \omega_{2n}^{-(k - i)^2 +k^2+i^2}\\ &= \omega_{2n}^{k^2} \sum_{i = 0}^{n - 1} a_i \omega_{2n}^{i^2} \times \omega_{2n}^{-(k - i)^2} \end{align*}\)
注意到和式内部是一个卷积形式,可以用 FFT 在\(O (n \log n) \)的时间内计算。
因此任意长度DFT可以在\(O (n \log n) \)的时间内完成。