roboforum.ru

Технический форум по робототехнике.

Математика определения источника звука[RoboBus, звук]

Математика определения источника звука[RoboBus, звук]

blindman » 14 май 2009, 15:00

Тема выделена оттуда: Проект звукового модуля под шину RoboBus.
<Digit>


Внимание!
Правила темы:
Все сообщения, отклоняющиеся от математического направления в общие принципы и прочие сопутствующие обсуждения считаются оффтопиком, т.е. ЗАПРЕЩЕНЫ!


Кто шарит в математике, помогите плиз

micro.png
micro.png (7.96 КиБ) Просмотров: 25012


Есть 3 точи расположенных на окружности заданного радиуса LaTeX: R = \left|O-B\right| через 120°. Есть некая точка LaTeX: X, координаты которой неизвестны. A,B,C - это микрофоны, X - источник звука. Считаем, что микрофоны и источник звука лежат в одной плоскости (горизонтальной). Известны LaTeX: \left|X-B\right| - \left|X-A\right| и LaTeX: \left|X-B\right| - \left|X-C\right|.
  1. Надо найти LaTeX: \angle XOB и LaTeX: \left|X-O\right|
  2. Если перейти из плоскости в пространство, и допустить, что источник звука может находиться вне плоскости микрофонов, то будет ли формула из п.1 справедлива для LaTeX: \angle X'OB и LaTeX: \left|X'-O\right|, где LaTeX: X' - проекция точки LaTeX: X на плоскость микрофонов.
  3. Верно ли, что 3 микрофонов недостаточно, чтобы определить не только LaTeX: \angle X'OB (LaTeX: \angle XOB), но и угол возвышения источника звука? Похоже что это верно ...
Последний раз редактировалось Digit 15 май 2009, 16:45, всего редактировалось 2 раз(а).
Причина: дорисовал правила этой темы

Re: Математика определения источника звука[RoboBus, звук]

blindman » 16 май 2009, 19:34

Все уже придумано, ничего нового не придумать.

Я тут провел расчеты, заложил ограничения для помещения (расстояние до 10м, высота до 2.5м), получается очень большой диапазон решений. Из всего я делаю вывод : с 3 микрофонами имеет смысл только пытаться оценить направление с точностью +-30 градусов без учета высоты, гораздо проще и быстрее, а точность практически такая и получается.

Достаточно точно аналитически можно оценить направление только если известно на какой высоте расположен источник звука.

Подумаю над добавлением еще одного канала в звуковой модуль.

Re: Математика определения источника звука[RoboBus, звук]

=DeaD= » 16 май 2009, 19:37

Очень большой диапазон решений - это +/- сколько градусов от центра робота?
Неужели вся хитровыдуманная аналитика не даёт улучшения решения хотя-бы до +/- 10 градусов?

Re: Математика определения источника звука[RoboBus, звук]

blindman » 16 май 2009, 22:22

Чото я поленился сразу в градусах посчитать, смотрел на координаты. Посчитал в градусах, в общем не так уж и плохо получается, с большой вероятностью укладывается в +- 6 градусов :
Screenshot-test - OpenOffice.org Calc -1.png
Гистограмма вероятности ошибки, сделана по результатам 1000000 тестов
Screenshot-test - OpenOffice.org Calc -1.png (9.96 КиБ) Просмотров: 1995

Большие ошибки возникают, когда угол между вектором направления и одной из осей X Y мал. Думаю можно будет избежать и таких ошибок, поменяв местами эти оси - но пока неясно как отловить такую ситуацию. Микрофоны расположены в углах равностороннего равнобедренного прямоугольного треугольника, прямой угол в начале координат.

Re: Математика определения источника звука[RoboBus, звук]

Angel71 » 17 май 2009, 00:27

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

Re: Математика определения источника звука[RoboBus, звук]

blindman » 17 май 2009, 04:03

На самом деле точность больше зависит от скорости АЦП, чем от расстояния между микрофонами.

