声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: awang_976

[HHT] emd分解结果看不懂

[复制链接]
发表于 2008-11-2 23:07 | 显示全部楼层
回复 jinnian  附件
sd.jpg (126.5 KB)
你用的是那个emd.m文件呢!现在好多emd.m,最近我在网上下了emd.m(网站http://perso.ens-lyon.fr/patrick.flandrin/emd.html)
如下运行
clear;
fs=512;
t=0:511;
% t=t*1/1000;
x=2*sin(2*pi/20*t);
y=5*sin(2*pi/25*t);
z=x+y;
figure(1);
plot(t,z)
imf=emd(z);
出现了如下错误
?? Undefined function or variable 'isvector'.

Error in ==> E:\智能信息处理\心音处理HHT\HHT变换\package_emd\EMDs\emd.m (init)
On line 744  ==> if ~isvector(x)

Error in ==> E:\智能信息处理\心音处理HHT\HHT变换\package_emd\EMDs\emd.m
On line 160  ==> [x,t,sd,sd2,tol,MODE_COMPLEX,ndirs,display_sifting,sdt,sd2t,r,imf,k,nbit,NbIt,MAXITERATIONS,FIXE,FIXE_H,MAXMODES,INTERP,mask] = init(varargin{:});
而我用我以前下的emd.m运行只能得到7个imf.
所以我想你能把你的emd.m文件发给我吗?我的邮箱li_1025tian@163.com
谢谢
回复 支持 反对
分享到:

使用道具 举报

发表于 2008-11-4 15:52 | 显示全部楼层
我下了个isvector.m.就没有问题.但出来的结果不对.  imf为1*512的距阵. 明显不对.不知谁知道什么原因呢
发表于 2008-11-4 16:27 | 显示全部楼层
isvector是matlab内建的,用不着下载。可能是你的matlab版本比较低。
发表于 2008-11-4 16:40 | 显示全部楼层
clear;
fs=512;
t=0:511;
% t=t*1/1000;
x=2*sin(2*pi/20*t);
y=5*sin(2*pi/25*t);
z=x+y;
figure(1);
plot(t,z)
OPTIONS.FIX = 3000;
imf=emd(z,OPTIONS);
要这样用才能得到正确的结果,用你的方法确实只能得到1*512的距阵。
发表于 2008-11-5 14:21 | 显示全部楼层
我也想用emd处理一下我的信号,在网上下了一个工具包,但安装的时候老是出错,请问各位大侠,程序怎么安装呢??我刚开始学matlab,有点愚钝 ,期待指教
发表于 2008-11-20 21:32 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-13 13:53 编辑
原帖由 jinnian 于 2008-6-17 22:18 发表


我看缺省是2000,就拿3000试了一下。


jinnian提供的办法值得我们思考一个问题:即适当增大OPTIONS.FIX的值是否可以弥补非整周期采样的不足?但增大FIX的值之后,程序运行会慢一些(当然,这个就是小问题了)
发表于 2008-11-25 21:50 | 显示全部楼层
OPTIONS.FIX = 3000;
imf=emd(z,OPTIONS);
我有点不懂,EMD里没有OPTIONS啊?
里面只有defopts.stop = defstop;
defopts.display = 0;
defopts.t = 1:max(size(x));
defopts.maxiterations = 2000;
defopts.fix = 0;
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-21 01:37 , Processed in 0.048366 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表