Как определить основную частоту звука по его частотному спектру?

Я действительно хочу знать основную частоту (герц) каждого звука, который я играю в своей DAW. Все, что у меня есть, это осциллограф. Я могу видеть волновую форму звука, я могу видеть все частоты звука на анализаторе спектра, но я не могу определить основную частоту звука.

Можно ли это понять, просто взглянув на частотный спектр? Это определенно не всегда очевидно, особенно с негармоничными звуками или любым действительно сложным звуком! Есть ли способ найти его несмотря ни на что?

Кроме того, есть ли vst, который действительно делает то, что я ищу? Например, дать вам основную частоту в герцах, когда вы услышите звук?

Ответы (1)

Чтобы сначала ответить на ваш последний вопрос, тюнеры в значительной степени делают это. Так что тюнер VST может помочь. Я не пробовал, особенно на негармоничных звуках.

Вот определение ( Википедия ):

Основная частота, часто называемая просто основной, определяется как самая низкая частота периодического сигнала. [...] С точки зрения суперпозиции синусоид (например, рядов Фурье) основная частота является синусоидальной с самой низкой частотой в сумме.

Итак, в общем, вы хотите выполнить преобразование Фурье звука и найти самый низкий пик. Анализаторы спектра выполняют бит преобразования (игнорируя некоторую сложность, связанную с размерами бинов), поэтому я думаю, что вы можете просто искать пик. Конечно, вам придется отличать его от минимального уровня шума или любых других артефактов.

Как отмечает EP в комментариях, это не сработает для волны произвольной формы. В частности, если он не периодический, понятие основной частоты больше не имеет смысла. Даже если он периодический, существует концепция отсутствующего основного . В статье Википедии упоминается, что это намеренно используется в музыке для обозначения более низких басовых частот, которые иначе невозможно воспроизвести. В этих случаях вам, вероятно, придется провести дополнительный анализ конкретной формы сигнала. Я не знаю алгоритма, который может выполнять это автоматически.

Вероятно, вы могли бы создать тюнер, используя эту технику, но я не уверен, что «настоящие» на самом деле реализованы таким образом. Очень беглый поиск в Google показал, что есть и другие методы, не требующие БПФ, которые, вероятно, более привлекательны для обычного гитарного тюнера.

Этот ответ на переполнение стека может представлять интерес: https://stackoverflow.com/questions/435533/detecting-the-fundamental-frequency

Важно отметить, что самый низкий пик может не совпадать с основной частотой (которая может быть не заполнена) — так, например, f(t) = cos(2wt) + cos(3wt) является периодической, но основная частота (при частота w/6) не имеет амплитуды, и это все еще может быть обнаружено мозгом . И, аналогично, для сигнала произвольной формы нет гарантии, что он будет периодическим и что вы даже сможете определить основную волну. Вероятно, это не проблема в случае с ОП, но важно помнить.
Просто зашел сказать, что определенный физик (и музыкант) согласен с каждой частью этого ответа. Я просто подчеркну, что сигналы в целом не имеют или не должны иметь фундаментальных составляющих. Рассмотрим, например, 3 разных инструмента, играющих одновременно три разные ноты.