jiaguangfei 发表于 2013-7-22 17:43

关于LMD的问题:极值点不足

从论坛下载LMD代码,输入例子验证,发现错误,请高手指教。
fs=5000;
% x=@(t) (2+cos(90*t).*cos(500*t+1800.*t.*t));
t=0:1/fs:0.341;
% y=x(t);
y=cos(90*t)+cos(500*t);
subplot(5,1,1);plot(t,y);xlabel('原始信号');
=lmd1(y);
subplot(5,1,2);plot(t,pf(1,:));xlabel('PF1');
subplot(5,1,3);plot(t,pf(2,:));xlabel('PF2');
subplot(5,1,4);plot(t,pf(3,:));xlabel('PF3');
subplot(5,1,5);plot(t,pf(4,:));xlabel('残量信号')
输出结果显示:
??? Error using ==> boundary_conditions at 12
not enough extrema
Error in ==> envelope at 48
= boundary_conditions(indmin,indmax,t,x,NBSYM);
Error in ==> zhaochun1 at 10
= envelope(t,h,'spline');
Error in ==> lmd1 at 18
    =zhaochun1(a,h,wucha1);

shuihai707 发表于 2013-7-26 10:27

仔细看看boundary_conditions函数,法国人的镜像延拓函数要求极值点数不能小于3.
if (length(indmin) + length(indmax) < 3)
error('not enough extrema')
所以分解的终止条件设置为极值点个数<3的话就会出现上述问题。

赵强生 发表于 2013-8-17 16:41

什么是lmd啊?有相关的资料介绍吗?谢谢楼上
页: [1]
查看完整版本: 关于LMD的问题:极值点不足