Matlab 版 (精华区)
发信人: zjliu (秋天的萝卜), 信区: Matlab
标 题: [合集]help:matlab数据分析中的幅值问题
发信站: 哈工大紫丁香 (2003年10月11日12:22:27 星期六), 站内信件
────────────────────────────────────────
lwjehit (tianyaren) 于 Tue Sep 23 16:43:31 2003 说道:
我用如下的程序,作数组分析程序,可是,求得的幅值于原始数据中的幅值不对应,经请
各位大虾指导:
先行致谢!!
t = 0:.0001:4095*.0001;
f=0:10/4.095:10000;
k=3;
if(k==1) y =10*square(2*pi*30*(t+84*.0001));
elseif(k==2) y= 10*sawtooth(2*pi*30*t);
elseif(k==3) y1=100*sin(2*pi*50*t)+50*sin(2*pi*100*t)+25*sin(2*pi*150*t)+12.
5*sin(2*pi*200*t);
y2=6.25*sin(2*pi*250*t)+3.125*sin(2*pi*300*t)+1.56125*sin(2*pi*
350*t);
y=y1+y2;
end;
end;
%psd transform
yfft=fft(y,4096);
yfftabs=abs(yfft)*2/(4096);
ypsd=psd(y,4096,10000,hann(512));
sypsd=sum(ypsd)*4/4096^2;
sypsd
f1=f([1:2049]);
figure(1);
subplot(211);
plot(t,y);
axis([0,4096*.0001,-200,200]);title('时域信号图');grid on;
subplot(212);plot(f,yfftabs); axis([0,500,0,max(yfftabs)+1]);title('信号的傅立
叶变换的模图');grid on;
figure(2);
subplot(211);
plot(f1,ypsd);axis([0,500,0,max(ypsd)+10]);grid on;title('信号的功率谱的模图'
);
subplot(212);
plot(f,yfftabs,'r'); axis([0,500,0,max(yfftabs)+1]);grid on;title('信号的傅立
叶变换的模图');
yfindex=find(yfftabs==max(yfftabs(:)));
yfindex=yfindex*10/4.095;
yfindex
end;
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年09月23日17:35:13 星期二 说道:
你把fft后的结果用fftshift函数作用一下就行了
────────────────────────────────────────
lwjehit (tianyaren) 于 Tue Sep 23 18:01:26 2003 说道:
谢谢!
────────────────────────────────────────
lwjehit (tianyaren) 于 Tue Sep 23 18:12:02 2003 说道:
谢谢!
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.406毫秒