Активное шумоподавление через наушники iPhone по умолчанию

Мы хотим создать приложение, которое будет использовать Active Noise Cancellation, используя наушники iPhone по умолчанию. То есть, чтобы получить внешний звук с помощью наушников iPhone Mic и сделать сдвиг фазы на 180 градусов. Наконец, чтобы воспроизвести перевернутый звук через динамик наушников по умолчанию, чтобы отменить внешний звук (Активное шумоподавление).

Ссылка: http://electronics.howstuffworks.com/gadgets/audio-music/noise-canceling-headphone.htm

Можно ли это сделать с iPhone-приложением?

Ответ 1

Со звуком, движущимся со скоростью 343 м/с, если расстояние между микрофоном и динамиком составляет половину метра, у вас будет около 1,5 миллисекунд времени обработки. Не исключено, но это не простой подвиг, особенно если учесть время, необходимое для того, чтобы различные компоненты фактически начали воспроизведение и чтобы запись попала в ваше приложение. Я думаю, что именно поэтому большинство активных шумоподавляющих наушников требуют специализированного оборудования.

Тем не менее, я думаю, вы должны обязательно пойти на это. Я тоже очень заинтересован в этом; Думаю, вам нужно было бы сделать преобразование Фурье на входе, а затем сдвинуть фазу на 180 °, как вы сказали, затем преобразовать это обратно во временную область и, наконец, воспроизвести его пользователю?

Ответ 2

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

Привет

Ответ 3

Вы можете использовать наушники по умолчанию для iPhone, чтобы сделать проект шумоподавления, но вряд ли возможно с iPhone-приложением. Это возможно с драйвером ядра, но не с пользовательским приложением, поскольку этот тип приложений рассматривается как приложение реального времени, а это значит, что вам нужно реализовать их на низком уровне. Как сказал @lericson, у вас есть всего несколько ms для обработки сигнала. Чем короче расстояние от микрофона и наушника, тем короче время обработки у вас есть (и лучший результат шумоподавления вы можете получить).

У меня есть аналогичный проект, который использует наушники для iPhone как вход/выход, потому что он относительно дешев. Я реализовал шумоподавление на плате FPGA с кодом VHDL (схема FPGA работает быстрее, а время обработки более предсказуемо/измеримо). Вам нужно будет не только сдвинуть фазу на 180 градусов, но и беспокоиться о расстоянии вашего микрофона и наушника, время прохождения сигнала от микрофона к наушнику. Эти переменные также создадут фазовый сдвиг, и вам обязательно нужно будет подсчитать их в своих расчетах.