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命令来计算吗?
摸不着头脑,恳请前辈指点,谢谢 fft对信号长度有要求吧,如果不满足要求的时候可能就不是用fft做的了。
回复 沙发 sogooda 的帖子
不是很明白,主任能否再说的详细一些? 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;
回复 地板 songzy41 的帖子
非常感谢,我这就试试去 理论上是一样的,只是算法不同,如果结果不同,只能说明是算法不同引起的。回复 地板 songzy41 的帖子
函数建立并调用成功!感谢songzy41! FFT是DFT的一种快速算法
1.FFT是通过DFT运算中存在对称性和周期性而做的化简。
2.FFT可以通过对时间参量或者频率参量不断分解为奇偶表达式,再做进一步改进,分别称为时间抽取法和频率抽取法。
3.matlab给出的FFT介绍实际是DFT的表达式,未作DFT向FFT的简化过程说明,但计算过程内核是FFT。(N=1024时FFT比DFT快一百多倍)
回复 8楼 happy 的帖子
谢谢教授指点 结果会一样吗?
页:
[1]