Обнаружение звукового сигнала определенной частоты и продолжительности

Как можно обнаружить звуковой сигнал из аудиоданных с известной частотой и длительностью, но неизвестным временем прихода? Я пытаюсь реализовать полосовой фильтр, чтобы игнорировать звуки любой неизвестной частоты. Я еще не преуспел. Как только мне это удастся, я проверю амплитуду звука, если она превысит определенный порог в течение фиксированного периода времени. Это должно обнаружить звуковой сигнал. Мне сказали, что преобразование Фурье также можно использовать для обнаружения звукового сигнала.

Какая стратегия лучше?

Кроме того, слушая аудиозаписи, я пришел к выводу, что Windows или звуковой драйвер моего ноутбука (Inspiron 15R) применяет какой-то шумоподавляющий фильтр на входе микрофона. Это распространено на ноутбуках? Если это так, есть ли способ получить нетронутый реальный звук с микрофона? Я использую библиотеку portaudio для получения звука.


person Arsalan Ahmad    schedule 09.01.2014    source источник
comment
Я думаю, что этот вопрос следует перенести в dsp.stackexchange.com!   -  person pinkpanther    schedule 09.01.2014


Ответы (1)


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

person Paul R    schedule 09.01.2014