Код постоянного веса - Constant-weight code
В теория кодирования, а код постоянного веса, также называемый м-из-п код, является обнаружение и исправление ошибок код, в котором все кодовые слова имеют одинаковые Вес Хэмминга. горячий код и сбалансированный код - это два широко используемых типа кода с постоянным весом.
Теория тесно связана с теорией конструкции (Такие как т-конструкции и Системы Штайнера ). Большая часть работы в этой очень важной области дискретная математика связана с двоичный коды с постоянным весом.
У двоичных кодов постоянного веса есть несколько приложений, в том числе скачкообразная перестройка частоты в GSM сети.[1]Наиболее штрих-коды используйте двоичный код с постоянным весом, чтобы упростить автоматическую установку порога. линейные коды используйте либо код постоянного веса, либо почти постоянный вес парный код диспаратности. Помимо использования в качестве кодов исправления ошибок, большое пространство между кодовыми словами также можно использовать при разработке асинхронные схемы Такие как схемы, нечувствительные к задержке.
Коды с постоянным весом, например Коды Бергера, может обнаружить все однонаправленные ошибки.
А(п, d, ш)
Основная проблема, связанная с кодами постоянного веса, заключается в следующем: каково максимальное количество кодовых слов в двоичном коде постоянного веса с длиной , Расстояние Хэмминга , а вес ? Этот номер называется .
Помимо некоторых тривиальных наблюдений, обычно невозможно вычислить эти числа прямым способом. Верхние оценки даются несколькими важными теоремами, такими как первый и второй предел Джонсона,[2] а лучшие верхние границы иногда можно найти другими способами. Нижние границы чаще всего находятся путем отображения конкретных кодов либо с использованием различных методов из дискретной математики, либо путем интенсивного компьютерного поиска. Большая таблица таких кодов-рекордов была опубликована в 1990 г.[3] и расширение на более длинные коды (но только для тех значений и которые актуальны для приложения GSM) был опубликован в 2006 году.[1]
1-из-N коды
Частным случаем кодов постоянного веса являются коды одного изN коды, которые кодируют бит в кодовом слове биты. Код «один из двух» использует кодовые слова 01 и 10 для кодирования битов «0» и «1». Один из четырех кодов может использовать слова 0001, 0010, 0100, 1000 для кодирования двух битов 00, 01, 10 и 11. Пример: кодирование двойной шины, и звено цепи [4] используется в схемах, нечувствительных к задержке. Для этих кодов и .
Некоторые из наиболее заметных применений однократных кодов включают:код двухфазной метки использует код 1 из 2;импульсно-позиционная модуляция использует 1-из-п код;адресный декодер,так далее.
Сбалансированный код
В теория кодирования, а сбалансированный код это двоичный упреждающее исправление ошибок код, для которого каждое кодовое слово содержит равное количество нулевых и единичных битов. Сбалансированные коды были введены Дональд Кнут;[5] они представляют собой подмножество так называемых неупорядоченных кодов, которые представляют собой коды, обладающие тем свойством, что позиции единиц в кодовом слове никогда не являются подмножеством позиций единиц в другом кодовом слове. Как и все неупорядоченные коды, сбалансированные коды подходят для обнаружения всех однонаправленные ошибки в закодированном сообщении. Сбалансированные коды обеспечивают особенно эффективное декодирование, которое может выполняться параллельно.[5][6][7]
Некоторые из наиболее заметных применений кодов со сбалансированным весом включаюткод двухфазной метки использует код 1 из 2;Кодирование 6b / 8b использует код 4 из 8; Код Адамара это из код (кроме нулевого кодового слова), три из шести код и т. д.
3-проводное кодирование дорожки, используемое в МИПИ C-PHY можно рассматривать как обобщение кода постоянного веса на троичный - каждый провод передает тройной сигнал, и в любой момент один из 3 проводов передает низкий уровень, один передает средний, а один передает высокий сигнал.[8]
м-из-п коды
An м-из-п код отделимый обнаружение ошибок код с длиной кодового слова п бит, где каждое кодовое слово содержит ровно м экземпляры «один». Одна битовая ошибка приведет к тому, что кодовое слово будет иметь либо м + 1 или же м − 1 «единицы». Пример м-из-п код - это Код 2 из 5 используется Почтовая служба Соединенных Штатов.
Простейшая реализация - добавить строку единиц к исходным данным, пока она не будет содержать м единицы, затем добавьте нули, чтобы создать код длины п.
Пример:
Исходные 3 бита данных | Добавленные биты |
---|---|
000 | 111 |
001 | 110 |
010 | 110 |
011 | 100 |
100 | 110 |
101 | 100 |
110 | 100 |
111 | 000 |
Некоторые из наиболее заметных применений кодов постоянного веса, помимо уже упомянутых выше кодов с одним горячим и сбалансированным весом, включаютКод 39 использует код 3 из 9;двоично-десятичный кодированный десятичный код использует код 2 из 7, Код 2 из 5,так далее.
Рекомендации
- ^ а б Д. Х. Смит, Л. А. Хьюз и С. Перкинс (2006). "Новая таблица кодов постоянного веса для длины более 28 ". Электронный журнал комбинаторики 13.
- ^ См. Стр. 526–527 из F. J. MacWilliams и N. J. A. Sloane (1979). Теория кодов, исправляющих ошибки. Амстердам: Северная Голландия.
- ^ А. Е. Брауэр, Джеймс Б. Ширер, Н. Дж. А. Слоан и Уоррен Д. Смит (1990). «Новая таблица кодов постоянного веса». IEEE транзакции теории информации 36.
- ^ У. Дж. Бейнбридж; А. Бардсли; Р. В. МакГаффин. «Проектирование системы на кристалле с использованием самосинхронных сетей на кристалле».
- ^ а б D.E. Кнут (январь 1986 г.). «Эффективные сбалансированные коды» (PDF). IEEE Transactions по теории информации. 32 (1): 51–53. Дои:10.1109 / TIT.1986.1057136.[постоянная мертвая ссылка ]
- ^ Сулейман аль-Бассам; Белла Бозе (март 1990 г.). «О сбалансированных кодах». IEEE Transactions по теории информации. 36 (2): 406–408. Дои:10.1109/18.52490.
- ^ К. Шухамер Имминк и Дж. Вебер (2010). «Очень эффективные сбалансированные коды». Журнал IEEE по избранным областям коммуникаций. 28: 188–192. Дои:10.1109 / jsac.2010.100207. Получено 2018-02-12.
- ^ «Демистификация подсистемы MIPI C-PHY / DPHY - компромиссы, проблемы и принятие» (зеркало )
внешняя ссылка
- Таблица нижних границ поддерживается Андрис Брауэр (обновление предыдущая таблица к Нил Слоан и Э. М. Рейнс )
- Таблица верхних границ поддерживается Эрик Агрелл