prideheart 发表于 2008-3-30 12:45

幅值怎么不对劲啊?

我是用以下程序做的三维图形,感觉幅值怎么不对劲? 应该是三个幅值都一样的吧?
以下是我的程序
clear;
fs=2000;
N=1024;
t=0:1/fs:N/fs;
z=sin(20*pi*t)+sin(200*pi*t)+sin(400*pi*t);
imf=emd(z);
=size(imf);
for i=1:m
   
    subplot(m,1,i);
    plot(imf(i,:));
   
end
figure(3)
dt=1/fs;
%h = nspab(imf',500,0,500,dt);最后两项为其实时间和结束时间
h = nspab(imf',500,0,500,0,N/fs);
subplot(211)
surf(h(1:200,50:end-20))
shading interp
xlabel('时间(点数)','FontSize',12);
Ylabel('频率(Hz)','FontSize',12);
zlabel('幅值','FontSize',12);
title('a','FontSize',12)
view([-75,25])
yt=subplot(223)
imagesc(h(1:200,:))
Ylabel('频率(Hz)','FontSize',12);
xlabel('时间(点数)','FontSize',12);
set(yt,'ydir','nor')
title('b','FontSize',12)
ms=mspc(h)
subplot(224)
plot((1:length(ms)),ms)
xlabel('频率(Hz)','FontSize',12);
ylabel('幅值','FontSize',12);
title('c','FontSize',12)

[ 本帖最后由 zhangnan3509 于 2008-3-30 15:30 编辑 ]

prideheart 发表于 2008-3-30 12:50

频率的幅值为什么200hz的会比前两个小那么多?
谢谢

zhangnan3509 发表于 2008-3-30 16:11

http://forum.vibunion.com/forum/viewthread.php?tid=50010
你可以参考一下这个帖子,我自己也尝试了,用rilling的程序出来的结果也是有一定的衰减

prideheart 发表于 2008-3-30 21:03

回复 3楼 的帖子

我仔细看了斑竹在http://forum.vibunion.com/forum/thread-45278-1-1.html15楼的总结
破凰那个程序做出来效果确实不错,难道只是因为他那个没有进行emd分解?
我试着把破凰程序里的信号相加再进行emd分解,再划边际谱,得到的效果相当不理想,这样看来就是说emd分解的时候出现了很大的虚假分量? 我记得有一篇帖子里好象是说,要分解的频率最好相差2倍以上分解才不容易产生虚假分量,是有这么一说么?

zhangnan3509 发表于 2008-3-30 21:15

回复 4楼 的帖子

不是这个意思。边际谱的幅值在实际应用中,经常会出现问题。zhlong版主发这个帖子总结了以下原因。
一个是EMD分解的原因,一个是整周期采样问题。
(也许还有其他的原因,zhlong版主也只是阶段性的总结)
比如两个正弦信号相叠加,幅值相同,如果频率差别在2倍以内,此时emd分解效果就差一些不能将这两个信号区别开。但这不是虚假分量的问题。可能是程序的问题,因为没有用过huang本人的程序不知道效果会怎么样。

[ 本帖最后由 zhangnan3509 于 2008-3-30 21:20 编辑 ]

prideheart 发表于 2008-3-30 21:29

回复 5楼 的帖子

版主真及时,非常感谢。
来论坛好久了,看了不少高人的指点,也学习了不少HHT的理论,非常的感谢。
我起初的想法是这样的,我要处理的信号正常状态下是低频的,当然也夹杂有一些高频成分,我本来是想利用边际谱来判断信号,如果高频量过大,则应该是判为信号突变,如一楼我所举的例子,高频部分的幅值居然比实际的小了那么多,很是纳闷。
请问大家是怎么来利用HHT来处理自己的信号的呢?

prideheart 发表于 2008-4-1 10:46

回复 5楼 的帖子

黄在原文中指出,边际谱的幅值代表某个频率成分的能量,能量越大,该频率的振动波在整个时间轴出现的可能性也越大。时间取得越长,振动能量越大,边际谱的幅值也就越大。因此,我认为边际谱的幅值和信号的幅值没有直接联系。

引用在边际谱相关讨论中的这句话,结合图形看出,高频部分的边际谱帅减最大,是否是由于采样频率较低,相对来说高频中采的点较少,所以高频部分部分边际谱的幅值就比其他的低,不知道我这个想法对不对?

sjdwjt 发表于 2008-4-14 22:16

你的nspab函数用的不对,用你前面注释了的那个h = nspab(imf',500,0,500,dt);得到的幅值就是对的了,我已经运行了程序得到了图片

[ 本帖最后由 sjdwjt 于 2008-4-14 22:17 编辑 ]

hyhwqy 发表于 2009-3-5 20:02

sjdwjt at 2008-4-14 22:16:49
你的nspab函数用的不对,用你前面注释了的那个h = nspab(imf',500,0,500,dt);得到的幅值就是对的了,我已经运行了程序得到了图片


请问大侠,为什么你做出来的图片时间点数能到采样的时间点数,而我的程序运行出来只能到400个点数?
能否告诉我这个怎么实现啊?多谢了先~

qqvirile 发表于 2009-3-6 17:11

回复 楼主 prideheart 的帖子

请问楼主可否把mspc.m能发一下么?
页: [1]
查看完整版本: 幅值怎么不对劲啊?