📄 xfemd2.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 + -