2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Передача информации лампочкой
Сообщение17.07.2017, 14:43 


29/07/08
536
Как передать информацию одной лампочкой?
Предполагается, что лампа имеет всего два состояния: горит (включена) и не горит (выключена).
Сразу на ум приходит азбука Морзе. Там фигурируют точки и тире, аналогично в информатике $0$ и $1$.
Сами состояния лампочки не могут соответствовать точке или тире. Как понять тогда постоянно горящую лампочку?
Это непрерывно идущие тире? Следовательно в информационную единицу входят не сами состояния,
а переходы с одного состояния в другое. Причем, только один переход не несет информации.
Нельзя два раза подряд включить лампочку, без этапа выключения.
А вот вспышку лампы, то есть две смены состояния лампы (не горела-загорелась, горела-погасла),
уже можно соотнести с точкой азбуки Морзе. Тире будет соответствовать схеме: "не горела-загорелась",
"горит некоторое время", "горела-погасла". Появляется фактор времени, который позволяет отличать новый
сигнал лампы от простой вспышки. Если контролировать время горения, то можно закодировать алфавит по времени горения лампочки.
Условно говоря, А - вспышка, Б - горит $1$ сек., В - горит $2$ сек., Г - горит $3$ сек... и т.д.
Такая кодировка очень привязана к умению контролировать время горения лампы.
Но если ограничиться тем, что горение лампы происходит дольше вспышки и зафиксировать эту ситуацию, как тире,
то уже можно применять азбуку Морзе. Типа, сначала передается импульс, долгий импульс, импульс. Это аналог точка, тире, точка.
Принимающая сторона понимает, что есть "точка" и что есть "тире". Все другие сигналы игнорируются, с точки зрения получения информации.

Следующий нюанс. С точки зрения экономии энергии, импульс рассматривался как лампа "не горела-загорелась, горела-погасла".
здесь основное состояние лампочки - "не горит".
Но ведь можно рассматривать и другой вариант, импульс - "горела-погасла, не горела-загорелась". Здесь уже основное
состояние лампочки - "горит". Эта схема энергетически затратна, но она себя оправдывает тем, что пока основное состояние - "горит",
канал связи налажен. Нарушение канала связи сразу видно по смене основного состояния, что не определено в первом варианте.

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

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение17.07.2017, 14:57 
Аватара пользователя


11/12/16
13990
уездный город Н
Забудьте про Азбуку Морзе. Манчестерское кодирование лучше.

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение17.07.2017, 15:16 
Заслуженный участник


20/08/14
11861
Россия, Москва
Побережный Александр в сообщении #1234125 писал(а):
Можно ли наладить полноценный обмен информации через одну лампочку, если стороны не договаривались ни о чем и не знают друг друга?
Нельзя: вторая сторона может не воспринимать смену состояний лампочки как полезную информацию и полностью их игнорировать. Т.е. информации при этом передаётся ровно $\varnothing$.

Рассуждения выше про кодировки - к математике относятся слабо, это стандартная задача организации канала связи с известными параметрами (что такое состояния, с какой скоростью меняются, множество возможных состояний, дополнительные условия "на физику" (экономия энергии, исключение постоянной составляющей или вообще низких частот), и т.д.). Но что-то про канал связи должно быть известно обеим сторонам априори. Вопрос об минимальности этого априорного знания вроде бы до сих пор открыт, попытки придумать сверхуниверсальный формат файлов/данных (это аналогичная задача) продолжаются и практическая ценность невелика - всегда практичнее чуть увеличить априорное знание и резко улучшить параметры системы.

EUgeneUS в сообщении #1234132 писал(а):
Манчестерское кодирование лучше.
Код Миллера ещё лучше, он вдвое уже по полосе, при незначительном ужесточении требования к точности измерения интервалов, их всего три: 1T, 1.5T, 2T. И могут добавляться дополнительные для синхронизации потока.

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение17.07.2017, 15:45 


29/07/08
536
Но и Манчестерское кодирование и код Миллера жестко привязаны к времени начала и конца импульса. Как вы их можете применить для обмена информацией между двумя человеками. Попробуйте применить эти коды на лампочке. Как без секундомера принимающая сторона поймет, где начало импульса?

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение17.07.2017, 16:01 
Заслуженный участник


