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毫秒