Декодирование двухфазной метки Manchester в программном обеспечении (представляющее аудиопоток временного кода SMPTE)

Мне никогда раньше не приходилось иметь дело с кодированием или декодированием сигналов / потоков, по крайней мере, не выходя за рамки довольно простых протоколов, таких как HTTP, так что простите меня, если я делаю это сложнее, чем должен.

Некоторые из систем, которые мы используем на работе, для работы полагаются на тайм-код SMPTE, манчестерскую двухфазную систему меток, которая занимает 1 кГц полосы пропускания между 1 кГц и 2 кГц.

Поскольку он находится прямо в звуковом спектре и на линейном уровне, его можно подключить прямо к линейному входу звуковой карты, доступ к которому можно получить с помощью аудио API по вашему выбору (я планирую использовать Core Audio на Mac).

Я довольно доволен декодированием самого цифрового битового потока для восстановления времени и параметров, но на самом деле восстановление битового потока из дискретизированного аналогового сигнала менее прямолинейно, и я не уверен, как лучше всего решить эту проблему.

Мой текущий план состоит в том, чтобы дать короткий промежуток времени после обнаружения сигнала (1 секунда или 24-30 кадров) для измерения максимального и минимального количества выборок между уровнями пересечения нуля (с использованием фильтра скользящего среднего для предотвращения всплесков / выпадений влияющие на декодирование), а также максимальное и минимальное записанные напряжения для определения точки пересечения нуля (уровень постоянного тока).

Затем я смогу использовать эту информацию для построения цифрового битового потока из входящего аналогового сигнала. В правильном ли направлении я двигаюсь или есть лучший способ сделать это?

Спасибо


person Dani    schedule 16.11.2009    source источник


Ответы (1)


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

интересный анализ входов звуковой карты здесь

Использование скользящего среднего для расчета программного автоматического управления усилением, вероятно, является хорошей идеей.

ваши переходы через ноль, вероятно, будут близки к нулю. Вы также можете размыть данные на 4 кГц (2 * 2 кГц) [он же фильтр нижних частот на 4 кГц], а затем определить его по краю, чтобы получить нулевые пересечения.

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

В качестве предложения попробуйте захватить некоторые из них и посмотрите, как вы будете вводить сохраненные данные в свои процедуры синтаксического анализа. Попробуйте разные вещи и посмотрите, что работает

person Tim Williscroft    schedule 16.11.2009