В настоящее время я работаю над проектом на 2-й год. Я должен закодировать в java тюнер. Я выбрал гитарный тюнер.Поиск пиков спектрограммы
Осмотревшись в интернете, я нашел код Java, чтобы сделать БПФ. Я немного изменил его, понял и проверил. Я знаю, что он отлично работает (я сделал график и посмотрел на разные пики, используя простые функции синусов).
Теперь я пытаюсь найти основную частоту. Насколько я понимаю, эта частота задается первым пиком.
Я хотел бы создать метод, который найдет, например, первые 5 пиков моего БПФ и дает их мне с их индексами.
Сначала я сделал простой способ, когда я сравнивал по две по две точки моей спектрограммы, и когда знак менялся, я знал, что существует пик. Этот метод отлично работает с идеальными сигналами (без шума). Однако, если я добавляю шум, он становится совершенно бесполезным.
Я действительно плохой в java (я действительно начал с этого проекта и в основном простую функцию, описанную выше, это моя мастерская штука ... просто чтобы вы поняли мой уровень).
Может ли кто-нибудь мне помочь? Я был бы очень признателен! :) Спасибо заранее!
Отличный день!
Fireangel
Шаг не является максимальной частотой FFT. Частота шага может не быть первым пиком или любым пиком. Особенно для звуков, записанных на низких струнах гитары. – hotpaw2
Возможный дубликат: http://stackoverflow.com/questions/8699360/audio-analysis-frequency-vs-pitch – hotpaw2
Спасибо, hotpaw2 за ответ. Я также придумал понятие поля. Из того, что я понял, шаг связан с частотой, поэтому я подумал, что найти частоту может получить меня. – fireangel3000