![]() |
|
Модераторы: bsa |
![]()
|
|
| FroLe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 28.11.2010 Репутация: нет Всего: нет |
такая задача:
Написать программу для вычисления расстояния между колонками и микрофоном(на с++). Т.е. говоришь в микрофон и нам выводит расстояние. Можете подсказать какие библиотеки здесь задействовать? и реально это вообще написать, найти, скачать? |
|||
|
||||
| sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 3 Всего: 13 |
Вообще не думаю что реально. Откуда программа знает какой громкости должны быть колонки и вообще столько деталей. Можно конечно попробовать примерно вычислить, но... Знаю точно что можно вычислить относительное расстояние между колонками и микрофоном. Тоесть на сколько дальше одна относительно другой Добавлено через 28 секунд Не пойму, как таким обрзом можно определить расстояние? |
|||
|
||||
| Skevalt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 30.11.2006 Репутация: нет Всего: 3 |
1. Постукиваем пальцем по микрофону, когда он находится вплотную к колонкам и одновременно записываем трек. 2. Далее, пытаемся проанализировать запись и найти на ней исходный щелчок и эхо. Если в виде графика, то определяем расстояние между двумя всплесками. Временной интервал между двумя такими всплесками будет временем реакции системы: затраты на обсчет и т.п. 3. Отходим от колонок и опять постукиваем по микрофону. Определяем время между всплесками (колонки нужно прибавить погромче, микрофон на максимом чувствительности и убрать подавление шумов и эха). Зная скорость звука в воздухе, время на обсчет и время в текущем эксперименте приблизительно определяем расстояние. Как-то так на ум приходит. Можно погуглить на предмет самодельной эхолокации и звукового дальномера. При обработке звука большую помощь окажет, например, преобразование Фурье (подавить шум и анализировать частотный состав сигнала). Вот поискал в гугле и нашел эхолокация на базе ЭВМ Это сообщение отредактировал(а) Skevalt - 28.11.2010, 16:05 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Я кажется понял что имели ввиду в задании! Нужно поставить микрофон напротив колонок, так чтобы сработала акустическая обратная связь. Нужно произвести громкий щелчок, который воспроизведется колонками, затем снова попадет из колонок в микрофон и по кругу. Интервал времени между такими повторными эхами будет определять расстояние. L = скорость звука * интервал.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Можно учесть если сделать 2-3 замера. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Чoо |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 22.9.2009 Репутация: 4 Всего: 4 |
....затер, так как ошибался
Это сообщение отредактировал(а) Чoо - 30.11.2010, 15:57 -------------------- ![]() OS: Debian Squeeze (kernel 3.8.2) IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Каким образом 2-3 замера (без изменения положения колонок и микрофона) помогут учесть задержку в PC? Эта задержка может быть вполне сопоставима с задержкой на распространение звука от колонок до микрофона.
Если же микрофон подвигать, то нужно вводить какое то расстояние (на сколько переместили или абсолютное расстояние от микрофона до колонок). А насколько я понял задачу, это именно то, что надо определить |
|||
|
||||
| WhKitten |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 24.11.2010 Репутация: нет Всего: нет |
В цифрах: скорость звука в воздухе 330 м/с или 0.33 м/мс. Задержка в PC будет от 1 мс и может доходить до 50мс и даже выше (зависит от аудиокарты и способа доступа к микрофону). Я бы даже сказал, что если не используется какая-нибудь технология специально для уменьшения задержки, то 50мс и выше это самый вероятный вариант.
|
|||
|
||||
| Чoо |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 22.9.2009 Репутация: 4 Всего: 4 |
я чуть подумал, посоветовался и стер предыдущее сообщение. Ну если известна величина задержки (звуковые карты позволяют ее выставлять, правда не все с оригинальными драйверами; и не важно, пусть задержка будет хоть 500мс, главное знать эту величину), скорость звука в атмосфере, а уровень громкости из колонок выставлен так, что может перекричать фон естественной среды возле микрофона, то можно вычислить и расстояние, записав звук, прошедший первый раз через тракт и вернувшийся по обратной связи. Таким образом в записи будет два пика, между которыми надо будет вычислить время и уже по нему можно будет определить расстояние.
Если выставить задержку звуковой карты невозможно, то можно ее измерить, зная расстояние между колонками и компьютером. -------------------- ![]() OS: Debian Squeeze (kernel 3.8.2) IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Двигать безусловно. Но только для определения задержки. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |