如果输入数组是{0,1,2,3,4,5,6,7},那么任何人都可以告诉我Fast Furier Transform之后的结果是什么。
我得到了{28,0,0,0,0,0,0,0}。这不对吗?
只想在C中测试FFT实现。
感谢, 安德烈
答案 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,它是:
请注意,没有单一的“正确答案”,因为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}