Информация
- В рейтинге
- 55-й
- Откуда
- Москва, Москва и Московская обл., Россия
- Зарегистрирован
- Активность
Специализация
Инженер встраиваемых систем, DevOps-инженер
Старший
Git
Bash
CI/CD
C
Встраиваемая система
Программирование микроконтроллеров
Разработка программного обеспечения
Алгоритмы и структуры данных
Системное программирование
Разработка драйверов
Там простая математика. Пропустить запись через КИХ фильтр. Просто надо быстродействие в вычислении корреляции. Надо аппаратный fir фильтр порядка 3к.
Да. Те самые короткие импульсы на частоте 2,5kHz.
Понятно, что для вычисления угла прихода волны у нас в распоряжении wav файла есть только смещение фазы сигнала в каналах записи. Если смещение равно нулю, то и угол AoA равен 0 градусов.
При частоте дискретизации 96000 Hz один семпл длится всего 10.4 us. Скорость звука 331 м/c. За это время звук пролетает 3.4 мм.
Получается, что в предельном случае, когда угол на источник звука 90 градусов и при расстоянии между микрофонами 6 см=0.06м разность межу фазами звуковых дорожек составит всего 0.06/331.0 = 0.00018126s = 181.26 us или всего 17 cемплов на 96kHz.
С какой погрешностью мы тогда сможем измерять угол на источник звука? Получается что 90/17= 5.2 градуса. Не густо.
Cогласно рисунку прямоугольного треугольника ABC, последовательность формул (1)-(10) приводит к тому, что угол прихода звуковой волны AoA вычисляется по формуле (11). Тут применяется теорема Пифагора (1), простейшая тригонометрия (7) и формула вычисления пройденного пути по известной скорости и времени (3).
Из тригонометрических преобразований легко выражается формула для угола прихода звуковой волны (11). Единицы измерения тут радианы. От -pi/2 до pi/2
Как видите, зависимость нелинейная. Арксинус это монотонно возрастающая нечётная функция, заданная на области определения от -1 до 1 области значения от -pi/2 до pi/2.
Учитывая, что микрофоны жестко закреплены , а скорость звука постоянная, ToF может максимум быть (13)
Расстояние между микрофонами определяет то, какую максимальную разность фаз имеет смысл анализировать внутри программы. Если расстояние равно 1 метр, то звук пройдет это расстояние за 3ms. При частоте дискретизации 96kHz длительность семпла равна 10.4us. Выходит, что надо вычислять корреляцию между дорожками отличающимися максимум на 290 семплов.
TOF мы определим при помощи ЦОС вычислений программным образом алгоритмом вычисления корреляции между сигналами на каналах. База D - известна, скорость звука тоже известна. По сути можно выполнить свёртку записей правого и левого микрофона вокруг +/- (TOF_max/2), найдем максимум свёртки, определим значение максимума свёртки. Оно и будет являтся TOF.
Для тестирования потребуется ещё такая формула.
Для вычисления угла прихода волны в диапазоне от -90.....+90 надо считать корреляцию по следующему количеству отсчетов (12)
Буквально несколько предварительно рассчитанных значений
Для уменьшения погрешности определения направления прихода звуковой волны надо либо
1. Увеличивать расстояние между микрофонами
Увеличивать частоту дискретизации.
Второй способ более трудный, так как диктофон не может записывать быстрее, чем 96kHz. Вот и остается наращивать расстояние между микрофонами.
Какой длины считать свёртку?
Важный параметр это сколько семплов охватывать при вычислении свёртки? Чтобы не было неоднозначности. Надо чтобы длина волны уместилась на расстоянии между микрофонами не полностью. Допустим расстояние между микрофонами 1 метр. Значит надо, чтобы длины волн, которые прилетают были длиннее чем один метр. То есть из частота должна быть меньше 331 Hz.
С одной стороны, чем больше будет слагаемых тем явнее окажется максимум. С другой стороны увеличивается количество вычислений. Надо помнить что на каждом семпле мы считаем ToF_sample количеств свёрток (12). А потом еще находим максимум в массиве.
При этом надо помнить что источник звука может двигаться. И надо выбрать такой интервал времени, в котором цель не успела переместиться слишком далеко.
Можно все ЦАПики на один spi повесить. Каскадом или параллельно, управляя по chip select.
book_722_619.pdf https://share.google/gXTv9AGsS3Pkr1aBX
Радиолокация для всех.
Вообще я очень рад, что на habr появляются такие замечательные тексты
Летучие мыши по ходу вообще в уме делают синтез аппаратуры. Подобно тому как SAR спутники землеобзора строят карту поверхности земли по отдельным радиолограммам в известных местах.
.
Я пришел к выводу , что полноценный сонар надо проектировать на FPGA. Или в тандеме с одноплатным компьютером . Микроконтроллер просто захлёбывается при обработке сложных импульсов.
Из всего этого можно сделать отличную охранную систему, для навигации ptz видеокамер. Охранять дачный участок, аэропорты, металлургические комбинаты , нефте переливные станции и прочее.
Или датчики для авто парковки автомобилей.
Если перейти на пьезокерамику, то можно смастерить глубиномер с анализом карты глубин и поиском скопления рыб.
Можно теперь провести испытания на полигоне , расставив кругом уголковые отражатели, выпеленные из коробок.
Подобрать хороший микрофон та ещё задача. Какой у Вас микрофон?
Решение классическое. Надо испускать сложные сигналы: ЛЧМ или ФКМ.
Как же это здорово!
Можно подобрать отладочные платы с DAC , которые управляются по spi.
Я так понял у Вас зондирующий импульс простой. B=1. На одной частоте.
Поэтому его отражение и можно поймать алгоритмом герцеля.
Однако такими импульсами невозможно различить две цели стоящие рядом. Идущие звеном самолёты.
Радары и сонары уже давно работают только со сложными импульсами. 1‹‹B.
Это ЛЧМ сигналы и модулированные м-последовательность фазовые пакеты. Причина проста . У сложных сигналов очень хорошая автокорреляционная функция. Это позволяет на порядки увеличить разрешение по дальности.
Спасибо, что вставили ссылку на мой текст. Прям сезон сонаров.
https://habr.com/ru/articles/1050166/
Что если генерировать звуковую зондирующий волну не колонками , а пьезокерамическими звуко-излучателями? Зуммерами. Они компактные и управляются одним проводом.
Как раз ШИМ пригодится.
Cross компиляция это когда программу для телефона собирают на другом компьютере. Например на windows РС.
Это делают для ускорения сборки больших программ.
Почему для GPS выбрали именно Gold-коды, а не M-последовательности?
M-последовательности применяются в радиолокации для кодирования BPSK зондирующих импульсов.
Вот, пожалуйста.
https://habr.com/ru/articles/1050166/
Сонар из Музыкальной Колонки
Стоимость оборудования для элкспериментов менее 4kRUR.