######matlab优化工具箱removed
fs=500;
f1=15;
tmax=1;
N=tmax*fs; %采样点数
t=0:1/fs:tmax-1/fs;
x=sin(t*2*pi*f1);
H_x=hilbert(x); %希尔伯特变换
df=abs(diff(atan(imag(H_x)./x0))./(2*pi*diff(t))); %差分求瞬时频率
E=abs(H_x); %求瞬时幅值
tt=t(1:length(df));
df_c=fs/(10*N);
dtt_c=tmax/N;
%转换为可以画RGB图的矩阵
for i=1:N
for j=1:N-1
if((df_c*i)>df(j)&&(df_c*(i-1))<df(j))
C(i,j)=E(j);
end
end
end
imagesc([0 tmax],[0 fs/10],C) %画RGB图
xlabel('t');
ylabel('f');
title('hht')
colorbar
这里由于imagesc函数y轴的值是从上往下递增的,所以图像和hht画的图相反