Технический форум по робототехнике.
blindman » 14 май 2009, 15:00
Тема выделена оттуда: Проект звукового модуля под шину RoboBus.
<Digit>Внимание!
Правила темы:
Все сообщения, отклоняющиеся от математического направления в общие принципы и прочие сопутствующие обсуждения считаются оффтопиком, т.е. ЗАПРЕЩЕНЫ!Кто шарит в математике, помогите плиз
- micro.png (7.96 КиБ) Просмотров: 25012
Есть 3 точи расположенных на окружности заданного радиуса
через 120°. Есть некая точка
, координаты которой неизвестны. A,B,C - это микрофоны, X - источник звука. Считаем, что микрофоны и источник звука лежат в одной плоскости (горизонтальной). Известны
и
.
- Надо найти и
- Если перейти из плоскости в пространство, и допустить, что источник звука может находиться вне плоскости микрофонов, то будет ли формула из п.1 справедлива для и , где - проекция точки на плоскость микрофонов.
- Верно ли, что 3 микрофонов недостаточно, чтобы определить не только (), но и угол возвышения источника звука? Похоже что это верно ...
Последний раз редактировалось
Digit 15 май 2009, 16:45, всего редактировалось 2 раз(а).
Причина: дорисовал правила этой темы
blindman » 16 май 2009, 19:34
Все уже придумано, ничего нового не придумать.
Я тут провел расчеты, заложил ограничения для помещения (расстояние до 10м, высота до 2.5м), получается очень большой диапазон решений. Из всего я делаю вывод : с 3 микрофонами имеет смысл только пытаться оценить направление с точностью +-30 градусов без учета высоты, гораздо проще и быстрее, а точность практически такая и получается.
Достаточно точно аналитически можно оценить направление только если известно на какой высоте расположен источник звука.
Подумаю над добавлением еще одного канала в звуковой модуль.
=DeaD= » 16 май 2009, 19:37
Очень большой диапазон решений - это +/- сколько градусов от центра робота?
Неужели вся хитровыдуманная аналитика не даёт улучшения решения хотя-бы до +/- 10 градусов?
blindman » 16 май 2009, 22:22
Чото я поленился сразу в градусах посчитать, смотрел на координаты. Посчитал в градусах, в общем не так уж и плохо получается, с большой вероятностью укладывается в +- 6 градусов :
- Гистограмма вероятности ошибки, сделана по результатам 1000000 тестов
- Screenshot-test - OpenOffice.org Calc -1.png (9.96 КиБ) Просмотров: 1995
Большие ошибки возникают, когда угол между вектором направления и одной из осей X Y мал. Думаю можно будет избежать и таких ошибок, поменяв местами эти оси - но пока неясно как отловить такую ситуацию. Микрофоны расположены в углах
равностороннего равнобедренного прямоугольного треугольника, прямой угол в начале координат.
Angel71 » 17 май 2009, 00:27
еще чем ближе микрофоны будут, тем менее точно. удалять тоже в пределах разумного
ну эт вы и так знаете, навсякий просто напоминаю.
blindman » 17 май 2009, 04:03
На самом деле точность больше зависит от скорости АЦП, чем от расстояния между микрофонами.
Duhas » 17 май 2009, 08:52
blindman, а что за трава дает равносторонние прямоугольные треугольники?
contr » 17 май 2009, 10:35
точность больше зависит от скорости АЦП, чем от расстояния между микрофонами.
попсовые МК с оверклоком дают 200ksps, без потери качества.
Ловили импульс по фронту или произвольный звуковой сигнал?
blindman » 17 май 2009, 11:53
Duhas писал(а):blindman, а что за трава дает равносторонние прямоугольные треугольники?
Если до 5 часов уравнения решать, и не такое появится, причем без всякой травы
contr писал(а):попсовые МК с оверклоком дают 200ksps, без потери качества.
Ловили импульс по фронту или произвольный звуковой сигнал?
С учетом времени переключения каналов, у меня будет думаю порядка 80ksps, хотя может и меньше, если точности АЦП на максимальной частоте не хватит. Сигнал - произвольный звук.
Добавлено спустя 1 час 38 секунд:blindman писал(а):Большие ошибки возникают, когда угол между вектором направления и одной из осей X Y мал. Думаю можно будет избежать и таких ошибок, поменяв местами эти оси - но пока неясно как отловить такую ситуацию.
Критерий оказывается очень простой - абсолютное значение разности расстояний до источника звука близко к расстоянию между микрофонами.
=DeaD= » 17 май 2009, 13:09
Duhas писал(а):blindman, а что за трава дает равносторонние прямоугольные треугольники?
Не знаю что это за трава, но её первым её курнул еще Лобачевский
contr » 17 май 2009, 15:34
Сигнал - произвольный звук.
Спасибо! Теперь дошло, что сигнал может быть случайным. Алгоритм, видимо, такой:
два замера по любому микрофону – фронт/тыл,
разность в уровнях по каналам –углы на источник.
Если подрезать ВЧ составляющую звука, то избавимся от проблем связанных со скоростью оцифровки и точность станет выше.
blindman » 17 май 2009, 15:59
При чем тут разность уровней? Уровень сигнала мало влияет на результат, учитывается только сдвиг во времени.
Смысла специально убирать ВЧ не вижу, снижение частоты сэмплирования само приведет к срезу ВЧ
contr » 17 май 2009, 16:16
Уровень как раз и является параметром времени. Для нарастающего минимальный уровень будет на микрофоне, который ближе к источнику.
Измерить мы должны максимально быстро, т.е. именно в пределах полупериода сигнала. ВЧ составляющие попавшие только в один из каналов уродуют картинку.
А просто измерение среднего уровня вообще ничего не дает, поскольку затухание звука при нашей базе в 5..10см ничтожно.
blindman » 17 май 2009, 16:23
Для непрерывного сигнала уровень ни о чем не скажет. Ключевое понятие метода определения задержки - взаимная корреляция.
contr » 17 май 2009, 16:32
Если сигнал периодический, то его действительно можно уровню засечь. Фаза прихода, а значит и уровень на разных каналах будет разный. Так древние УЗ детекторы движения работали, да и автомобильные "Мангусты".
Я случайным сигналом считаю речь или музыку.
blindman » 17 май 2009, 16:38
contr писал(а):Я случайным сигналом считаю речь или музыку.
Я тоже. А еще стуки, звоны бряки и прочая. И что? При чем тут
уровень, что бы под этим ни понималось?