function [output1,output2]=My_Template(BPIndex,input,L,R)
% Window=240;
% input=my_medfilt(input,Window);%把BP去基线漂移
% diff_input=[0 diff(input)];
% input=mean_filter(diff_input);%平均滤波器
lenB=length(BPIndex);
leni=length(input);
T=L+R+1;
m_template=[];
for i=2:lenB-1
    m_template(i-1,:)=input(BPIndex(i)-L:BPIndex(i)+R);
end
[m1,m2]=size(m_template);
if m1>1
    m_template=mean(m_template);
end
% figure
% plot(m_template)
if BPIndex(1)>L
    x1=(input(BPIndex(1)-L:BPIndex(1)+R))';    
    co(1)=corr1(x1,m_template); 
else
    x1=input(1:BPIndex(1)+R)';
    template1=m_template(T-(BPIndex(1)+R)+1:T);
    co(1)=corr1(x1,template1); 
end
for k=2:lenB-1
    x=(input(BPIndex(k)-L:BPIndex(k)+R))';    
    co(k)=corr1(x,m_template);
end
if leni-BPIndex(lenB)>R
    x2=(input(BPIndex(lenB)-L:BPIndex(lenB)+R))';    
    co(lenB)=corr1(x2,m_template); 
else
    x2=input(BPIndex(lenB)-L:leni)';
    template2=m_template(1:L+1+leni-BPIndex(lenB));
    co(lenB)=corr1(x2,template2); 
end
output1=BPIndex;
output2=co;
end

%求互相关系数函数
function output=corr1(x,t)
c=[];
abs_x=sqrt(dot(x,x));
abs_t=sqrt(dot(t,t));
c=4*dot(t,x)/(abs_x+abs_t)^2;
output=c;
end


    


    

