Я не знаком со всеми упомянутыми вами методами, но то, что вы выберете, должно зависеть в первую очередь от характера ваших входных данных. Вы анализируете чистые тона или в вашем источнике есть несколько заметок? Является ли речь особенностью вашего вклада? Существуют ли какие-либо ограничения на продолжительность выборки входных данных? Вы в состоянии обменять некоторую точность на скорость?
В какой-то степени то, что вы выбираете, также зависит от того, хотите ли вы выполнять вычисления в время или в частотное пространство . Преобразование временного ряда в частотное представление требует времени, но по моему опыту имеет тенденцию давать лучшие результаты.
Автокорреляция сравнивает два сигнала во временной области. Наивная реализация является простой, но относительно дорогой для вычисления, так как требует попарного различия между всеми точками в исходном и сдвинутом по времени сигналах, с последующим дифференцированием для определения точек поворота в функции автокорреляции и затем выбора минимума, соответствующего основная частота. Есть альтернативные методы. Например, Среднее значение разности является очень дешевой формой автокорреляции, но страдает точность. Все методы автокорреляции рискуют получить ошибки октавы, поскольку в функции существуют пики, отличные от фундаментальных.
Измерение точек пересечения нуля является простым и понятным, но столкнется с проблемами, если в сигнале присутствует несколько сигналов.
В частотном пространстве методы, основанные на FFT , могут быть достаточно эффективными для ваших целей. Одним из примеров является метод спектра продуктов гармоник, который сравнивает спектр мощности сигнала с версиями с пониженной частотой дискретизации для каждой гармоники и идентифицирует высоту тона путем умножения спектров вместе, чтобы получить четкий пик.
Как всегда, ничто не заменит тестирования и профилирования нескольких методов, чтобы эмпирически определить, что лучше всего подойдет для вашей проблемы и ограничений.
Такой ответ может только поцарапать поверхность этой темы. Как и более ранние ссылки, вот некоторые соответствующие ссылки для дальнейшего чтения.