📄 weispline.m
字号:
tic
%信号的EMD分解
%求信号的IMF单分量
clc
clf
Ts=0.01;
t=0:Ts:30;
x=4*sin(2*pi*0.5*t)+sin(2*pi*0.1*t+pi/3)+rand(1,length(t));subplot(611);plot(t,x);grid
for j=1:5000
[max_x min_x max_I min_I]=yantuo(Ts,t,x);
N=length(max_x);M=length(min_x);
fit_u=spline(max_I,max_x,t); %上包络拟合
fit_l=spline(min_I,min_x,t); %下包络拟合
x_avg=(fit_u+fit_l)/2; %求均值
signal=x-x_avg; %求余量
c=ones(5,length(x));
i=1;
NUM_max=M+N-8;
NUM_zer=length(find(abs(signal<1e-006)));
if (NUM_max==NUM_zer)|(NUM_max-NUM_zer==1)&...
(sum(x_avg.*conj(x_avg))/sum(signal.*conj(signal))) %判断是否达到IMF的两个条件
c(i,:)=signal;
x=x-signal;
i=i+1;
else
x=signal;
end
end
subplot(612);plot(t,x);grid
toc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -