离散傅立叶变换(DFT)和快速算法(FFT)的区别是什么?
对于上诉两种算法,基本的我都知道了,我也查看了http://zhidao.baidu.com/question/12851912.html和http://zhidao.b...
对于上诉两种算法,基本的我都知道了,我也查看了http://zhidao.baidu.com/question/12851912.html和http://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
-0.50000000 - 0.50000000i
0.50000000
-0.50000000 + 0.50000000i
>> a=a-meanc(a);
>> b=dfft(a);
>> print b;
0.00000000
-0.50000000 + 0.28867513i
-0.50000000 - 0.28867513i
>> b=fft(a);
>> print b;
0.00000000
-0.50000000
0.00000000
-0.50000000
>> 以上是我在gauss上运行的结果
大家在matlab也可以试,调用fft(x,4),就是fft了,如果fft(x)就是dfft了。 展开
我是把傅立叶变换用在经济上的时间序列处理问题上。时间域上的数据是离散的实数,一共有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
-0.50000000 - 0.50000000i
0.50000000
-0.50000000 + 0.50000000i
>> a=a-meanc(a);
>> b=dfft(a);
>> print b;
0.00000000
-0.50000000 + 0.28867513i
-0.50000000 - 0.28867513i
>> b=fft(a);
>> print b;
0.00000000
-0.50000000
0.00000000
-0.50000000
>> 以上是我在gauss上运行的结果
大家在matlab也可以试,调用fft(x,4),就是fft了,如果fft(x)就是dfft了。 展开
5个回答
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
fft就是dft的快速算法, 结果是一样的。
应该不会有这个差别。 搞不懂就贴图看看
这个差别在于, 补0再fft这里0是不受你前面减mean的影响的, 所以你前面减东西相当于是减一个矩形, 所以fft的结果相当于减一个Sa,所以就会对形状有一些影响。 其实如果不是你选了一个过于短的列, 也不会有这么明显影响的.
应该不会有这个差别。 搞不懂就贴图看看
这个差别在于, 补0再fft这里0是不受你前面减mean的影响的, 所以你前面减东西相当于是减一个矩形, 所以fft的结果相当于减一个Sa,所以就会对形状有一些影响。 其实如果不是你选了一个过于短的列, 也不会有这么明显影响的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fft是dft的一种快速运算,理论上没什么本质区别。至于补零只会让频谱区分度更加明显,不会带来本质的变化。
楼主减去均值,只会导致dft和fft的第一个点值减小。
楼主描述的问题应该不会出现的
楼主减去均值,只会导致dft和fft的第一个点值减小。
楼主描述的问题应该不会出现的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fft只是dft的一种计算机快速算法,结果与dft相同
dft可以说是是一切离散变化分析的前身,因为变化形式相似。
dft就是把时域信号变化为频域,以得简明的物理含义与处理方法。
dft可以说是是一切离散变化分析的前身,因为变化形式相似。
dft就是把时域信号变化为频域,以得简明的物理含义与处理方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |