如何使用matlab2018a获得希尔伯特边际频谱?

时间:2019-07-02 01:32:43

标签: matlab

我可以对我的信号数据实施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和希尔伯特谱hs。

我的问题是我如何才能获得基于imf,hs,emd和hht的希尔伯特原始频谱?我只知道边际频谱是通过对希尔伯特频谱进行积分而获得的,但是如何进行积分呢?

请帮助我,非常感谢!!!

1 个答案:

答案 0 :(得分:0)

我必须在旧的matlab版本中使用代码。但是现在我有了边际希尔伯特谱。因此,如果您对使用新版Matlab的边缘希尔伯特谱有更好的答案,请给您留言。 衷心的感谢!