jww100 发表于 2008-10-17 08:19

DFT,FFT在MATLAB中的算法有什么区别?

老师给我们出了个作业,有两部分(都是计算傅里叶级数的系数):
part(1) Write a MATLAB scribe to solve for the Coefficients using a DFT.
part(2) Use MATLAB's FFT algorithm to solve for the coefficients.
我想问一下,这两部分有什么区别吗?
MATLAB中DFT不就是用FFT命令来计算吗?
摸不着头脑,恳请前辈指点,谢谢

sogooda 发表于 2008-10-17 09:04

fft对信号长度有要求吧,如果不满足要求的时候可能就不是用fft做的了。

jww100 发表于 2008-10-17 09:16

回复 沙发 sogooda 的帖子

不是很明白,主任能否再说的详细一些?

songzy41 发表于 2008-10-17 09:39

FFT是DFT的快速算法,和DFT还是有区别的。估计LZ是没有DFT的程序,MATLAB中也不带有该函数,但在有些书中能找到。现附上一个DFT的函数供参考:
function Xk=DFT(xn,N);
%Discrete Fourier Transform
%
n=;
k=n;
Wn=exp(-j*2*pi/N);
nk=n'*k;
Wnnk=Wn.^nk;
Xk=xn*Wnnk;

jww100 发表于 2008-10-18 00:45

回复 地板 songzy41 的帖子

非常感谢,我这就试试去

liuxiaoping 发表于 2008-10-18 21:23

理论上是一样的,只是算法不同,如果结果不同,只能说明是算法不同引起的。

jww100 发表于 2008-10-20 22:45

回复 地板 songzy41 的帖子

函数建立并调用成功!
感谢songzy41!

happy 发表于 2008-10-20 23:41

FFT是DFT的一种快速算法
1.FFT是通过DFT运算中存在对称性和周期性而做的化简。
2.FFT可以通过对时间参量或者频率参量不断分解为奇偶表达式,再做进一步改进,分别称为时间抽取法和频率抽取法。
3.matlab给出的FFT介绍实际是DFT的表达式,未作DFT向FFT的简化过程说明,但计算过程内核是FFT。(N=1024时FFT比DFT快一百多倍)

jww100 发表于 2008-10-20 23:46

回复 8楼 happy 的帖子

谢谢教授指点

hiddenyang 发表于 2012-9-1 15:27

结果会一样吗?
页: [1]
查看完整版本: DFT,FFT在MATLAB中的算法有什么区别?