Троичное кодирование морзянки

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Троичное кодирование морзянки

Post by Shaos »

Сегодня меня осенило - троичным кодом можно кодировать морзянку! Например тире можно передавать через N, точку - через P, а паузу - через O. В этом случае длительность точки, тире и паузы между буквами будут одинаковы, а паузу между словами можно сделать двойной паузой (OO). В таком случае вызов "CQ CQ CQ" в троичном коде будет выглядеть так: NPNPONNPNOONPNPONNPNOONPNPONNPN (-.-. --.- -.-. --.- -.-. --.-)
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Re: Троичное кодирование морзянки

Post by Mac Buster »

Да, совершенно верно. Это было одно из первых вероятных практических применений троичного кодирования о которых я подумал. По поводу кодирования паузы между словами это здорово придумано, отпадает необходимость анализа :)
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичное кодирование морзянки

Post by Shaos »

По идее возможно построить простой девайсик на двоичном микроконтроллере, который в реальном времени может переводить поток троичных уровней в код морзе, например через реле (т.е. этот девайсик может быть прямой заменой настоящего телеграфного ключа). Причём можно сделать чтобы декодер подстраивался под скорость - это возможно, если вначале сообщения идут чередующиеся точки и тире - как например в CQ (-.-. --.-) или KA/ (-.-.-) обычно называемое "Starting Signal" или что тоже самое - CT/ что означает "Commence Transmission". Настроенная скорость сбрасывается, если длительность паузы превышает некоторую величину, например 5 межбуквенных пауз.
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичное кодирование морзянки

Post by Shaos »

Вот собственно иллюстрация - передаются три слова: "starting signal" и два раза "PARIS":

Image

В конце видно обратное преобразование - т.к. у нас длина троичных точки и тире одинаковая, то преобразователь должен быть с запоминанием - точка передаётся сразу же, а вот тире надо передавать в течение времени равном трём точкам - поэтому оно и растянулось.

P.S. Я решил оборачивать каждое слово в одну O вначале и одну O в конце - соответственно когда слова склеиваются, то между ними получаются два O (двойная пауза)
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичное кодирование морзянки

Post by Shaos »

У меня возникла мысль использовать этот протокол для троичного последовательного обмена данными. В качестве кабеля можно взять шнур для телефонных трубок, продаваемый на каждом углу (см. википедию):

Image

Шнур состоит из четырех проводников, которые перевёрнуты, т.е. 1-й контакт первой вилки подцеплен к 4-му контакту второй вилки, 2-й - к 3-му, 3-й ко 2-му ну и 4-й к 1-му:

Image

Перевёрнутость позволяет иметь оба обменивающихся конца равноправными и с одинаковыми розетками (GND, TX, RX, GND):

Image

Интерфейс я решил назвать "Ternary Morse Link", а конкретный протокол обмена "TML-2010":

Image