songzhen2566 发表于 2012-9-16 11:06

如何画STFT能量,时间,频率三维图

n=length(x);
fs=12000;
t=0:1/fs:(n-1)/fs;
figure(1);
plot(t,x');
title('原始信号');
xlabel('时间 t');
ylabel('幅值 A');
grid on;
nfft=nextpow2(n);
figure(2);
=tfrstft(x,1:nfft,nfft);
contour(t/fs,f(1:length(f)/2)*fs,abs(tfr(1:length(f)/2,:)));
title('短时傅里叶变换布时频图');
xlabel('时间 t');
ylabel('频率 f');
grid on;
figure(3);
mesh(t/fs,f(1:length(f)/2)*fs,abs(tfr(1:length(f)/2,:)));
请问我最后的三维图是能量,时间,频率的三维图吗?
如果不是应该怎样画?
求高手解答,万分感谢!

nishoulong 发表于 2012-9-30 11:58

也是,画这种三维图很多种方法,是幅值吧,好像不是能量

ckakaqiang 发表于 2012-12-24 21:02

楼上说得对,因为你用的是tfrstft线性时频分析,所以计算出来的tfr的abs是幅值,不是能量。

yghit08 发表于 2012-12-24 21:39

个人观点,大家轻拍。
其实,STFT做出来的幅值在一定程度上可以认为是能量在这一频率上的分布情况(不管是加速度信号,还是速度信号,还是位移信号,平方都有能量的意义,另一个方面从数学上说绝对值和平方一样都可以用来衡量距离,也就是说在意义上绝对值和平方是一致的。这是在时间域上的讨论,而STFT也是将时域信号转换到频域上,对应的上述的能量意义在频域上也是成立的)。
补充的是:STFT一般做出来的二维图,但是颜色深浅也是一维,你可以试着旋转你做出来的结果,这样就能看到三维图了。
另外:请把你的结果图贴上来。
页: [1]
查看完整版本: 如何画STFT能量,时间,频率三维图