В теории кодирования , особенно в телекоммуникациях , самосинхронизирующийся код - это уникально декодируемый код, в котором поток символов, сформированный частью одного кодового слова или перекрывающейся частью любых двух соседних кодовых слов, не является допустимым кодовым словом. . [1] Другими словами, набор строк (называемых «кодовыми словами») в алфавите называется самосинхронизирующимся кодом, если для каждой строки, полученной объединением двух кодовых слов, подстрока начинается со второго символа и заканчивается на второй последний символ не содержит кодового слова в качестве подстроки. Каждый самосинхронизирующийся код - это префиксный код., но не все префиксные коды самосинхронизируются.
Другие термины для самосинхронизирующегося кода - это синхронизированный код [2] или, что неоднозначно, код без запятых . [3] Самосинхронизирующийся код позволяет правильно кадрировать передаваемые кодовые слова при условии, что в потоке символов не возникает неисправленных ошибок ; внешняя синхронизация не требуется. Самосинхронизирующиеся коды также позволяют устранять неисправленные ошибки в потоке; с большинством префиксных кодов неисправленная ошибка в одном бите может распространять ошибки дальше в потоке и приводить к повреждению последующих данных .
Важность самосинхронизирующихся кодов не ограничивается передачей данных . Самосинхронизация также облегчает некоторые случаи восстановления данных , например, текста, закодированного в цифровой форме .
Примеры [ править ]
- Код префикса {00, 11} самосинхронизируется, поскольку 0, 1, 01 и 10 не являются кодами.
- UTF-8 является самосинхронизирующимся, потому что его ведущие (
11xxxxxx
) и конечные (10xxxxxx
) байты имеют разные битовые шаблоны. - Управление каналом передачи данных высокого уровня (HDLC)
- Расширенные процедуры управления передачей данных (ADCCP)
- Кодирование Фибоначчи
Контрпримеры:
- Код префикса { ab , ba } не самосинхронизируется, поскольку abab содержит ba .
- Код префикса b ∗ a (с использованием звезды Клини ) не является самосинхронизирующимся (даже если любое новое кодовое слово просто начинается после een a ), потому что кодовое слово ba содержит кодовое слово a .
См. Также [ править ]
- Проскальзывание бит
- Код запятой
- Самосинхронизирующийся сигнал
- Последовательное заполнение служебных байтов
Ссылки [ править ]
- ^ https://glossary.atis.org/glossary/self-synchronizing-code/?char=S&page_number=22&sort=ASC
- ^ Berstel et al (2010) стр. 137
- ^ Berstel & Perrin (1985) р. 377
- Берстель, Жан; Перрен, Доминик (1985), Теория кодов , Чистая и прикладная математика, 117 , Academic Press, Zbl 0587.68066
- Берстель, Жан; Перрен, Доминик; Ройтенауэр, Кристоф (2010). Коды и автоматы . Энциклопедия математики и ее приложений. 129 . Кембридж: Издательство Кембриджского университета . ISBN 978-0-521-88831-8. Zbl 1187.94001 .
- Эта статья включает материалы, являющиеся общественным достоянием, из документа Управления общих служб : «Федеральный стандарт 1037C» .(в поддержку MIL-STD-188 )