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

Polynomial code

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

Определение

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

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

Пример

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

Или написано прямо:

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

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

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

Кодирование

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

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

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

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

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

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

Пример

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

  • 000 ↦ 00000
  • 001 ↦ 00111
  • 010 ↦ 01001
  • 011 ↦ 01110
  • 100 ↦ 10010
  • 101 ↦ 10101
  • 110 ↦ 11011
  • 111 ↦ 11100

Расшифровка

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

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

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

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

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

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

  • Полиномиальный код циклический тогда и только тогда, когда порождающий полином делит .
  • Если порождающий полином равен примитивный, то полученный код имеет расстояние Хэмминга не менее 3 при условии, что .
  • В Коды BCH, порождающий полином выбирается так, чтобы он имел определенные корни в поле расширения, таким образом, чтобы достигнуть большого расстояния Хэмминга.

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

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

  • Циклические коды - каждый циклический код также является полиномиальным кодом; популярным примером является CRC код.
  • Коды BCH - семейство циклических кодов с большим расстоянием Хэмминга и эффективными алгоритмами исправления алгебраических ошибок.
  • Коды Рида – Соломона - важное подмножество кодов BCH с особенно эффективной структурой.

Рекомендации

  • WJ Gilbert, W.K. Николсон: Современная алгебра с приложениями, 2-е издание, Wiley, 2004.
  • Р. Лидл и Г. Пильц. Прикладная абстрактная алгебра, 2-е издание. Wiley, 1999.