Верхних точек? Пиков? У вас там не совсем синусоида. Пики от чего
будем брать? От положения колеблющейся точки? Может, их устроит совпадение среднегеометрических центров полупериодов колебания во времени (что даёт пик взаимокорреляционной функция), а не пиков?
Если на самом деле нужно получить именно совпадение пиков по времени точно и по амплитуде +/- 10%, то просто определяете разность во времени и величины пиков за прошедший полупериод. Оцениваете разницу во времени и разницу в амплитуде. И применяете эту разницу как коррекцию положения импульса на следующий полупериод. Нужно будет уложиться временем расчёта в 1/3 периода от прохождения пика до начала следующего импульса. Обычно к вычисленным корректирующим значениям, разности времени и разности амплитуды, стоит применить проверки на их безопасность и достоверность.