【发布时间】:2019-07-02 01:32:43
【问题描述】:
我可以在我的信号数据上实现 eemd 和 hht,以使用 matlab2018a 获得 imf 和希尔伯特谱。但是,我不知道如何获得希尔伯特边缘谱。
我找到了一些代码,但我认为它们不适合我的 matlab 版本。我发现的代码包含 matlab2018a 无法识别的“hhspectrum”和“toimage”。 我找到的代码如下:
[A,f,tt]=hhspectrum(imf);
[E,tt,Cenf]=toimage1(A,f);
disp_hhs(E);
E=flipud(E);
NN=size(E,1);
for k=1:size(E,1)
bjp(k)=sum(E(k,:))*1/Fs;
end
ff=(0:NN-1)/NN*(Fs/2);
figure(3);
plot(ff,bjp);
% plot(Cenf(1,:)*Fs,bjp);
xlabel('Frequency / Hz');
ylabel('Amplitude');
我还找到了 hhspectrum.m 和 toimage.m,但是在我实现它们时出现了一些错误,我不知道如何修复它们。
我已经使用如下代码实现了我的信号数据:
imf=eemd(globalsignal,3,100);
[hs,f,T]=hht(imf,fs);
得到了 imf 和 hilbert 谱 hs。
我的问题是如何根据 imf、hs、emd 和 hht 获得希尔伯特主谱?另外,怎么才能画出时间、频率、能量的3D图呢?我只知道边缘谱是通过希尔伯特谱积分得到的,但是如何积分呢?
请帮帮我,非常感谢!!!
【问题讨论】:
标签: matlab