20/08/14
11861
Россия, Москва
Побережный Александр в сообщении #1234151 писал(а):
Как без секундомера принимающая сторона поймет, где начало импульса?
По изменению состояния лампочки. Именно это и будет моментом, от которого начнёт отсчитываться время до следующей смены состояния.
Если скорость не известна заранее, то применяется один из методов синхронизации перед началом обмена: например подача ста импульсов гарантированно самой высокой частоты. И эта преамбула информации не несёт, служит лишь для определения приблизительной скорости передачи, полезная информация передаётся после неё.
Вариантов много разных есть. Они выбираются под конкретную задачу и конкретные ограничения. Сверхуниверсальных методов нет, да они на практике и не нужны.
Код Миллера имеет ещё одно полезное свойство: позволяет обнаружить инверсию битового потока, интервал 2Т встречается лишь для одной комбинации битов, по нему точно выясняется полярность. Ну про возможную передачу служебной информации добавлением в протокол других битовых интервалов я уже говорил.

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение17.07.2017, 16:13 
Заслуженный участник


27/04/09
28128
Побережный Александр в сообщении #1234125 писал(а):
Можно ли наладить полноценный обмен информации через одну лампочку, если стороны не договаривались ни о чем и не знают друг друга?
Этим интересовались в том числе участники проектов SETI. Начинают с, условно говоря, арифметики, всё расширяя и расширяя словарь, доходят до физики, описывают некоторые явления, и потом можно уже говорить о столах, стульях и пивных кружках.

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение17.07.2017, 16:24 
Заслуженный участник


20/08/14
11861
Россия, Москва
Побережный Александр в сообщении #1234125 писал(а):
полноценный обмен информации через одну лампочку,
Ой, не заметил сразу, конечно же нельзя - лампочка-то одна, в обратную сторону ничего передать не получится, так что это не обмен информации. :mrgreen: Надо минимум две лампочки, по одной на каждом конце канала связи. Ну и приёмник излучения лампочки на каждом конце канала не помешал бы, без него информацию не получить. ;-)

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение17.07.2017, 19:01 


05/09/16
12098
Побережный Александр в сообщении #1234151 писал(а):
Как вы их можете применить для обмена информацией между двумя человеками.
Так насчет человеков-то вы не написали в первом посте.

Побережный Александр в сообщении #1234125 писал(а):
Предполагается, что лампа имеет всего два состояния: горит (включена) и не горит (выключена).
Эти состояния можно формировать по-разному. Можно включать-выключать лампочку, а можно открывать-закрывать затвор.

Побережный Александр в сообщении #1234125 писал(а):
Но ведь можно рассматривать и другой вариант, импульс - "горела-погасла, не горела-загорелась". Здесь уже основное
состояние лампочки - "горит". Эта схема энергетически затратна, но она себя оправдывает тем, что пока основное состояние - "горит",
канал связи налажен. Нарушение канала связи сразу видно по смене основного состояния, что не определено в первом варианте.
В целом, чем бОльшая дальность и скорость передачи информации нужна, тем больше затрачиваемая мощность.

 i  GAA:
Началось «цепляние к словам» В начальном сообщении указано: «стороны» (Очевидно, что две, не меньше.)
Состояния можно формировать по-разному. Но эти детали к вопросу начального сообщения непосредственно отношения не имеют. Смысл понять можно.

Ветка закрыта (пока) на сутки. Сохраните, пожалуйста, свои сообщения в «Черновиках».

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение17.07.2017, 20:30 


12/07/15
3338
г. Чехов
Побережный Александр в сообщении #1234151 писал(а):
Как без секундомера принимающая сторона поймет, где начало импульса?

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

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение20.07.2017, 11:51 


29/07/08
536
Dmitriy40 в сообщении #1234165 писал(а):
Ой, не заметил сразу, конечно же нельзя - лампочка-то одна, в обратную сторону ничего передать не получится, так что это не обмен информации. :mrgreen: Надо минимум две лампочки, по одной на каждом конце канала связи. Ну и приёмник излучения лампочки на каждом конце канала не помешал бы, без него информацию не получить. ;-)


Хорошо. Попробую расписать подробно рассматриваемую модель. Комната разделена светодиодным экраном, который может гореть, а может не гореть. В каждой из половинок посадили по человечку. Они полностью изолированы друг от друга, в смысле чувственных контактов. Каждый из них знает о наличии соседа за экраном. Перед каждым человечком лежит пульт, которым можно включить экран или выключить. На всякий случай уточняю, приемниками информации будут глаза. ))

Самый простой вариант, когда режим свечения экрана задают сами человечки. Но мне более интересен вариант, когда сам экран случайным образом меняет свое состояние, пока не нажимаются кнопки.

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

EUgeneUS в сообщении #1234132 писал(а):
Забудьте про Азбуку Морзе. Манчестерское кодирование лучше.

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

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение20.07.2017, 12:05 


05/09/16
12098
Побережный Александр в сообщении #1234807 писал(а):
Перед каждым человечком лежит пульт, которым можно включить экран или выключить. На всякий случай уточняю, приемниками информации будут глаза. ))

Самый простой вариант, когда режим свечения экрана задают сами человечки.

