function [T_off_out] = preciseT(in_ECG,points) ekg = slidingavg(in_ECG,5); T_off_out =0; for i = 1:length(ekg)-13, gradient2(i) = ekg(i+2)-ekg(i); gradient4(i) = ekg(i+4)-ekg(i); gradient8(i) = ekg(i+8)-ekg(i); gradient12(i) = ekg(i+12)-ekg(i); end smallG = find(abs(gradient12)<20); gradient12(smallG) = 0; clear('smallG'); smallG = find(abs(gradient8)<10); gradient8(smallG) = 0; clear('smallG'); smallG = find(abs(gradient4)<10); gradient4(smallG) = 0; clear('smallG'); smallG = find(abs(gradient2)<10); gradient2(smallG) = 0; clear('smallG'); T_off_possible = zeros(1,length(points)); for i=1:length(points), for point_fuzzy = points(i)-2:points(i)+2 if (i > round(length(points)/2)) && (i < round(length(points)/2)+1) if (abs(sum(gradient12(point_fuzzy:point_fuzzy+1))))<30 if (abs(sum(gradient8(point_fuzzy:point_fuzzy+1))))<20 T_off_possible(i) = 0.5; if (abs(sum(gradient4(point_fuzzy:point_fuzzy+1))))<20 T_off_possible(i) = 1; if (abs(sum(gradient2(point_fuzzy:point_fuzzy+1))))<20 T_off_possible(i) = 2; end end end end else if (abs(sum(gradient12(point_fuzzy:point_fuzzy+1))))<30 if (abs(sum(gradient8(point_fuzzy:point_fuzzy+1))))<20 T_off_possible(i) = 0.25; if (abs(sum(gradient4(point_fuzzy:point_fuzzy+1))))<20 T_off_possible(i) = 0.5; if (abs(sum(gradient2(point_fuzzy:point_fuzzy+1))))<20 T_off_possible(i) = 1; end end end end end end end T_off_out = T_off_possible;