roboforum.ru

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

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

Обсуждаем рождающиеся мысли и результаты экспериментов.

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

Сообщение blindman » 14 май 2009, 15:00

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


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


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

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


Есть 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 раз(а).
Причина: дорисовал правила этой темы
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение blindman » 16 май 2009, 19:34

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

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

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

Подумаю над добавлением еще одного канала в звуковой модуль.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение =DeaD= » 16 май 2009, 19:37

Очень большой диапазон решений - это +/- сколько градусов от центра робота?
Неужели вся хитровыдуманная аналитика не даёт улучшения решения хотя-бы до +/- 10 градусов?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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 КиБ) Просмотров: 1993

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

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение Angel71 » 17 май 2009, 00:27

еще чем ближе микрофоны будут, тем менее точно. удалять тоже в пределах разумного :oops: ну эт вы и так знаете, навсякий просто напоминаю.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

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

Сообщение blindman » 17 май 2009, 04:03

На самом деле точность больше зависит от скорости АЦП, чем от расстояния между микрофонами.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение Duhas » 17 май 2009, 08:52

blindman, а что за трава дает равносторонние прямоугольные треугольники?
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение contr » 17 май 2009, 10:35

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

попсовые МК с оверклоком дают 200ksps, без потери качества.
Ловили импульс по фронту или произвольный звуковой сигнал?
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

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

Сообщение blindman » 17 май 2009, 11:53

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

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

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

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

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

Критерий оказывается очень простой - абсолютное значение разности расстояний до источника звука близко к расстоянию между микрофонами.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение =DeaD= » 17 май 2009, 13:09

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

Не знаю что это за трава, но её первым её курнул еще Лобачевский :crazy:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение contr » 17 май 2009, 15:34

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

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

Если подрезать ВЧ составляющую звука, то избавимся от проблем связанных со скоростью оцифровки и точность станет выше.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

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

Сообщение blindman » 17 май 2009, 15:59

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

Смысла специально убирать ВЧ не вижу, снижение частоты сэмплирования само приведет к срезу ВЧ
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение contr » 17 май 2009, 16:16

Уровень как раз и является параметром времени. Для нарастающего минимальный уровень будет на микрофоне, который ближе к источнику.
Измерить мы должны максимально быстро, т.е. именно в пределах полупериода сигнала. ВЧ составляющие попавшие только в один из каналов уродуют картинку.
А просто измерение среднего уровня вообще ничего не дает, поскольку затухание звука при нашей базе в 5..10см ничтожно.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

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

Сообщение blindman » 17 май 2009, 16:23

Для непрерывного сигнала уровень ни о чем не скажет. Ключевое понятие метода определения задержки - взаимная корреляция.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение contr » 17 май 2009, 16:32

Если сигнал периодический, то его действительно можно уровню засечь. Фаза прихода, а значит и уровень на разных каналах будет разный. Так древние УЗ детекторы движения работали, да и автомобильные "Мангусты".
Я случайным сигналом считаю речь или музыку.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

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

Сообщение blindman » 17 май 2009, 16:38

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

Я тоже. А еще стуки, звоны бряки и прочая. И что? При чем тут уровень, что бы под этим ни понималось?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Пред.След.

Вернуться в Идеи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29