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==> = init(varargin{:});
而我用我以前下的emd.m运行只能得到7个imf.
所以我想你能把你的emd.m文件发给我吗?我的邮箱li_1025tian@163.com
谢谢 我下了个isvector.m.就没有问题.但出来的结果不对.imf为1*512的距阵. 明显不对.不知谁知道什么原因呢 isvector是matlab内建的,用不着下载。可能是你的matlab版本比较低。 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的距阵。 我也想用emd处理一下我的信号,在网上下了一个工具包,但安装的时候老是出错,请问各位大侠,程序怎么安装呢??我刚开始学matlab,有点愚钝 ,期待指教 本帖最后由 wdhd 于 2016-9-13 13:53 编辑
原帖由 jinnian 于 2008-6-17 22:18 发表
我看缺省是2000,就拿3000试了一下。
jinnian提供的办法值得我们思考一个问题:即适当增大OPTIONS.FIX的值是否可以弥补非整周期采样的不足?但增大FIX的值之后,程序运行会慢一些(当然,这个就是小问题了) 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;
页:
1
[2]