如果输入数组为{0,1,2,3,4,5,6,7},则FFT后的结果是正确的

时间:2011-05-30 14:49:25

标签: fft

如果输入数组是{0,1,2,3,4,5,6,7},那么任何人都可以告诉我Fast Furier Transform之后的结果是什么。

我得到了{28,0,0,0,0,0,0,0}。这不对吗?

只想在C中测试FFT实现。

感谢, 安德烈

4 个答案:

答案 0 :(得分:6)

{0,1,2,3,4,5,6,7}的FFT的正确答案是

{28.0000 + 0.0000i, 
-4.0000 + 9.6569i,
-4.0000 + 4.0000i,
-4.0000 + 1.6569i,
-4.0000 + 0.0000i, 
-4.0000 - 1.6569i,
-4.0000 - 4.0000i,
-4.0000 - 9.6569i}

答案 1 :(得分:1)

不,它不正确(单个非零输出元素意味着您的输入由常量值或单个复指数分量组成)。

为什么不使用现有的FFT实现(例如FFTW)来提供参考结果?或者只是实施简单的DFT?

答案 2 :(得分:1)

根据Wolfram Alpha,它是:

enter image description here

请注意,没有单一的“正确答案”,因为DFT / FFT有多个定义,每个定义之间的差异是正向和反向变换所包含的缩放因子。 (此答案与之前接受的答案之间的差异只是sqrt(8))的缩放系数。

答案 3 :(得分:0)

Divij回答假定输入{0,1,2,3,4,5,6,7}的大小= 8,即:

{0,0i},{1,0i},{2,0i},{3,0i},{4,0i},{5,0i},{6,0i}

表示输入被视为二元复合体,大小= 4,即:

{0,1i},{2,3i},{4,5i},{6,7i} 结果是:

{12, 16i}
{-8, 0i}
{-4, -4i}
{0, -8i}
相关问题