Когда я должен использовать фильтр нижних частот? - PullRequest
1 голос
/ 09 января 2012

Я пытаюсь найти шаг гитарной струны.Звук идет через микрофон с частотой дискретизации 44100. Я использую 2048 бит для размера буфера.Учитывая скорость Найквиста, нет смысла использовать больший размер буфера.После получения данных я применяю окно Ханнинга ... и в этот момент я запутался.Должен ли я использовать фильтр низких частот во временной области или сначала принять БПФ?Если бы я сначала взял БПФ, разве не было бы проще использовать только первую половину сэмплов, не учитывая другую, потому что мне нужны частоты в диапазоне 50-1000?После БПФ я буду использовать Harmonic Product Spectrum, чтобы найти основную частоту.

Ответы [ 4 ]

2 голосов
/ 09 января 2012

То, что вы предлагаете, имеет некоторый смысл: если вам не нужны низкие частоты, вам не нужно использовать длинные сэмплы. При длинных выборках вы получаете разрешение по частоте, что может быть полезно в некоторых обстоятельствах, но вы теряете временное разрешение (в том смысле, что последовательные выборки находятся дальше друг от друга).

Несколько вещей, которые не имеют смысла:

1) использование цифрового фильтра нижних частот в вычислениях до БПФ (я полагаю, это то, что вы имеете в виду) просто занимает дополнительное время вычислений и на самом деле ничего вам не дает.

2) «Учитывая скорость Найквиста, нет смысла использовать больший размер буфера»: на самом деле это не связано. Скорость Найквиста определяет максимальную частоту БПФ, а размер буфера определяет разрешение по частоте, а следовательно, и самую низкую частоту.

1 голос
/ 09 января 2012

Чем меньше используемых данных или короче БПФ, тем ниже полученное разрешение частоты БПФ.

0 голосов
/ 03 октября 2014

Из того, что я прочитал здесь , гитара колеблется от 82,4 (открытая 6-я строка) до 659,2 (12-й лад на 1-й струне), а разница между самыми низкими 2 нотами составляет около 5 Гц.
Если возможноЯ бы применил аналоговый фильтр после микрофона, но до схемы дискретизации.В противном случае вы обычно применяете КИХ-фильтр, прежде чем формировать все с помощью функции Хеннинга.Вы также можете использовать Decimation для уменьшения частоты дискретизации или просто выбрать более низкую частоту дискретизации для начала.
Поскольку вы все равно выполняете FFT, просто отбросьте результаты выше 1000 Гц.К сожалению, вы не можете сократить количество выборок - сокращение частоты дискретизации уменьшает разрешение по частоте.

2048 выборок при 44100 Гц даст такое же разрешение, что и 1024 выборки при 22050 Гц.
Что соответствует 512образцы при 11025 Гц.

0 голосов
/ 11 января 2012

Это действительно зависит от вашего алгоритма определения высоты тона, но зачем вам использовать фильтр нижних частот?

Кроме того, гитара обычно выдает спектральную информацию за пределами 1000 Гц. Заметки о струне с высокой E легко генерируют гармоники на частоте 4-5 кГц и выше, и именно эти гармоники - именно то, что сделает ваш HPS красивым и четким.

...