C# 二维离散傅里叶变换的复杂性
我有一个关于二维傅里叶变换的问题。我目前正在理解这背后的数学原理,有一点我不明白。就我而言,DFT的复杂性是C# 二维离散傅里叶变换的复杂性,c#,complexity-theory,fft,C#,Complexity Theory,Fft,我有一个关于二维傅里叶变换的问题。我目前正在理解这背后的数学原理,有一点我不明白。就我而言,DFT的复杂性是O(N*N)。如果我看一下以下算法: 我不明白它是怎么工作的。我们要对变换图像中的每个像素进行计算吗 示例 我们有一个2*2的图像 对于这幅图像中的每个像素,我们将进行DFT F(x,y) 我将创建一个新图像,每个像素都是相应复数值的大小 是这样的,还是我遗漏了什么?因为在我看来,它的复杂度是O(N^4)这个方程的意思是“求出像素(u,v)处的F值,求值(右边的公式)。”所以,要得到整个
O(N*N)
。如果我看一下以下算法:
我不明白它是怎么工作的。我们要对变换图像中的每个像素进行计算吗
示例
编辑:通过在单独的步骤中变换行和列,可以以O(NM^2+MN^2)为单位计算二维矩阵DFT。算法在这里:和C#的相关性?我想添加这个可能会很好,因为我不知道函数式编程语言是否会对这个计算有不同的处理方式。啊,我明白了,谢谢!不过,在开始编程之前,我还有一个简短的问题。你现在知道(ux/M+vy/N)的确切意思了吗?根据()的说法,2D DFT的复杂度是O(N^3)@RobS,我在描述给定DFT算法的复杂度。您链接的算法确实是渐进更快的。我把它加到了答案上。