Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Измерение расстояния. C++ 
:(
    Опции темы
FroLe
Дата 28.11.2010, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 28.11.2010

Репутация: нет
Всего: нет



такая задача:
Написать программу для вычисления расстояния между колонками и микрофоном(на с++). Т.е. говоришь в микрофон и нам выводит расстояние.
Можете подсказать какие библиотеки здесь задействовать? и реально это вообще написать, найти, скачать? 
PM MAIL   Вверх
sQu1rr
Дата 28.11.2010, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Цитата(FroLe @  28.11.2010,  15:44 Найти цитируемый пост)
и реально это вообще написать, найти, скачать?  

Вообще не думаю что реально. Откуда программа знает какой громкости должны быть колонки и вообще столько деталей.
Можно конечно попробовать примерно вычислить, но...
Знаю точно что можно вычислить относительное расстояние между колонками и микрофоном. Тоесть на сколько дальше одна относительно другой

Добавлено через 28 секунд
Цитата(FroLe @  28.11.2010,  15:44 Найти цитируемый пост)
Т.е. говоришь в микрофон и нам выводит расстояние.

Не пойму, как таким обрзом можно определить расстояние?
PM MAIL Skype GTalk   Вверх
Skevalt
Дата 28.11.2010, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 30.11.2006

Репутация: нет
Всего: 3



Цитата(sQu1rr @  28.11.2010,  15:48 Найти цитируемый пост)
Не пойму, как таким обрзом можно определить расстояние?

1. Постукиваем пальцем по микрофону, когда он находится вплотную к колонкам и одновременно записываем трек. 
2. Далее, пытаемся проанализировать запись и найти на ней исходный щелчок и эхо. Если в виде графика, то определяем расстояние между двумя всплесками.  Временной интервал между двумя такими всплесками будет временем реакции системы: затраты на обсчет и т.п.
3. Отходим от колонок и опять постукиваем по микрофону. Определяем время между всплесками (колонки нужно прибавить погромче, микрофон на максимом чувствительности и убрать подавление шумов и эха). Зная скорость звука в воздухе, время на обсчет и время в текущем эксперименте приблизительно определяем расстояние. 

Как-то так на ум приходит. Можно погуглить на предмет самодельной эхолокации и звукового дальномера. При обработке звука большую помощь окажет, например, преобразование Фурье (подавить шум и анализировать частотный состав сигнала).

Вот поискал в гугле и нашел эхолокация на базе ЭВМ

Это сообщение отредактировал(а) Skevalt - 28.11.2010, 16:05
PM MAIL   Вверх
Alexeis
Дата 28.11.2010, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 4
Всего: 459



  Я кажется понял что имели ввиду в задании! Нужно поставить микрофон напротив колонок, так чтобы сработала акустическая обратная связь. Нужно произвести громкий щелчок, который воспроизведется колонками, затем снова попадет из колонок в микрофон и по кругу. Интервал времени между такими повторными эхами будет определять расстояние. L = скорость звука * интервал.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
xvr
Дата 29.11.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Alexeis @  28.11.2010,  16:25 Найти цитируемый пост)
Интервал времени между такими повторными эхами будет определять расстояние.
А задержка на вывод звука в самом PC, ее то же неплохо было бы учесть.  smile 


PM MAIL   Вверх
Alexeis
Дата 29.11.2010, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 4
Всего: 459



Цитата(xvr @  29.11.2010,  15:07 Найти цитируемый пост)
А задержка на вывод звука в самом PC, ее то же неплохо было бы учесть.

  Можно учесть если сделать 2-3 замера.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Чoо
Дата 30.11.2010, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: 4
Всего: 4



....затер, так как ошибался

Это сообщение отредактировал(а) Чoо - 30.11.2010, 15:57


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
xvr
Дата 30.11.2010, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Alexeis @  29.11.2010,  23:23 Найти цитируемый пост)
Можно учесть если сделать 2-3 замера. 
Каким образом 2-3 замера (без изменения положения колонок и микрофона) помогут учесть задержку в PC? Эта задержка может быть вполне сопоставима с задержкой на распространение звука от колонок до микрофона.
Если же микрофон подвигать, то нужно вводить какое то расстояние (на сколько переместили или абсолютное расстояние от микрофона до колонок). А насколько я понял задачу, это именно то, что надо определить  smile 


PM MAIL   Вверх
WhKitten
Дата 30.11.2010, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 24.11.2010

Репутация: нет
Всего: нет



В цифрах: скорость звука в воздухе 330 м/с или 0.33 м/мс. Задержка в PC будет от 1 мс и может доходить до 50мс и даже выше (зависит от аудиокарты и способа доступа к микрофону). Я бы даже сказал, что если не используется какая-нибудь технология специально для уменьшения задержки, то 50мс и выше это самый вероятный вариант. smile Т.е звук за это время уже успеет пройти 15 метров и будет далеко от микрофона.
PM MAIL   Вверх
Чoо
Дата 30.11.2010, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: 4
Всего: 4



я чуть подумал, посоветовался и стер предыдущее сообщение. Ну если известна величина задержки (звуковые карты позволяют ее выставлять, правда не все с оригинальными драйверами; и не важно, пусть задержка будет хоть 500мс, главное знать эту величину), скорость звука в атмосфере, а уровень громкости из колонок выставлен так, что может перекричать фон естественной среды возле микрофона, то можно вычислить и расстояние, записав звук, прошедший первый раз через тракт и вернувшийся по обратной связи. Таким образом в записи будет два пика, между которыми надо будет вычислить время и уже по нему можно будет определить расстояние. 
Если выставить задержку звуковой карты  невозможно, то можно ее измерить, зная расстояние между колонками и компьютером.


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
Alexeis
Дата 30.11.2010, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 4
Всего: 459



Цитата(xvr @  30.11.2010,  10:07 Найти цитируемый пост)
Если же микрофон подвигать, то нужно вводить какое то расстояние (на сколько переместили или абсолютное расстояние от микрофона до колонок)

  Двигать безусловно. Но только для определения задержки.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0560 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.