假设信号
%%%%连续信号
t=0:0.001:20;
y=(1-0.7*cos(t)).*(cos(10*pi*t)+sin(9*pi*t));
plot(t,y);
hold on
希尔伯特变换绘制包络
%%%%希尔伯特变换绘制包络
z1=abs(hilbert(y));
z2=-abs(hilbert(y));
plot(t,z1,t,z2);
插值法绘制包络
d=diff(y);
n=length(d);
d1=d(1:n-1);
d2=d(2:n);
dmin=find(d1.*d2<0&d1<0)+1;
dmax=find(d1.*d2<0&d1>0)+1;%返回极值点位置
y_min=spline(t(dmin),y(dmin),t);%三次样条插值,在每两点之间又增加一些点,让曲线更加光滑
y_max=spline(t(dmax),y(dmax),t);
plot(t,y_min,'r--')
plot(t,y_max,'g--')