資源簡介
LMD matlab 程序 局域均值分解,利用滑動平均求的,不是用三次樣條
代碼片段和文件信息
%原始lmd算法,效果很不好,不知道程序哪里寫錯
function[PFASI]=lmd(m)
c=m;
k=0
wucha1=0.001;
n_l=nengliang(m);
while?1
????k=k+1;
????a=1;
????h=c;
????[pfasi]=zhaochun(ahwucha1);
????c=c-pf;
????PF(k:)=pf;
????A(k:)=a;
????SI(k:)=si;
????c_pos=pos(c);
????n_c=nengliang(c);
????n_pf=nengliang(pf);
????if?length(c_pos)<3?||?n_c ????????PF(k+1:)=c;
????????break
????end
end
function?pos=pos(y)
%功能:找序列極值點位置坐標
%y:輸入序列
%pos:極值點的序列位置坐標
m?=?length(y);
d?=?diff(y);
n?=?length(d);
d1?=?d(1:n-1);
d2?=?d(2:n);
indmin?=?find(d1.*d2<0?&?d1<0)+1;
indmax?=?find(d1.*d2<0?&?d1>0)+1;
if?any(d==0)
??
??imax?=?[];
??imin?=?[];
??
??bad?=?(d==0);
??dd?=?diff([0?bad?0]);
??debs?=?find(dd?==?1);
??fins?=?find(dd?==?-1);
?
評論
共有 條評論