wbh4158 发表于 2010-2-26 21:07

请教关于时频分析问题

本人最近在试着用时频分析函数tfrstft()来生成时间序列的时频图,
但是和功率谱比较起来产生一些疑问,望大侠帮助。

上图是我生成的功率谱。

这是我用同样数据生成的时频图。
程序见
fs=200
T=-511/fs:1/fs:512/fs;
y=2*sin(5*pi*T)+3*sin(10*pi*T)+4*sin(15*pi*T)+5*sin(20*pi*T)+6*sin(25*pi*T);
save sinfile.txt y -ASCII

%%%%生成功率谱
load sinfile.txt
N=length(sinfile); %N样点的个数
fx=fft(sinfile);
df=fs/N; %df频率分辨率
n=0:N/2; %
f=n*df; %频率轴上横坐标
% subplot(121);
% plot(sinfile);
% subplot(122);
plot(f,abs(fx(n+1)));
%%%生成时频图
figure;
tfrstft(y');


请问时频图中时间轴怎么能显示的是【-511/fs,512/fs】或【0,512/fs】是这个时间呢?
并且功率谱中明显看出信号的几个频率分别为:2.5,5,7.5,10,12.5.
可是时频图中怎么显示的几个主频率都是小于1的数呢?
望大侠指点程序。

ChaChing 发表于 2010-2-26 22:48

猜测tfrstft所绘的频率可能是normalize frequency!
也就是说最大的那个为12.5/200=0.0625

wbh4158 发表于 2010-2-27 07:20

那如何把tfrstft所绘的频率给修正过来呢??
或用什么其他的函数来绘画时频图呢?

ChaChing 发表于 2010-2-27 11:13

回复 板凳 wbh4158 的帖子

建议搜索下此版, 虽然非个人专业, 但我记得好像有提过!

wbh4158 发表于 2010-2-27 18:50

搜索了
没有找到!
那位高人帮忙指点一下啊!
小弟在此谢过了。

zhuxiaofei 发表于 2010-4-17 17:09

回复 板凳 wbh4158 的帖子

wbh4158,你画的tfrstft所绘的频率是normalize frequency,你将tfrstft绘画的时频图频率乘以采样频率即可。
很简单,方法如下:
(1)方法一,使用tfrstft函数后,利用contour函数时,将contour函数中的f乘以采样频率即可;
(2)方法二,修改matlab安装文件下toolbox下的tfrstft函数,在函数中修改其绘图函数,其f乘以采样频率即可;

dzkt 发表于 2010-4-17 18:01

请教关于时频分析问题

那横坐标中的时间咋改啊?

472889111 发表于 2010-5-30 00:36

请问上面图该怎么看呢?给了我们一些什么信息呢?谢谢!

miwueshine 发表于 2011-12-28 09:58

回复 8 # 472889111 的帖子

给出了某一频率出现的时间

miwueshine 发表于 2011-12-28 10:00

回复 7 # dzkt 的帖子

时间就是Ti=t*dt;其中dt=1/fs;t=0:N-1;

ufo158 发表于 2011-12-28 10:30

我觉着..使用spectrogram来做好一些..
参数的意义更加清晰顶啊..

eagle1208 发表于 2012-3-15 17:16

{:{23}:}{:{23}:}

syxqq123 发表于 2012-3-15 22:30

有一个关于时频分析的问题,请高手帮忙
http://forum.vibunion.com/thread-109781-1-2.html

还好还好 发表于 2013-5-26 14:56

再乘上你的采样频率200就行了
页: [1]
查看完整版本: 请教关于时频分析问题