wzwry 发表于 2010-8-8 18:32

为什么在进行FFT后,计算幅值时单边谱乘2/ N,双边谱乘1/ N(N为计算FFT的点数)

为什么在进行FFT后,计算幅值时单边谱乘2/ Nfft,双边谱乘1/ Nfft(Nfft为计算FFT的点数)

hcharlie 发表于 2010-8-8 21:12

回复 楼主 wzwry 的帖子

简单地说,Matlab就是这样规定的,别的程序包未必如此。参见
http://forum.vibunion.com/forum/viewthread.php?tid=23665

[ 本帖最后由 hcharlie 于 2010-8-8 21:17 编辑 ]

hcharlie 发表于 2010-8-9 08:26

再回复 楼主 wzwry 的帖子

要分清楚3个概念:
1)FFT和IFFT算法。它纯粹是一个数学方法。有一条,一个数列FFT以后,再IFFT能还原。
2)各个软件包对它们的处理方法。用MATLAB做一次FFT再做一次IFFT以后,数据放大了N倍。MATLAB中不管是FFT还是IFFT都没有除以N。有些软件包在FFT中除N而IFFT不除,有些在FFT和IFFT中各除以根号N。
3)算法的具体应用。FFT算法有多种用处,时域信号的FFT求频谱只是其一,还有比如脉冲响应求频响函数;自相关求自功率谱,互相关求互功率谱。。。。。等等。
所以结论:
当用MATLAB软件包中的FFT求时域信号的频谱这个特定情况时,FFT以后要除以N,而再IFFT还原时不除了;从双边谱变成单边谱时乘2。
页: [1]
查看完整版本: 为什么在进行FFT后,计算幅值时单边谱乘2/ N,双边谱乘1/ N(N为计算FFT的点数)