Я пытаюсь найти высоту гитарной струны. Звук проходит через микрофон с частотой дискретизации 44100. Я использую 2048 бит для размера буфера. Учитывая скорость Найквиста, нет смысла использовать больший размер буфера. После получения данных я применяю окно Хеннинга ... и здесь я запутался. Должен ли я использовать фильтр нижних частот во временной области или сначала использовать БПФ? Если бы я сначала взял БПФ, не было бы проще использовать только первую половину выборок, игнорируя вторую половину, потому что мне нужны частоты в диапазоне 50-1000? После БПФ я буду использовать спектр гармонического произведения, чтобы найти основную частоту.
Когда мне следует использовать фильтр нижних частот?
Ответы (3)
Это действительно зависит от вашего алгоритма определения высоты тона, но зачем вам вообще использовать фильтр нижних частот?
Вдобавок гитара обычно производит спектральную информацию за пределы 1000 Гц. Ноты на высокой струне E легко создают гармоники на частоте 4-5 кГц и выше, и именно эти гармоники сделают ваш HPS красивым и четким.
То, что вы предлагаете, имеет смысл: если вам не нужны низкие частоты, вам не нужно использовать длинные семплы. С длинными выборками вы получаете разрешение по частоте, что может быть полезно в некоторых обстоятельствах, но вы теряете разрешение по времени (в том смысле, что следующие друг за другом выборки находятся дальше друг от друга).
Несколько вещей, которые не имеют смысла:
1) использование цифрового фильтра нижних частот в вычислениях перед БПФ (я предполагаю, что это то, что вы имеете в виду) просто требует дополнительного времени вычислений и на самом деле ничего вам не дает.
2) «Учитывая скорость Найквиста, нет смысла использовать больший размер буфера»: на самом деле они не связаны. Частота Найквиста определяет максимальную частоту БПФ, а размер буфера определяет разрешение по частоте и, следовательно, также самую низкую частоту.
Чем меньше используется данных или чем короче ваше БПФ, тем ниже результирующее частотное разрешение БПФ.