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

Я собираюсь заняться формированием пучка. Я понимаю концепцию и планирую записать все данные, а затем проанализировать сигналы с нескольких микрофонов, чтобы определить местонахождение некоторых шумов (в каждом испытании будет несколько местоположений). Я застрял в том, как записывать данные с нескольких микрофонов одновременно. Для этого я могу использовать компьютер или специальный микроконтроллер. Я планирую использовать от 3 до 10 микрофонов.

Заранее спасибо.

Почему бы не создать многоканальный аудиофайл?

Ответы (3)

Проблема, которую вы представляете, не существует, если вы ее не создаете. Если вы используете ПК со звуковой картой с многоканальным входом, вы получите кадры данных, где сэмплы из каждого канала выровнены. Если вы используете микроконтроллер, вы можете сделать то же самое самостоятельно, при условии, что в микросхеме достаточно каналов АЦП, и вы можете начать преобразование на всех из них сразу (или достаточно близко, это не имеет значения). Помимо скорости отклика, не имеет значения, в каком порядке вы копируете данные или сколько времени занимает их обработка; имеет значение только то, что все выборки с одинаковым индексом были отобраны в одно и то же время.

K.Doe хочет одновременного сэмплирования для целей постобработки для определения направления/местоположения источника звука (например, устройства «бумеранг»/«снайперский искатель», используемые многими военными) при постобработке. Многие микроконтроллеры и звуковые карты на самом деле мультиплексируют каналы через один и тот же АЦП, искажая синхронизацию входного «кадра» путем выборки каждой строки в отдельное время. Для достижения наилучших результатов устройство, которое на самом деле содержит отдельный АЦП для каждой сэмплируемой строки, должно давать более точные результаты.

Я сделал свою магистерскую диссертацию по этому вопросу. Мы использовали ПЛИС, поэтому все выборки можно было делать параллельно. Обработка производилась в режиме реального времени, фактически куда-либо сообщались только данные о направлении. Это устранило множество проблем с хранением и отметкой времени.

Вот одно устройство, найденное при поиске в Google... записывает для вас 16 каналов в прямом эфире; стоит около 400 долларов.

В противном случае, если вы больше любите «сделай сам», поиск Digikey обнаружит несколько микроконтроллеров с более чем 20 входами АЦП, которые будут записывать с частотой до 1 МГц или около того. Я рассматривал несколько из них, которые стоят менее 10 долларов США за штуку для синхронизации многоканального звука с динамиком. проект задержки + рекордер, над которым я работаю.

Почему бы не учесть задержку между отсчетами, взятыми из многоканального мультиплексированного АЦП. Если задержка составляет N * T, вы можете перераспределить их в матрицу, например. вы сохраняете 1-й образец по 10-му индексу, затем 2-й по 9-му индексу... так что 10-й образец по 1-му индексу. Затем при выполнении кросс-корреляции на БПФ/ДПФ все они выравниваются.
@MarkoBuršič Лично я предпочел бы использовать записывающее устройство / чип с несколькими цепями АЦП для записи с минимальной задержкой мультиплексирования. Делает расчеты фазы намного проще; особенно если вы можете использовать полную скорость дискретизации АЦП ~ 1 МГц, чтобы максимизировать точность синхронизации и, таким образом, получить пользу. точность направления и добавлена ​​возможность определения расстояния по волновому фронту, если созвездие микрофонов OP является адекватным.
Без сомнения, это более детерминировано, но прежде чем вы сможете обрабатывать все данные с выборкой 1M, вам потребуется быстрая передача ОЗУ (вероятно, DMA), большой объем ОЗУ и огромная мощность ЦП для выполнения всех математических операций. Теперь, кто знает, действительно ли OP нужна вершина вершины в начале, он должен сначала реализовать всю математику, стоящую за этой фазированной решеткой.
Очень верно. В конце концов, любой метод может работать; в зависимости от фактических «используемых» требований, которые нам еще не были предоставлены. Мое намерение состояло в том, чтобы предложить решение с потенциалом/гибкостью для записи на любом необходимом уровне; затем позвольте математике выполняться как постобработка «в лаборатории» позже, поскольку OP уже спрашивал о выполнении лабораторной постобработки в своем первом вопросе: когда обрабатывать алгоритмы формирования луча? electronics.stackexchange.com/questions/217176/…