Тогда старая добрая азбука Морзе, чего изобретать-то?

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение20.07.2017, 12:54 


29/07/08
536
Я бы с вами согласился, но сначала надо договориться, что есть "точка".
Есть два варианта. Первый: переход "не горел-горит, горит-не горит".
Второй: переход "горит-не горит, не горит-горит".
А если рассматривать вариант, что светодиодный экран сам случайным образом включается или выключается, то ситуация усложняется.

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение20.07.2017, 13:07 


05/09/16
12098
Побережный Александр в сообщении #1234823 писал(а):

Я бы с вами согласился, но сначала надо договориться, что есть "точка".

Вспышка короткой длительности.

Послушайте, вы же говорите о том что передавать и принимать передачу будут человеки, а не машины. У таких передач есть длительная история и в частности -- при помощи азбуки Морзе. Чего там договариваться, когда уже давно обо всем договорено?
Изображение

-- 20.07.2017, 13:10 --

(Оффтоп)

Побережный Александр в сообщении #1234823 писал(а):
А если рассматривать вариант, что светодиодный экран сам случайным образом включается или выключается, то ситуация усложняется.

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

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение20.07.2017, 15:24 
Заслуженный участник


20/08/14
11861
Россия, Москва
Побережный Александр
При наличии лишь одной лампочки протокол в любом случае получится асинхронным - т.к. нет второй линии для синхронизации.
Вы смешиваете сразу несколько уровней абстракции. Если не хотите делать правильно - возьмите любой уже разработанный код и всё, например азбуку Морзе. Или любой другой телеграфный код.

А по правильному, протокол передачи делят на уровни: физический (состояния физического канала связи и возможные переходы между ними); битовый (установка соответствия состояний канала битам сообщения и/или служебным сигналам; опционально проверка ошибок; здесь же выполняется синхронизация скорости; опционально сигналы деления на пакеты; опционально заполнение пауз в потоке данных); канальный (поток битов делится на "слова"/пакеты; добавляется проверка ошибок; сигналы управления каналом связи; опционально перезапрос испорченного пакета; опционально сигналы начала и завершения сообщения); сетевой (пропустим, вам не нужен); и ещё 4 уровня выше до человека (вам тоже не нужны, их выполнит сам человек). (Для тех кто "в теме": я в курсе что физический и битовый объединены в 1-й уровень OSI, но иногда их удобнее разделить.) Вы хотите сразу продумать все моменты всех уровней, это возможно, но не слишком просто, тем более если нет опыта.
Потому лучше будет если Вы пойдёте по шагам: сначала детально опишете все возможные статические состояния лампочки (экрана), включая ограничения (экономия энергии, минимальная длительность каждого состояния, минимальная и максимальная пауза между состояниями, граф допустимых переходов между состояниями); потом выберите какие состояния (или переходы между ними) за что отвечают, а какие несущественны и не используются (пример: для передачи данных количеством вспышек зажигание лампочки важно, а погасание происходит всегда и игнорируется; или наоборот; или важны оба перехода); при этом будет определён способ кодирования битов (или слов/байтов), наличие или отсутствие служебных сигналов параллельно с битовым потоком (в частности для указания границ пакетов/сообщений), возможный контроль работы канала связи; возможный контроль некоторых ошибок, скорость обмена, возможное отбрасывание случайных изменений состояния канала; и только после этого уже можно определять кодирование сообщений и отдельных слов, перезапрос испорченных пакетов и контроль целостности сообщения, маркеры начала и конца пакета и сообщения, адресация пакетов в сообщении (если нужна), и т.д.
Если в канале возможны помехи или передатчик видит собственные передаваемые данные и может их сравнивать с им же передаваемыми - документация протокола ещё усложняется.