Re: Математика определения источника звука[RoboBus, звук]

Duhas » 17 май 2009, 08:52

blindman, а что за трава дает равносторонние прямоугольные треугольники?

Re: Математика определения источника звука[RoboBus, звук]

contr » 17 май 2009, 10:35

точность больше зависит от скорости АЦП, чем от расстояния между микрофонами.

попсовые МК с оверклоком дают 200ksps, без потери качества.
Ловили импульс по фронту или произвольный звуковой сигнал?

Re: Математика определения источника звука[RoboBus, звук]

blindman » 17 май 2009, 11:53

Duhas писал(а):blindman, а что за трава дает равносторонние прямоугольные треугольники?

Если до 5 часов уравнения решать, и не такое появится, причем без всякой травы :D

contr писал(а):попсовые МК с оверклоком дают 200ksps, без потери качества.
Ловили импульс по фронту или произвольный звуковой сигнал?

С учетом времени переключения каналов, у меня будет думаю порядка 80ksps, хотя может и меньше, если точности АЦП на максимальной частоте не хватит. Сигнал - произвольный звук.

Добавлено спустя 1 час 38 секунд:
blindman писал(а):Большие ошибки возникают, когда угол между вектором направления и одной из осей X Y мал. Думаю можно будет избежать и таких ошибок, поменяв местами эти оси - но пока неясно как отловить такую ситуацию.

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

Re: Математика определения источника звука[RoboBus, звук]

=DeaD= » 17 май 2009, 13:09

Duhas писал(а):blindman, а что за трава дает равносторонние прямоугольные треугольники?

Не знаю что это за трава, но её первым её курнул еще Лобачевский :crazy:

Re: Математика определения источника звука[RoboBus, звук]

contr » 17 май 2009, 15:34

Сигнал - произвольный звук.

Спасибо! Теперь дошло, что сигнал может быть случайным. Алгоритм, видимо, такой:
два замера по любому микрофону – фронт/тыл,
разность в уровнях по каналам –углы на источник.

Если подрезать ВЧ составляющую звука, то избавимся от проблем связанных со скоростью оцифровки и точность станет выше.

Re: Математика определения источника звука[RoboBus, звук]

blindman » 17 май 2009, 15:59

При чем тут разность уровней? Уровень сигнала мало влияет на результат, учитывается только сдвиг во времени.

Смысла специально убирать ВЧ не вижу, снижение частоты сэмплирования само приведет к срезу ВЧ

Re: Математика определения источника звука[RoboBus, звук]

contr » 17 май 2009, 16:16

Уровень как раз и является параметром времени. Для нарастающего минимальный уровень будет на микрофоне, который ближе к источнику.
Измерить мы должны максимально быстро, т.е. именно в пределах полупериода сигнала. ВЧ составляющие попавшие только в один из каналов уродуют картинку.
А просто измерение среднего уровня вообще ничего не дает, поскольку затухание звука при нашей базе в 5..10см ничтожно.

Re: Математика определения источника звука[RoboBus, звук]

blindman » 17 май 2009, 16:23

Для непрерывного сигнала уровень ни о чем не скажет. Ключевое понятие метода определения задержки - взаимная корреляция.

Re: Математика определения источника звука[RoboBus, звук]

contr » 17 май 2009, 16:32

Если сигнал периодический, то его действительно можно уровню засечь. Фаза прихода, а значит и уровень на разных каналах будет разный. Так древние УЗ детекторы движения работали, да и автомобильные "Мангусты".
Я случайным сигналом считаю речь или музыку.

Re: Математика определения источника звука[RoboBus, звук]

blindman » 17 май 2009, 16:38

contr писал(а):Я случайным сигналом считаю речь или музыку.

Я тоже. А еще стуки, звоны бряки и прочая. И что? При чем тут уровень, что бы под этим ни понималось?


Rambler\'s Top100 Mail.ru counter