Удаление фонового шума из аудиосигналов с помощью FFT Python

В настоящее время я работаю над проектом в университете, где я различаю разные инструменты, играющие ноты одного и того же тона, используя Python.

Я записывал различные ноты на разных инструментах, используя микрофон, подключенный к компьютеру.

Я также записал фон для комнаты.

До сих пор у меня есть графики для разных нот на разных инструментах, где по оси Y у меня есть амплитуда в дБ: 20 * log10 (| FFT (сигнал) |)

И по оси x у меня есть частоты дискретизации DFT

Некоторые из гармонических пиков достаточно малы (или фон достаточно велик), чтобы шум мог быть фактором - (не могу публиковать изображения, поскольку я новичок!) Моя проблема заключается в вычислении уровня неопределенности в высоте пики при учете фонового шума.

У меня вопрос:

Ну как рассчитать уровень неопределенности высоты пиков (их относительных амплитуд гармоник) при учете фонового шума.

Некоторые идеи:

Какой порог в дБ мне следует использовать при классификации того, что является гармоническим пиком, а что связано с шумом (следует ли сбрасывать со счетов пик ниже максимального фонового шума (~ 28000 дБ) или среднего значения (~ 15000), или, возможно, в два раза больше одного из этих значений)?

Кроме того, чтобы учесть шум, вносимый фоном, правомерно ли вычитать значение в ячейке БПФ n для фона из ячейки БПФ n для моей инструментальной записи?

Также я просмотрел этот пост как можно удалить шум из записанного звука с помощью fft в MATLAB?, похоже, есть очень разные мнения.

Если это уместно, я могу опубликовать отрывки из моего кода - опасаясь слишком много выкладывать в случае одноклассного плагаризма.

Будем очень признательны за ссылки на литературу, которая поможет в реализации проекта. (Все еще на стадии, когда я рисую данные всеми возможными способами, чтобы искать отличительные атрибуты для каждого инструмента).

заранее спасибо


person Marchy    schedule 16.04.2012    source источник
comment
(если вы сделаете ссылку на изображения, я могу встроить их для вас)   -  person Katriel    schedule 16.04.2012


Ответы (1)


Кажется, вы задаете много вопросов. Позвольте мне начать с ответа на ваш первый вопрос:

Ну как рассчитать уровень неопределенности высоты пиков (их относительных амплитуд гармоник) при учете фонового шума.

Можно было бы ожидать, что звук суммируется линейно (в первом приближении). Естественно было бы сделать несколько записей только фона, а затем измерить среднюю амплитуду и стандартное отклонение гармоник фона.

В качестве примера предположим, что вы смотрите на 3 гармоники - 20 кГц, 11 кГц и 33 кГц. Сделайте несколько записей только фона, и вы найдете средние амплитуды 1,3 дБ, 2,2 дБ и 2,3 дБ со стандартными отклонениями, скажем, +/- 0,1, +/- 0,2 и +/- 0,4 дБ. Теперь у вас есть оценка неопределенности и средняя фоновая гармоника, из которой нужно вычесть.

Есть более разумные способы сделать это, но это только начало.

А теперь перейдем ко второму вопросу.

Какой порог в дБ я должен использовать при классификации того, что является гармоническим пиком, а что связано с шумом (следует ли сбрасывать со счетов пик ниже максимального фонового шума (~ 28000 дБ) или среднего значения (~ 15000) или, возможно, в два раза больше одного из этих значений)?

Если пик находится в пределах среднего + неопределенность (одно или два стандартных отклонения, на самом деле это произвольно и зависит от соглашения), вы можете сказать, что он значительный. Например, если вы обнаружите, что уровень шума на частоте 3 кГц составляет 1,2 дБ с погрешностью +/- 0,3 дБ, и вы измеряете свою гармонику как 1,3 дБ с погрешностью (измеренной таким же образом) 0,1 дБ, то это несущественно.

Теперь о третьей части:

Кроме того, чтобы учесть шум, вносимый фоном, правомерно ли вычитать значение в ячейке БПФ n для фона из ячейки БПФ n для моей инструментальной записи?

Да (вообще говоря). Если вы действительно хотите убедиться в этом, вы можете: А) провести моделирование с суммированием волн и выполнить их БПФ, Б) провести эксперимент, и то же самое, что и в А или В) Пройти математику преобразований Фурье.

Что касается литературы, я думаю, это будет зависеть от того, чем вы конкретно занимаетесь, если вы студент-физик, "Математические методы в физических науках" Мэри Боас хорошо разбираются в преобразованиях Фурье, если вы компьютерный ученый / инженер. вы, вероятно, хотите чего-то другого.

Дай мне знать, если тебе еще понадобится помощь.

person Mike Vella    schedule 16.04.2012