|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.04.2016, 16:23 | #1 |
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
Пропуски при захвате звука через WaveIn
Делаю программу для дешифровки так называемого тайм-кода через звуковую карту. Тайм-код представляет собой по сути звуковой сигнал. На каждый кадр (25 к/с) приходится 80 бит, которые кодируются с помощью кода Biphase-M.
Для декодирования подаю тайм-код на вход звуковой карты, захватываю звуковой сигнал с помощью стандартных мультимедийных WaveIn и сообщений MM_WIM_DATA и дальше декодирую. Всё работает. Но периодически в читаемых данных возникает сбой. Выглядит это так, как будто из входного сигнала вырезали кусочек. Произвольной длины - где-то от 10 до 100 мс. Сперва думал, что теряется один из буферов. Промониторил - нет, сбой может возникнуть посередине буфера. Пробовал две звуковых карты (правда обе внешние) - результат абсолютно идентичен. Сбой редок (вот, например, на текущей тестовой сессии за 3 часа 4 сбоя) но для моих задач очень критичен. Никто ни с чем подобным не сталкивался? На всякий случай - Win7 x64. В приложении картинка - как это выглядит. Верхняя "полоса" - конец одного буфера, нижняя - тот же конец с уже подклеенным следующим буфером. Видно, что дырка (резкий скачок) не приходится на границу буферов. |
15.04.2016, 18:31 | #2 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Получается ваша вероятность ошибки на бит: 1,389e-7.
Ошибки это нормальное явление для любой техники. Может ошибки в записи? Тот же Интел для своих процессоров гарантирует от 10^-12 до 10^-14 А взять микроконтроллер там от 10^-6 до 10^-9 В большинстве случаев находят решение как обойти ошибки, а не их причину. Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
16.04.2016, 19:44 | #3 |
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
> Может ошибки в записи?
Источником является генератор - он ошибок не даёт. Я проверял с другим источником - видеомагнитофоном - ровно та же картина. > А взять микроконтроллер У меня микроконтроллерные платы работают по несколько лет без единой ошибки. При тактовой частоте современных микроконтроллеров в сотню мегагерц и вероятности ошибки 10Е-6 они бы сыпали по 100 ошибок в секунду. > В большинстве случаев находят решение как обойти ошибки, а не их причину. Это называется костыли и подпорки. > Делайте несколько проходов. Это невозможно - сигнал реального времени. > Или восстанавливайте по соседним временным-кодам. Это и так делается - на случай проблем в линии связи. Мне интересно принципиально - какого черта в простейшей системе вдруг теряется кусок звука, причём не несколько семплов, а реально порядка сотни миллисекунд? Причём это не проблема драйверов - вчера специально поставил наворочанный Sound Blaster Audigy Rx - число провалов резко упало (до двух за сутки), но сама суть проблемы осталось. То ли пытаться на ASIO уходить (вроде там bit accurate возведён в принцип), то ли здесь понять суть проблемы... |
16.04.2016, 20:15 | #4 | |||||
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Цитата:
Вы писали специальные тесты на проверки? Цитата:
Простейшая система это TI микроконтроллер где все блоки расписаны. Да и то её простейшей не назовёшь. Цитата:
Цитата:
Математик и инженер принимают участие в психологическом эксперименте. Их посадили в с одной стороны комнаты и они ждут, не подозревая, что случится потом. Дверь открывается и в комнату входит обнажённая женщина и встаёт вдали от них. Испытуемых предупреждают, что каждый раз, когда они слышат сигнал — они могут пересечь половину расстояния, оставшегося до женщины. Тут же они слышат сигнал, инженер одним прыжком преодолевает половину расстояния, а математик, со скучающим видом остаётся сидеть. Когда и после второго сигнала математик не шевельнулся, инженер поинтересовался, почему он не бежит. — Это от того, что я знаю, что никогда не достигну женщину. Инженер на тот же вопрос ответил так: — Потому что я знаю, что уже очень скоро я буду достаточно близок для любого практического применения!
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 16.04.2016 в 20:31. |
|||||
18.04.2016, 16:13 | #5 |
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
Извините, мне не интересно разводить здесь оффтопик. Кратко:
> STM32F4 - 180 МГц. Копеечные STM32F1 - 72МГц. > MTBF не имеет никакого отношения к вероятности ошибки На остальное ответы не столь краткие, поэтому продолжать не буду. Может кто-нибудь всё-таки скажет что-то по существу вопроса. |
18.04.2016, 19:45 | #6 | |
Форумчанин
Регистрация: 23.01.2016
Сообщений: 608
|
...в стороннем ПО пропуски тоже есть? Audacity на примерку?
Что с приоритетом вашего процесса? Цитата:
Но честно говоря, использование аудиокарты для сбора данных с требованиями как к промышленной нецелесообразно. Возможно стоит подойти к задаче с другой стороны, перейти на другие интерфейсы. |
|
19.04.2016, 09:40 | #7 | ||
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
Не могу себе представить - как проверить. Это надо часов 10-12 непрерывно писать и потом чем-то анализировать записанное. Отдельная, очень немаленькая задача.
Цитата:
Цитата:
В принципе, для моих задач этот пропуск действительно некритичен - у меня в любом случае контролируется корректность тайм-кода и в случае подрывов он регенерируется. Но просто сама по себе проблема забавная - думал, может кто встречался и как-то решил. |
||
19.04.2016, 11:42 | #8 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Попробуйте на win200. Там такого глюка недолжно быть.И directx выше 6 версии неставить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 19.04.2016 в 11:49. |
19.04.2016, 14:18 | #9 | |||
Форумчанин
Регистрация: 23.01.2016
Сообщений: 608
|
Цитата:
Цитата:
Цитата:
X, Y и Z. |
|||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Sc_DragMove мерцание при первом захвате | HellMercenariess | Общие вопросы Delphi | 4 | 26.01.2017 07:22 |
Отчисление за пропуски в ВУЗе, могут ли? | Алексей_2012 | Свободное общение | 19 | 31.10.2014 22:17 |
Запись звука через микрофон если есть шум.... | casio23 | Мультимедиа в Delphi | 1 | 14.05.2012 07:58 |
ubuntu 10.10 нет звука через alsa | CodeNOT | Операционные системы общие вопросы | 3 | 20.12.2011 15:53 |
Программа для воспроизведения тонового звука через промежуток времени | Vl-sn | Помощь студентам | 9 | 12.03.2010 20:27 |