function [tmin,tmax,zmin,zmax] = boundary_matchwave(indmin,indmax,t,x)
% 一种自适应波形匹配端点延拓法
% 输入参数说明: indmin 极小值地址序列
% indmax 极大值地址序列
% t 时间序列(时序)1:length(x)
% x 时间序列(值)
%
% 输出参数说明: tmin 极小值地址序列
% tmax 极大值地址序列
% zmin 极小值
% zmax 极大值
%
lx = length(x);
indmax=find(diff(sign(diff(x)))==-2)+1;
indmin=find(diff(sign(diff(x)))==2)+1;
% 判断极值点个数
if (length(indmin) + length(indmax) < 3)
error('not enough extrema')
end
% 左端处理
leftmax = indmax(1);
leftmin = indmin(1);
if leftmin > leftmax
left = leftmin; % 左边处理长度
leftindex = indmin;
leftminind = indmax;
leftdisc = leftmax; % 末端长度
else
left = leftmax;
leftindex = indmax;