我对Y代表Y值24个值和对应的24个值实验测得,利用傅立叶分析,以适应功能,数据
而T已经值:t=[1,2,3........24]
我想找到之间的关系Y和T作为利用傅立叶分析的公式,
我曾尝试和做的是:
我写了下面的MATLAB代码:
Y=[10.6534
9.6646
8.7137
8.2863
8.2863
8.7137
9.0000
9.5726
11.0000
12.7137
13.4274
13.2863
13.0000
12.7137
12.5726
13.5726
15.7137
17.4274
18.0000
18.0000
17.4274
15.7137
14.0297
12.4345];
ts=1; % step
t=1:ts:24; % the period is 24
f=[-length(t)/2:length(t)/2-1]/(length(t)*ts); % computing frequency interval
M=abs(fftshift(fft(Y)));
figure;plot(f,M,'LineWidth',1.5);grid % plot of harmonic components
figure;
plot(t,Y,'LineWidth',1.5);grid % plot of original data Y
figure;bar(f,M);grid % plot of harmonic components as bar shape
酒吧图的结果是:
现在,我想找到用于表示该数据,这些谐波分量的方程。之后,我想用拟合函数中找到的数据绘制原始数据Y,两条曲线应该彼此接近。
我应该使用cos还是sin或-sin或-cos?
换句话说,将这些谐波表示为函数的规则是什么:Y = f (t)
?
用0填充会显着改变FFT的结果,这可能会隐藏有用的信号。如果你可以根据你的理由抽取2的幂数,但是如果你有数据,使用你的数据。然而,这表示,http://en.wikipedia.org/wiki/Bluestein%27s_FFT_algorithm允许任何大小的FFT(包括素数)在时间O(n log(n))内发生。所以你实际上不必使用2的幂。 – btilly 2011-03-27 03:01:10