如何用matlab画时频图?

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:24:35
我手头上有一组震动数据,想用matlab画出以时间为横轴,频率为纵轴的时频图,请问用
什么命令阿?
最好不用matlab时频工具箱~

spectrogram是进行时频分析的,分析后的结果用mesh或者是imagesc来绘图,前者是三维绘图,后者是两维绘图

这样:
clear;clc
%load('C:\Users\zj\Documents\MATLAB\12.xls');
m=xlsread('C:\Users\zj\Documents\MATLAB\M.xls');
X=m(2,:);%输出第2行
%E=E';
%n=size(X);
%s=E(1:n(2));
T=-0.2:0.002:0.308;
%T = 0:0.001:2;
%X = chirp(T,0,1,150);
[S,F,T,P] = spectrogram(X,256,250,256,1E3);
%surf(T,F,10*log10(P),'edgecolor','none'); axis tight;
mesh(T,F,10*log10(P)); axis tight;
colorbar;
view(0,90);
xlabel('Time (Seconds)'); ylabel('Hz');

plot,如果要从文件读数据还要用到fopen,fscanf等,查看matlab帮助

例:
fid=fopen([pathname filename],'r');
x=fscanf(fid,'%f',[1,inf]); %按行读入原始信号数据
h=findobj('Tag','cypl');
sf=str2double(get(h,'string'));
nt=length(x);
t=0:1/sf:100/sf;
plot(H1,t,x(1:101));
xlabel(