⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xfemd2.m

📁 在MATLAB环境下实现二维emd分解的实现
💻 M
字号:
tic;clearclcrs=imread('rs.jpg');rs_tuceng=rs(:,:,1);     %%%%%%%%%%%%%%选择图图层%%%%%%%%%%%%%%%%%%%%%%%%[m,n]=size(rs_tuceng);for i=1:ny=rs_tuceng(:,i);    ip=double(y);       %%%%%%%%%待分解数据序列一维列向量%%%%%%%%%%%%%%PRE_yuzhi=0.005; %%%%%%--偏差阈值%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%NUM1=20;         %%%%%%%--分解得到IMF分量的最多数目%%%%%%%%%%%%%%%%%%%%%%%%NUM2=800;        %%%%%%%--提取IMF分量的最多筛分次数;%%%%%%%%%%%%%%%%flag=0;I=0;num1=0;num2=0;N=length(ip);x=1:N;[max,max_No,min,min_No]=MaxMin(ip);while(max_No(1)~=0 && min_No(1)~=0)    if(num1>=NUM1)         break;     end    while(1)        num2=num2+1;        [yy1,yy2]=Enovelope(x,max,max_No,min,min_No);        mean=[(yy1+yy2)/2]';        h1=ip-mean;        [max,max_No,min,min_No]=MaxMin(h1);        if(max_No(1)==0 || min_No(1)==0)            flag=1;            break;        end        [yy1,yy2]=Enovelope(x,max,max_No,min,min_No);        mean=[(yy1+yy2)/2]';        hmax=MaxMax(mean);        N1=ZeroNum(h1);        tiaojian1=hmax-PRE_yuzhi;        tiaojian2=abs(length(max_No)+length(min_No)-N1);        if((tiaojian1<0 && tiaojian2<=1) || num2<=NUM2)            I=I+1;            imf(:,I)=h1;            break;        else            ip1=h1;            [max,max_No,min,min_No]=MaxMin(ip1);        end    end        if(flag==1)        flag=0;        break;    else        ip=ip-imf(:,I);        num1=I;        [max,max_No,min,min_No]=MaxMin(ip);     endendimf(:,I+1)=ip;k=I+1;   %%%%%%%%%%%%%%%%%%分解的模式函数的个数%%%%%%%%%%%%%%%%%%rs_imf1(:,i)=imf(:,1);rs_imf2(:,i)=imf(:,2);%rs_imf3(:,i)=imf(:,3);%rs_imf4(:,i)=imf(:,4);endsubplot(3,2,1)image(rs)colormap(gray)subplot(3,2,2)image(rs_tuceng)colormap(gray)subplot(3,2,3)image(rs_imf1)colormap(gray)subplot(3,2,4)image(rs_imf2)colormap(gray)%subplot(3,2,5)%image(rs_imf3)%colormap(gray)%subplot(3,2,6)%image(rs_imf4)%colormap(gray)toc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -