|
回复 1 # dingdingysu 的帖子
% 包络算法,未考虑边界条件
d = diff(x6); %对信号x6求导
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;%找出信号出现极大值的下标
envmin = spline(t(indmin),x6(indmin),t); %利用三次样条曲线进行插值拟合出信号的下包络线
envmax = spline(t(indmax),x6(indmax),t);%利用三次样条曲线进行插值拟合出信号的上包络线
figure;
hold on;
plot(t,x6);
plot(t,envmin,'r');
plot(t,envmax,'m'); grid on;
hold off;
xlim([0 5]); |
|