• 大小: 8KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-03
  • 语言: Matlab
  • 标签: LMD  matlab  程序  

资源简介

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);
 

评论

共有 条评论