搞了好几年的MATLAB,今天突然有点迷了(我常常在自己熟悉的领域里犯迷@_@)。今天用MATLAB中的FFT函数,做了个简单的FFT仿真,比如128点FFT,得到的结果中总是有点数的倍数。下面附上几条MATLAB程序,有兴趣的朋友可以试一下。本来为1的直流量得到却是128,本来为1的基波得到64,本为0.2的三次谐波得到12.8。也就是说MATLAB中的FFT函数算完之后还是需要处理的,且这个处理跟点数有关,比如128点,直流分量需要除以128,而其他次数的分析结果则需要除以64。我现在必须知道的是,通常TI给出的FFT程序(我以前搞ADSP时的FFT程序结果是直接可以用来算幅值的)的结果是否也包含了这样一个点数的倍数?这个结果是否可以直接用来算幅值,或者是象MATLAB的结果这样需要除以点数之后才能算幅值?
function ffttry clc for m=0:1:50*128-1 x(m+1)=1+cos(2*pi/128*m)+0.2*cos(2*pi*3*m/128+pi/4)+0.1*cos(2*pi*63*m/128+pi/6); end figure k=[0:50*128-1]; plot(k,x) fft(x,128)
先行谢过了。 |