仍小呆 发表于 2014-12-10 19:10

HHT边际谱不太了解

我的程序如下,在进行HHT边际谱分析的时候,为什么采样频率对我的边际谱图有影响,那么我怎么才能知道实际的频率是多大呢,很困惑,请求大家帮忙。我把程序和图黏贴如下:clear;
fs=10;
y=xlsread('data3.xlsx','B1:B488');
z=y;
imf=emd(z);
=hhspectrum(imf);
=toimage(A,fa,tt,length(tt));
cemd_visu(z,1:length(z),imf);
figure(2)
for k=1:size(E,1)
bjp(k)=sum(E(k,:))*1/fs;
end
plot(Cenf(1,:)*fs,bjp);
xlabel('频率/ Hz');
ylabel('幅值');fs=10时和fs=50时结果就不一样,虽然图形一样,但是数值大小却变了。。。

shuihai707 发表于 2014-12-11 10:55

对信号进行EMD分解时.为了得到一个IMF,是通过不断从信号中减去其局部均值而得到的,而局部均值是通过对信号极值点作三次样条插值求包络平均得到的,因此信号极值点的准确与否直接影响着EMD的分解结果,为了对信号正确进行EMD分解,就要使采样得到的信号的局部极值点不能太过偏离原信号的局部极值点,一方面,极值点的偏离会造成信号幅度的减小也即能量的减小,另一方面,极值点相对于原信号的不规则偏离(对应非整数倍采样率的情况)会导致EMD分解产生虚假模式。
为了提高极值点拟合的准确性,一般经验式地把采样率至少取为被分析信号最高频率的4倍以上。所以,采样率影响EMD的分解结果,也会影响后续的计算结果。

shuihai707 发表于 2014-12-11 11:10

Sampling effects on the Empirical Mode Decomposition,看看这篇文献。

airazor 发表于 2014-12-11 16:29


    bjp(k)=sum(E(k,:))/N;
这个是正确的。你的程序第11行有问题,我也是在反复调试中发现了这个问题。建议你先将用模拟信号调试一下程序,这样容易发现问题。

仍小呆 发表于 2014-12-11 22:13

airazor 发表于 2014-12-11 16:29
bjp(k)=sum(E(k,:))/N;
这个是正确的。你的程序第11行有问题,我也是在反复调试中发现了这个问题。 ...

好的,谢谢你的意见。。我在思考思考

仍小呆 发表于 2014-12-11 22:13

shuihai707 发表于 2014-12-11 11:10
Sampling effects on the Empirical Mode Decomposition,看看这篇文献。

非常感谢。。我来找看看

仍小呆 发表于 2014-12-11 22:15

shuihai707 发表于 2014-12-11 10:55
对信号进行EMD分解时.为了得到一个IMF,是通过不断从信号中减去其局部均值而得到的,而局部均值是通过对信 ...

主要是因为一开始我的的只是一些数据点,对于这些点内部隐藏的信号的频率具体多大也不清楚啊,我就直接按照时间采样步长的倒数作为采样频率来做的。。所以也很困惑

仍小呆 发表于 2014-12-17 08:52

仍小呆 发表于 2014-12-11 22:13
好的,谢谢你的意见。。我在思考思考

对了,你这个N是多少呢,我的程序里没有说到N啊。。谢谢
页: [1]
查看完整版本: HHT边际谱不太了解