我正在尝试编写一些代码来预测在给定的 n 维数组上执行离散傅里叶变换所需的时间,但我正在努力理解 n 维 FFT 的计算复杂性。
据我了解:
长度向量的 1D FFT
N
应该取k*(N*log(N))
一些k
时间常数对于
M*N
矩阵,2D FFT 应采用:N*(k*M*log(M)) + M*(k*N*log(N)) = k*M*N*(log(M)+log(N))
因为它需要在每行和每列中进行 1D FFT
这如何推广到 ND 案例?是否应该如此k*prod(dimensions)*sum(log(dimensions))
?