我边际谱作的图怎么不对啊
弱弱的问题:我刚学HHT,照着例子作了个图,怎么不对啊clear;
fs=1200; %fs为采样频率;
N=1200; %采样点数
t=1/fs:1/fs:N/fs;
y1=1*sin(800*pi*t+900)+sin(200*pi*t);
imf=emd(y1);
emd_visu(y1,1:length(y1),imf);
figure(5);
=hhspectrum(imf);
=toimage(A,fa,tt,length(tt));
for k=1:size(E,1)
bjp(k)=sum(E(k,:))*1/fs;
end
f=(0:N-3)/N*fs/2;
plot(f,bjp);
xlabel('频率 / Hz');
ylabel('幅值')
回复 #1 bluelonger 的帖子
怎么了?出什么事了 怎莫图是这样的啊,400的频率和两个幅值都不对啊回复 #3 bluelonger 的帖子
因为有了相位的变化。去掉相位后如图[ 本帖最后由 zhangnan3509 于 2007-6-19 21:59 编辑 ] 不好意思,我是个菜鸟,请问相位怎样去掉啊?
为什么这个做出来就很好呢 ?
“
clear;
fs=1200; %fs为采样频率;
N=1200; %采样点数
t=1/fs:1/fs:N/fs;
y1=1*sin(800*pi*t+900);
%%%%%%%%%%%%%求边际谱
=hhspectrum(y1);
=toimage(A,fa,tt,length(tt));
for k=1:size(E,1)
bjp(k)=sum(E(k,:))*1/fs;
end
f=(0:N-3)/N*fs/2;
plot(f,bjp);
xlabel('频率 / Hz');
ylabel('幅值');
” 幅值为什么 都不是1啊,麻烦了版主
回复 #3 bluelonger 的帖子
或者你可以把sin(800*pi*t+450*pi)得到的结果就是一样的,因为900这个相位不是周期的整数倍回复 #5 bluelonger 的帖子
其实这个不难理解,两个正弦叠加的话,此时相位不同,这时候进行EMD分解得出来的IMF就不会是这个两个正弦信号,你可以看看这个iMF分解结果,那么此时进行Hilbert变换,求边际谱得到就不是原来的两个正弦的频率!你看到的是例子没错,但是你没好好看清楚!破凰也作过类似的例子,他没进行EMD分解,而是把这两个正弦信号直接作为了iMF所以结果就是收敛很好的直线。
那是为了例子好看,而不是标准结果。
假如相位没有这样的变化,这时候就不会像你的图一样了。
但是不管怎么说,分解还是有误差的,所以这直线收敛的不如破凰图那么理想。
回复 #6 bluelonger 的帖子
当你看见了IMF图就应该知道不是1了,有残余分量,另外出现了四阶IMF,所以能量就不能全部收敛到200,和400上了 谢谢斑竹了,基本明白了再问一下HHT边际谱的幅值究竟有没有什么实际的意义呢
比如fft做出来纵轴就是幅值,很清楚,HHT的幅值又是什么呢
回复 #10 bluelonger 的帖子
http://forum.vibunion.com/forum/thread-45278-1-1.html在这个帖子15楼我解释过了。
HHT幅值代表各个局部的能量
[ 本帖最后由 zhangnan3509 于 2007-6-19 22:40 编辑 ] 学习中。。。。谢谢
页:
[1]