Гуглить peak detection algorithm.
В общем случае нужно пропустить данные через сглаживающий фильтр, скорректировать рядом стоящие пики, выделить основную гармонику и с её помощью произвести поиск более высоких и слабых гармоник.
www.biomedcentral.com/1471-2105/10/4