stringtranslate.com

Полиномиальный код

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

Определение

Зафиксируем конечное поле , элементы которого мы называем символами . Для целей построения полиномиальных кодов мы отождествляем строку символов с полиномом

Зафиксируем целые числа и пусть будет некоторым фиксированным многочленом степени , называемым порождающим многочленом . Полиномиальный код, сгенерированный с помощью , — это код, кодовые слова которого являются в точности многочленами степени, меньшей той, которая делится (без остатка) на .

Пример

Рассмотрим полиномиальный код над с , , и генераторным полиномом . Этот код состоит из следующих кодовых слов:

Или написано явно:

Поскольку полиномиальный код определен над двоичным полем Галуа , полиномиальные элементы представляются в виде суммы по модулю -2, а окончательные полиномы имеют вид:

Эквивалентно, выраженные в виде строк двоичных цифр, кодовые слова имеют вид:

Это, как и любой полиномиальный код, действительно является линейным кодом , т. е. линейные комбинации кодовых слов снова являются кодовыми словами. В таком случае, когда поле — GF(2), линейные комбинации находятся путем взятия XOR кодовых слов, выраженных в двоичной форме (например, 00111 XOR 10010 = 10101).

Кодирование

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

Некоторые авторы, такие как (Lidl & Pilz, 1999), обсуждают отображение только как назначение от слов данных к кодовым словам. Однако это имеет тот недостаток, что слово данных не появляется как часть кодового слова.

Вместо этого для создания систематического кода часто используется следующий метод : дано слово данных длины , сначала умножается на , что приводит к сдвигу на позиций влево. В общем случае не будет делиться на , т. е. это не будет допустимым кодовым словом. Однако существует уникальное кодовое слово, которое можно получить, отрегулировав самые правые символы . Чтобы вычислить его, вычислите остаток от деления на :

где имеет степень меньше . Кодовое слово, соответствующее слову данных , тогда определяется как

Обратите внимание на следующие свойства:

  1. , которое делится на . В частности, является допустимым кодовым словом.
  2. Так как имеет степень меньше , то самые левые символы согласуются с соответствующими символами . Другими словами, первые символы кодового слова совпадают с исходным словом данных. Остальные символы называются контрольными цифрами или контрольными битами .

Пример

Для приведенного выше кода с , и полиномом-генератором мы получаем следующее назначение слов данных кодовым словам:

Расшифровка

Ошибочное сообщение можно обнаружить простым способом — путем деления полинома на порождающий полином, что даст ненулевой остаток.

Если предположить, что кодовое слово не содержит ошибок, то систематический код можно расшифровать, просто удалив цифры контрольной суммы.

Если есть ошибки, то перед декодированием необходимо выполнить исправление ошибок. Эффективные алгоритмы декодирования существуют для определенных полиномиальных кодов, таких как коды BCH .

Свойства полиномиальных кодов

Как и для всех цифровых кодов, возможности обнаружения и исправления ошибок полиномиальных кодов определяются минимальным расстоянием Хэмминга кода. Поскольку полиномиальные коды являются линейными кодами, минимальное расстояние Хэмминга равно минимальному весу любого ненулевого кодового слова. В приведенном выше примере минимальное расстояние Хэмминга равно 2, поскольку 01001 является кодовым словом, и не существует ненулевого кодового слова с установленным только одним битом.

Более конкретные свойства полиномиального кода часто зависят от конкретных алгебраических свойств его порождающего полинома. Вот несколько примеров таких свойств:

Алгебраическая природа полиномиальных кодов с умело выбранными генераторными полиномами также часто может быть использована для поиска эффективных алгоритмов исправления ошибок. Это касается кодов BCH .

Конкретные семейства полиномиальных кодов

Ссылки