Пример такого описания для лампочки: состояний всего два (горит, не горит); смена состояний при корректной работе происходит строго через интервалы 1Т, 1.5Т, 2Т, 2.5Т, с точностью +-0.2Т, другие интервалы отбрасываются как ошибочные; привязка битов осуществляется к интервалам смены состояний, а не к самим состояниям; в паузах между передачей информации состояния канала могут меняться произвольно, но без появления в последовательности корректной преамбулы (см. далее). Этим определен физический уровень, далее описывается "логический" (битовый): при любой ошибке синхронизации интервалов переход к ожиданию корректной преамбулы (опционально с возвратом человеку принятой части данных и флага ошибки); сообщение передаётся с преамбулой из 100 интервалов 1Т за которыми следует маркер 2.5Т; при ожидании преамбулы каждое изменение состояния лампочки фиксирует интервал до предыдущего изменения состояния и проверяется что 100 последовательных интервалов совпадают с точностью +-20% (при ошибке переход к ожиданию преамбулы), этот усреднённый интервал и принимается за базовый 1Т; за преамбулой кодом Миллера передаются байты данных начиная с младших битов с однобитным контролем чётности каждого байта; после сообщения передаётся контрольная сумма CRC32 всех байтов сообщения с аналогичным кодированием байтов начиная с младшего байта; завершается передача снова интервалом 2.5Т; за которым переход к ожиданию корректной преамбулы; при ошибках чётности или CRC сообщение возвращается человеку с пометкой об ошибке (опционально с массивом флагов ошибок каждого байта). Тут немного смешаны битовый и канальный уровень - так проще описать протокол. На данном уровне определена передача произвольного сообщения (состоящего из потока байтов) без ограничения длины и с контролем правильности передачи. Причём допустимо выключение лампочки между сообщениями (интервал от момента выключения и далее превысит 2.5Т или не повторится 100 раз подряд - и будет отброшен как недопустимый) и произвольные мигания лампочки между передачами (не будет обнаружено корректной преамбулы и мигания будут отброшены как шум). Что именно передавать в сообщениях, что делать с ошибочными, вводить ли пакетную передачу (делить всё сообщение от человека на части и передавать их отдельно), какой алфавит использовать и сколько каждый символ занимает битов, сжимать ли информацию при передаче, использовать ли запросы готовности другой стороны к приёму и что делать при неготовности - всё это и многое другое отдано на откуп человеку и протоколом не нормируется.
Подчеркну, это лишь один из огромного множества вариантов протокола передачи данных с использованием одной лампочки (в каждую сторону).

 Профиль  
                  
 
 Re: Передача информации лампочкой
Сообщение23.07.2017, 13:49 


29/07/08
536
Спасибо Dmitriy40 за основательную и полезную информацию по системе кодировки. Для меня это был стимул
больше и подробнее окунуться в тему.

Насколько я понял Манчестерское кодирование и код Миллера строиться на двухбитовой схеме, то есть информация передается не побитово,
а по паре битов. Бит - это состояние или $0$ или $1$. Всего различных вариантов будет $4$, а именно $(0;0), (0;1), (1;0), (1;1)$.
"Манчестерское кодирование" предлагает в качестве "Нуля" пару $(0;1)$, а в качестве "Единицы" пару $(1;0)$. Остальные варианты игнорируются.
Код Миллера в качестве "Нуля" задает либо $(0;0)$ либо $(1;1)$, в качестве "Единицы" - либо $(0;1)$ либо $(1;0)$.
В эксперименте с лампочкой реализовать можно оба кодирования, но затруднение может вызвать сама возможность определить
двухбитовый информационный атом. Это связано с отсутствие жесткой привязки начала сигнала и непонятной длины сигнала.

Я предлагаю еще способ закодировать информацию.

Представьте двухрегистровый стек. Каждый регистр имеет только два состояния $0$ и $1$. Сигнал поступает в нижний регистр стека.
Следующий сигнал поступает тоже в нижний регистр, тем самым выдавливая предыдущий сигнал в верхний регистр. Третий сигнал снова поступает
в нижний регистр и снова предыдущий сигнал выдавливается в верхний регистр. Бит информации в верхнем регистре
должен был перейти в третий сверху регистр, но в данной схеме его нет и он просто исчезает. Сама информация тоже фиксируется
по двухбитовой схеме (верхний регистр;нижний регистр).

Введем обозначения: O(буква О) - это $(0;0)$, A - это $(0;1)$, B - $(1;0)$, C - $(1;1)$
Пусть в начале оба регистра стека имеют нулевые значения.

В нижний регистр последовательно поступают сигналы $0,0,1,0,0$
Соответственно появляются следующие пары $(0;0)$, $(0;0)$, $(0;1)$, $(1;0)$, $(0;0)$
В наших обозначениях информация запишется O, O, A, B, O.

Если в нижний регистр последовательно поступают сигналы $0,1,1,1,0,0,1,0,0$
Соответственно появляются следующие пары $(0;0)$, $(0;1)$, $(1;1)$, $(1;1)$, $(1;0)$, $(0;0)$, $(0;1)$, $(1;0)$, $(0;0)$
В наших обозначениях информация запишется O, A, С, С, B, O, A, В, O.

Если немного поупражняться, то можно заметить следующее. Буква O говорит, что нужный сигнал не поступает.
Буква A показывает начало информационного сигнала, B - конец информационного сигнала. С - сам информационный сигнал.
Например, азбуку Морзе можно закодировать так: "точка"- OACBO, "тире" - OACСBO. Комбинация OABO не несет информации, типа случайный сигнал.
А можно и так закодировать: "точка"- OABO, "тире" - OACBO. Все другие сигналы игнорируются, как не несущие полезную информацию.

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

Как-то так. Хотелось бы узнать ваше мнение на мои умозаключения. :roll:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2, 3  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group