离散傅立叶变换(DFT)和快速算法(FFT)的区别是什么?

来源:百度知道 编辑:UC知道 时间:2024/06/08 10:46:50
对于上诉两种算法,基本的我都知道了,我也查看了http://zhidao.baidu.com/question/12851912.htmlhttp://zhidao.baidu.com/question/872986.html 这两篇帖子,介绍的比较详细。但是我的问题是比较具体的,请高手回答,万分感谢。
我是把傅立叶变换用在经济上的时间序列处理问题上。时间域上的数据是离散的实数,一共有522个,然后我用计算机里的dft和fft两种算法作傅立叶变换。当然,得到的角频率一个是522,一个是1024,频域上的数据,一个也是512,另一个是1024,这里我有一个问题,说dft和fft是一样的,体现在哪里?然后我把我的数据减去数据的平均数,也就是把数据平移,然后再作上述两种变换,结果dfft得到的频域上的数据和没平移的时候一样,但是fft得到的就大不相同了。然后我就取数据的前512个,满足2的指数次,结果这次平移不平移对结果没有影响,我就搞不懂了,虽说fft是补零,(当不是2的指数次时),但为什么结果出入这么大?很急,希望大虾问答。谢谢!
上面说的平移应该是纵向的平移。
为什么大家不相信我呢
>> a={1,2,3};
>> b=dfft(a);
>> print b;

2.0000000
-0.50000000 + 0.28867513i
-0.50000000 - 0.28867513i
>> b=fft(a);
>> print b;

1.5000000

fft就是dft的快速算法, 结果是一样的。

应该不会有这个差别。 搞不懂就贴图看看

这个差别在于, 补0再fft这里0是不受你前面减mean的影响的, 所以你前面减东西相当于是减一个矩形, 所以fft的结果相当于减一个Sa,所以就会对形状有一些影响。 其实如果不是你选了一个过于短的列, 也不会有这么明显影响的

fft是dft的一种快速运算,理论上没什么本质区别。至于补零只会让频谱区分度更加明显,不会带来本质的变化。
楼主减去均值,只会导致dft和fft的第一个点值减小。
楼主描述的问题应该不会出现的

fft就是dft的快速算法, 结果是一样的。

应该不会有这个差别。 搞不懂就贴图看看

这个差别在于, 补0再fft这里0是不受你前面减mean的影响的, 所以你前面减东西相当于是减一个矩形, 所以fft的结果相当于减一个Sa,所以就会对形状有一些影响。 其实如果不是你选了一个过于短的列, 也不会有这么明显影响的.