Линейный код
В теории кодирования линейный код — это код, исправляющий ошибки , для которого любая линейная комбинация кодовых слов также является кодовым словом. Линейные коды традиционно делятся на блочные коды и сверточные коды , хотя турбокоды можно рассматривать как гибрид этих двух типов. [1] Линейные коды позволяют использовать более эффективные алгоритмы кодирования и декодирования, чем другие коды (см. Синдромное декодирование ). [ нужна ссылка ]
Линейные коды используются при прямом исправлении ошибок и применяются в способах передачи символов (например, битов ) по каналу связи , так что в случае возникновения ошибок при передаче некоторые ошибки могут быть исправлены или обнаружены получателем блока сообщения. Кодовые слова в линейном блочном коде представляют собой блоки символов, которые закодированы с использованием большего количества символов, чем исходное значение для отправки. [2] Линейный код длины n передает блоки, содержащие n символов. Например, код Хэмминга [7,4,3] представляет собой линейный двоичный код , который представляет 4-битные сообщения с использованием 7-битных кодовых слов. Два различных кодовых слова отличаются по крайней мере тремя битами. Как следствие, можно обнаружить до двух ошибок на одно кодовое слово и исправить одну ошибку. [3] Этот код содержит 2 4 =16 кодовых слов.
Определение и параметры [ править ]
Линейный код длины n и размерности k — это линейное подпространство C размерности . k векторного пространства где — конечное поле с q элементами. Такой код называется q -ичным кодом. Если q = 2 или q = 3, код описывается как двоичный или троичный код соответственно. Векторы в C называются кодовыми словами . Размер . кода равен количеству кодовых слов и равен q к .
Вес кодового слова — это количество его элементов, которые не равны нулю, а расстояние между двумя кодовыми словами — это расстояние Хэмминга между ними, то есть количество элементов, которыми они отличаются. Расстояние d линейного кода — это минимальный вес его ненулевых кодовых слов или, что то же самое, минимальное расстояние между различными кодовыми словами. Линейный код длины n , размерности k и расстояния d называется кодом [ n , k , d ] (или, точнее, код).
Мы хотим дать стандартная основа, поскольку каждая координата представляет собой «бит», который передается по «шумному каналу» с некоторой небольшой вероятностью ошибки передачи ( двоичный симметричный канал ). Если используется какой-то другой базис, то эту модель использовать нельзя, и метрика Хэмминга не измеряет количество ошибок при передаче, как нам хотелось бы.
Генератор и проверочные матрицы [ править ]
Как линейное подпространство , весь код C (который может быть очень большим) может быть представлен как диапазон набора кодовые слова (известные как базис в линейной алгебре ). Эти базовые кодовые слова часто сопоставляются по строкам матрицы G, известной как матрица для кода C. порождающая Когда G имеет форму блочной матрицы , где обозначает единичная матрица и P — некоторая матрица, то мы говорим, что G находится в стандартной форме .
Матрица H, представляющая линейную функцию которого ядром является C, ( или иногда называется проверочной матрицей C проверочной матрицей четности). Эквивалентно, H — матрица, пространство которой равно C. нулевое Если C — код с порождающей матрицей G в стандартной форме, , затем является проверочной матрицей для C. Код, порожденный H , называется двойственным кодом C. Можно проверить, что G является матрица, а H является матрица.
Линейность гарантирует, что минимальное расстояние Хэмминга d между кодовым словом c 0 и любым другим кодовым словом c ≠ c 0 не зависит от c 0 . Это следует из того свойства, что разность c − c 0 двух кодовых слов в C также является кодовым словом (т. е. элементом подпространства C ), и того свойства, что d ( c , c 0 ) = d ( c − c 0 , 0). Эти свойства подразумевают, что
Другими словами, чтобы узнать минимальное расстояние между кодовыми словами линейного кода, нужно посмотреть только на ненулевые кодовые слова. Ненулевое кодовое слово с наименьшим весом имеет тогда минимальное расстояние до нулевого кодового слова и, следовательно, определяет минимальное расстояние кода.
Расстояние d линейного кода C также равно минимальному количеству линейно зависимых столбцов проверочной H. матрицы
Доказательство: Потому что , что эквивалентно , где это столбец . Удалите эти элементы с помощью , те с линейно зависимы. Поэтому, - это как минимум минимальное количество линейно зависимых столбцов. С другой стороны, рассмотрим минимальный набор линейно зависимых столбцов где — набор индексов столбца. . Теперь рассмотрим вектор такой, что если . Примечание потому что . Поэтому у нас есть , что представляет собой минимальное количество линейно зависимых столбцов в . Таким образом, заявленное свойство является доказанным.
Пример: коды Хэмминга [ править ]
, первый класс линейных кодов, разработанных для исправления ошибок, Коды Хэмминга широко используются в цифровых системах связи. Для любого положительного целого числа , существует Код Хэмминга. С , этот код Хэмминга может исправить 1-битную ошибку.
Пример: линейный блочный код со следующей порождающей матрицей и матрицей проверки четности представляет собой Код Хэмминга.
Пример: коды Адамара [ править ]
Код Адамара – это линейный код и способен исправлять множество ошибок. Код Адамара можно построить столбец за столбцом: столбец — это биты двоичного представления целого числа , как показано в следующем примере. Код Адамара имеет минимальное расстояние и поэтому может исправить ошибки.
Пример: линейный блочный код со следующей порождающей матрицей представляет собой Код Адамара: .
Код Адамара является частным случаем кода Рида-Мюллера . Если мы возьмем первый столбец (столбец со всеми нулями) из , мы получаем симплекс-код , который является двойственным кодом кода Хэмминга.
Алгоритм ближайшего соседа [ править ]
Параметр d тесно связан со способностью кода исправлять ошибки. Это иллюстрирует следующая конструкция/алгоритм (называемый алгоритмом декодирования ближайшего соседа):
Входные данные: полученный вектор v в .
Выход: кодовое слово. в ближайший к , если таковые имеются.
- Начиная с , повторите следующие два шага.
- Перечислить элементы шара радиуса (Хемминга) вокруг полученного слова , обозначенный .
- Для каждого в , проверьте, если в . Если да, верните как решение.
- Приращение . Потерпите неудачу только тогда, когда Итак, перечисление завершено, и решение не найдено.
Мы говорим, что линейная является -исправление ошибок, если в коде присутствует не более одного кодового слова. , для каждого в .
Популярные обозначения [ править ]
Коды обычно обозначаются буквой C , а код длины n и ранга k (т. е. имеющий n кодовых слов в своей основе и k строк в порождающей матрице ) обычно называется ( n , k ) код. Линейные блочные коды часто обозначаются как [ n , k , d коды ], где d относится к минимальному расстоянию Хэмминга кода между любыми двумя кодовыми словами.
(Обозначение [ n , k , d ] не следует путать с обозначением ( n , M , d ), используемым для обозначения нелинейного кода длины n , размера M (т. е. имеющего M кодовых слов) и минимального кода Хэмминга. расстояние d .)
Синглтон связан [ править ]
Лемма ( ограничение синглтона ): каждый линейный [n,k,d] код C удовлетворяет условию .
Код C, параметры которого удовлетворяют k+d=n+1, называется отделяемым на максимальное расстояние или MDS . Такие кодексы, если они существуют, в каком-то смысле являются наилучшими из возможных.
Если C 1 и C 2 существует перестановка p, — два кода длины n и если в симметричной группе Sn для которой (c 1 ,...,c n ) в C 1 тогда и только тогда, когда (c p(1 ) ,...,c p(n) ) в C 2 , то мы говорим, что C 1 и C 2 эквивалентны перестановочно . В более общем плане, если существует мономиальная матрица что переводит C1 изоморфно в C2 , то мы говорим, C1 и C2 эквивалентны что .
Лемма : Любой линейный код является перестановочным эквивалентом кода стандартной формы.
Бонизоли editТеорема
Код считается эквидистантным тогда и только тогда, когда существует некоторая константа d такая, что расстояние между любыми двумя различными кодовыми словами кода равно d . [4] В 1984 году Арриго Бонисоли определил структуру линейных одновесовых кодов над конечными полями и доказал, что каждый эквидистантный линейный код является последовательностью двойственных кодов Хэмминга . [5]
Примеры [ править ]
Некоторые примеры линейных кодов включают:
- Коды повторения
- Коды четности
- Циклические коды
- Коды Хэмминга
- Код Голея , как двоичная , так и троичная версии
- Полиномиальные коды которых являются коды BCH . , примером
- Коды Рида – Соломона
- Коды Рида – Мюллера
- Коды алгебраической геометрии
- Двоичные коды Гоппы
- Коды проверки четности низкой плотности
- Коды расширителя
- Многомерные коды проверки четности
- Торические коды
- Турбо коды
Обобщение [ править ]
Пространства Хэмминга над неполевыми алфавитами также рассматривались, особенно над конечными кольцами , особенно над кольцами Галуа над Z 4 . Это приводит к появлению модулей вместо векторных пространств и кольцевых линейных кодов (отождествляемых с подмодулями ) вместо линейных кодов. Типичная метрика, используемая в данном случае, — расстояние Ли . Существует изометрия Грея между (т.е. GF(2 2м )) с расстоянием Хэмминга и (также обозначаемый как GR(4,m)) с расстоянием Ли; его главная привлекательность в том, что он устанавливает соответствие между некоторыми «хорошими» кодами, которые не являются линейными по как изображения кольцевых линейных кодов из . [6] [7] [8]
Некоторые авторы также называют такие коды над кольцами просто линейными кодами. [9]
См. также [ править ]
Ссылки [ править ]
- ^ Уильям Э. Райан и Шу Линь (2009). Коды каналов: классические и современные . Издательство Кембриджского университета. п. 4 . ISBN 978-0-521-84868-8 .
- ^ Маккей, Дэвид, Дж. К. (2003). Теория информации, вывод и алгоритмы обучения (PDF) . Издательство Кембриджского университета . п. 9. Бибкод : 2003itil.book.....М . ISBN 9780521642989 .
В линейном блочном коде дополнительные биты являются линейными функциями исходного биты; эти дополнительные биты называются битами проверки четности.
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Томас М. Кавер и Джой А. Томас (1991). Элементы теории информации . John Wiley & Sons, Inc., стр. 210–211 . ISBN 978-0-471-06259-2 .
- ^ Эцион, Туви; Равив, Нетанель (2013). «Эквидистантные коды в грассманиане». arXiv : 1308.6231 [ math.CO ].
- ^ Бонисоли, А. (1984). «Каждый эквидистантный линейный код представляет собой последовательность двойственных кодов Хэмминга». Арс Комбинатория . 18 : 181–186.
- ^ Маркус Греферат (2009). «Введение в теорию кольцевого линейного кодирования». В Массимилиано Сала; Тео Мора; Людовик Перре; Сёдзиро Саката; Карло Траверсо (ред.). Базы Грёбнера, кодирование и криптография . Springer Science & Business Media. ISBN 978-3-540-93806-4 .
- ^ «Энциклопедия математики» . www.энциклопедияofmath.org .
- ^ Дж. Х. ван Линт (1999). Введение в теорию кодирования (3-е изд.). Спрингер. Глава 8: Коды более ℤ 4 . ISBN 978-3-540-64133-9 .
- ^ С. Т. Догерти; Ж.-Л. Ким; П. Соле (2015). «Открытые проблемы теории кодирования» . У Стивена Догерти; Альберто Факкини; Андре Жерар Лерой; Эдмунд Пучиловски; Патрик Соле (ред.). Некоммутативные кольца и их приложения . Американское математическое соц. п. 80. ИСБН 978-1-4704-1032-2 .
Библиография [ править ]
- Дж. Ф. Хамфрис; МОЙ Перст (2004). Числа, группы и коды (2-е изд.). Издательство Кембриджского университета. ISBN 978-0-511-19420-7 . Глава 5 содержит более мягкое введение (чем эта статья) в тему линейных кодов.
Внешние ссылки [ править ]
- Программа генератора q -арного кода
- Таблицы кодов: границы параметров различных типов кодов , IAKS, Fakultät für Informatik, Universität Karlsruhe (TH)] . В Интернете актуальная таблица оптимальных двоичных кодов, включая недвоичные коды.
- База данных кодов Z4 Онлайн, актуальная база данных оптимальных кодов Z4.