G. Rilling EMD分解程序端点延拓问题
G. Rilling的EMD分解边界处理函数function = boundary_conditions(indmin,indmax,t,x,z,nbsym)有这么两句:
% 将序列根据对称中心,镜像到两边
tlmin = 2*t(lsym)-t(lmin);%左边镜像
tlmax = 2*t(lsym)-t(lmax);
trmin = 2*t(rsym)-t(rmin); %右边镜像
trmax = 2*t(rsym)-t(rmax);
但分解结果端点效应的处理右端比左端要好,这是为何?
fs=200;
t = 1/fs:1/fs:1;
a=cos(2*pi*100*t);
b=cos(2*pi*30*t);
c=cos(2*pi*10*t);
s = a+b+c;
OPTIONS.FIX = 50;%设置迭代计算筛分次数
imf=emd(s,OPTIONS);
err1=a-imf(1,:);
err2=b-imf(2,:);
err3=c-imf(3,:);
figure(1)
subplot(411)
plot(t,s);
subplot(412)
plot(t,err1)
subplot(413)
plot(t,err2)
subplot(414)
plot(t,err3)
[ 本帖最后由 huangqiang 于 2009-9-17 11:07 编辑 ] 把左边镜像做一下小改动,结果好像稍微好一些
% 将序列根据对称中心,镜像到两边
tlmin = -t(lmin);
tlmax = -t(lmax);
trmin = 2*t(rsym)-t(rmin);
trmax = 2*t(rsym)-t(rmax);
不解,盼高人指点。 原帖由 huangqiang 于 2009-9-17 10:43 发表 http://www.chinavib.com/forum/images/common/back.gif
G. Rilling的EMD分解边界处理函数function = boundary_conditions(indmin,indmax,t,x,z,nbsym)
有这么两句:
% 将序列根据对称中心,镜像到两边
tlmin = 2*t(lsym)-t(lmin);%左边镜像
...
lz的信号太完美了,换个别的,估计就是另一种结果了 这个信号分解已经相当糟糕了,
但仍然可以看出右端效果较好。
fs=200;
t = 1/fs:1/fs:1;
a=cos(2*pi*80*t);
b=cos(2*pi*30*t);
c=cos(2*pi*10*t); 呵呵……已经知道问题出哪儿了。 LZ可以分享一下啊
问题出在哪 问题出在哪?楼主分享一下啊 就是啊,原因出在哪里呢? G. Rilling的端点延拓不仅仅是对称延拓,他是根据端点和第一个极值点的关系再决定延拓的方法。楼主的问题我估计是左右端点不是同一种情况导致的。因为信号是周期的,可以将端点取成相同的,延拓应该左右情况会相同。 {:{23}:}哦,原来如此~ 楼主太监了 本帖最后由 lovesea 于 2013-4-1 16:18 编辑
楼主,问题出在哪了?分享下啊!是信号取的不对称的结果吧?
lz现在对端点处理进展的怎么样,,有没有做出很好的改进,效果怎么样,贴图讨论下
页:
[1]