我可以对我的信号数据实施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的希尔伯特原始频谱?我只知道边际频谱是通过对希尔伯特频谱进行积分而获得的,但是如何进行积分呢?
请帮助我,非常感谢!!!
答案 0 :(得分:0)
我必须在旧的matlab版本中使用代码。但是现在我有了边际希尔伯特谱。因此,如果您对使用新版Matlab的边缘希尔伯特谱有更好的答案,请给您留言。 衷心的感谢!