Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm FFT算法的差异_Algorithm_Fft_Dft - Fatal编程技术网

Algorithm FFT算法的差异

Algorithm FFT算法的差异,algorithm,fft,dft,Algorithm,Fft,Dft,我看过很多关于FFT主题的插图。我看到了DIT和DIF之间的一个基本区别,然而,即使仅使用DIT,在相同的样本量下,我也看到了一些具有不同旋转因子的版本,有些使用-1,有些不使用-1,我想知道使用基数2 DIT FFT的有效方法是什么 以下是8点的DIT FFT: 这是另一个,但最初不乘以第0个旋转因子: 这里还有更不同的一个: 如果每个算法都不同,那么这些算法如何提供与普通DFT匹配的结果 如果这是一个愚蠢的问题,我很抱歉,但我真的想了解FFT的概念并在代码中实现它。不同的人对DFT的定

我看过很多关于FFT主题的插图。我看到了DIT和DIF之间的一个基本区别,然而,即使仅使用DIT,在相同的样本量下,我也看到了一些具有不同旋转因子的版本,有些使用-1,有些不使用-1,我想知道使用基数2 DIT FFT的有效方法是什么

以下是8点的DIT FFT:

这是另一个,但最初不乘以第0个旋转因子:

这里还有更不同的一个:

如果每个算法都不同,那么这些算法如何提供与普通DFT匹配的结果


如果这是一个愚蠢的问题,我很抱歉,但我真的想了解FFT的概念并在代码中实现它。

不同的人对DFT的定义不同。一些算法计算k=-N/2和N/2-1之间的DFT,其他(大多数)算法计算k=0和N-1之间的DFT。据我所知,至少有3种不同的规范化约定。但最终,所有的DFT都在做同样的事情,只要你知道遵循哪些约定,你就可以将任何DFT结果转换为你需要的格式。不要重新发明轮子。您自己的实现几乎不可能像FFTW这样久经考验且值得信赖的实现那样快速或在数字上稳定。您的问题的答案归结为傅里叶变换中的对称元素以及利用这些元素来最大化效率的不同方式。请注意,第0个旋转因子等于1。1的乘法可以有效地删除!谢谢你的回答。顺便说一句,我知道我的实现最多会“比DFT快”,但我不想只使用FFT,我想实现它并探索这个主题。不同的人对DFT的定义不同。一些算法计算k=-N/2和N/2-1之间的DFT,其他(大多数)算法计算k=0和N-1之间的DFT。据我所知,至少有3种不同的规范化约定。但最终,所有的DFT都在做同样的事情,只要你知道遵循哪些约定,你就可以将任何DFT结果转换为你需要的格式。不要重新发明轮子。您自己的实现几乎不可能像FFTW这样久经考验且值得信赖的实现那样快速或在数字上稳定。您的问题的答案归结为傅里叶变换中的对称元素以及利用这些元素来最大化效率的不同方式。请注意,第0个旋转因子等于1。1的乘法可以有效地删除!谢谢你的回答。顺便说一句,我知道我的实现最多会“比DFT快”,但我不想只使用FFT,我想实现它并探索这个主题。