Троичное кодирование морзянки
Moderator: haqreu
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Троичное кодирование морзянки
Сегодня меня осенило - троичным кодом можно кодировать морзянку! Например тире можно передавать через N, точку - через P, а паузу - через O. В этом случае длительность точки, тире и паузы между буквами будут одинаковы, а паузу между словами можно сделать двойной паузой (OO). В таком случае вызов "CQ CQ CQ" в троичном коде будет выглядеть так: NPNPONNPNOONPNPONNPNOONPNPONNPN (-.-. --.- -.-. --.- -.-. --.-)
-
- Retired
- Posts: 1474
- Joined: 03 Aug 2003 22:37
- Location: Moscow
Re: Троичное кодирование морзянки
Да, совершенно верно. Это было одно из первых вероятных практических применений троичного кодирования о которых я подумал. По поводу кодирования паузы между словами это здорово придумано, отпадает необходимость анализа 

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

В конце видно обратное преобразование - т.к. у нас длина троичных точки и тире одинаковая, то преобразователь должен быть с запоминанием - точка передаётся сразу же, а вот тире надо передавать в течение времени равном трём точкам - поэтому оно и растянулось.
P.S. Я решил оборачивать каждое слово в одну O вначале и одну O в конце - соответственно когда слова склеиваются, то между ними получаются два O (двойная пауза)

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

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

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

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


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

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

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