Активное шумоподавление через наушники 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 градусов, но и беспокоиться о расстоянии вашего микрофона и наушника, время прохождения сигнала от микрофона к наушнику. Эти переменные также создадут фазовый сдвиг, и вам обязательно нужно будет подсчитать их в своих расчетах.