Подтвердить что ты не робот

Какой алгоритм используется для шумоподавления в наушниках?

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

4b9b3361

Ответ 1

from Этот сайт

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

Все это основано на помехах звуковых волн. Когда 2 волны противоположных фаз мешают, в результате нет звука. (он также работает со светом.)

Вам следует взглянуть на страницу wikipedia на волновые помехи, чтобы найти нужную фазу, которую нужно произвести, чтобы отменить внешний шум

Для синусоидальной системы:

Возьмем 2 волны:

enter image description here

и

enter image description here

Мы хотим выразить полученную волну как:

enter image description here

Учитывая A1, вы хотите найти A2, чтобы A0 = 0

Это означает, что данный Phi1 вам нужно найти Phi2 таким, что A0 = 0

Вы можете доказать, что:

enter image description here

И при решении A0 = 0 вы получите частоту волны, которую нужно создать, чтобы отменить шум. Это называлось деструктивными помехами.

enter image description here

Звуковые волны не в 1 измерении... так что вы просто получите деструктивные помехи в одном направлении:

enter image description here

Теперь вам просто нужно найти материал звуковых сигналов...


Я попытаюсь ответить на ваш комментарий.

Во-первых:

Двумерная задача не намного сложнее, чем 1D.

Внешний шум может быть приблизительным как источник, расположенный на бесконечности. Вы создадите разрушительный шум с источником в наушниках, и вы можете предположить, что амплитуда одинакова на равном расстоянии от источника.

Вам нужно записать это на оси x, y (полезно использовать полярные координаты)

enter image description here

и вы сможете получить амплитуду в каждой точке плана с помощью простой формулы тригонометрии, например:

:\sin (A + B) =\sin A\cdot\cos B +\cos A\cdot\sin B

:\cos (A + B) =\cos A\cdot\cos B -\sin A\cdot\sin B

:\sin (A - B) =\sin A\cdot\cos B -\cos A\cdot\sin B

:\cos (A - B) =\cos A\cdot\cos B +\sin A\cdot\sin B

Второе:

Все задержки моделируются в "Phi" вашего разрушительного источника. Можно просто адаптировать расчетный Phi, чтобы он учитывал задержку.

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