论坛中HHT时频图、边际谱图等绘图函数都已经介绍很多了,我看论坛上有不少人求助关于HHT三维图的绘制方法,实际很简单,要做的就是把利用计算出的瞬时频率将计算出的瞬时幅值映射到你所划分的频率轴上就可以了(映射后是个二维向量),把这个二维向量当成z,你所划分的频率轴当成y,采样点数当成x绘制三维图就可以了。我把程序(plot_hht_3d.m)及运行结果贴出来!PS:由于传不了m文件我用txt格式上传的,要安装到rilling的工具包,计算瞬时频率的时候用到了hhspectrum函数! 运行以下语句即可: clc clear close all fs = 1024; n = 1024; t = 0:1/fs:(n-1)/fs; y = sin(2*pi*50*t) + 0.4*cos(2*pi*150*t); figure,plot(y) set(gca,'xlim',[0,1024]) imf = emd(y); plot_hht_3d(imf,1024,1024,[-60,50]) 函数参数分别为: imf:emd分解后的结果 numfreq:划分的频率个数 fs:采样频率 ANGLE:视图角度 [attach]51015[/attach] [attach]51014[/attach] [attach]51013[/attach] |
GMT+8, 2024-11-24 20:06 , Processed in 0.035592 second(s), 15 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.