Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СДЭС_Уч_метод_пос_кодирование2.doc
Скачиваний:
93
Добавлен:
03.12.2018
Размер:
1.89 Mб
Скачать

Часть 3 двоичные циклические коды и коды бчх

Цель этой части состоит в том, чтобы дать минимальный набор понятий, необходимых для понимания конструкции циклических кодов и эффективной реализации их алгоритмов кодирования и декодирования. Кроме того, в этой части дается введение в двоичные коды БЧХ. Коды Боуза-Чоудхури-Хок-Вингема (БЧХ) относятся к семейству циклических кодов, обладающих четкой алгебраической структурой, которая существенно упрощает процедуры кодирования и декодирования. Двоичные БЧХ коды с минимальным расстоянием 3, известные также как коды Хемминга, имели широкое применение в компьютерных сетях и устройствах памяти из-за простого и быстрого кодирования и декодирования. Кроме того, укороченные (48, 36, 5) БЧХ коды использованы в Американской сотовой системе с временным разделением каналов (TDMA, стандарт IS-54).

3.1. Двоичные циклические коды.

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

3.1.1. Порождающий и проверочный полиномы.

Обозначим С линейный блоковый (n, k) код. Пусть u сообщение и v соответствующее ему кодовое слово кода С. Циклические

Рис. 16 Циклический регистр сдвига

коды обладают свойствами, которые делают их удобными для аппаратурной (микросхемной) реализации. Сопоставим каждому кодовому слову v полином v(x):

Переменная х служит индикатором относительного положения элемента vi в кодовом слове в виде терма (монома) vixi полинома v(x).

Линейный блоковый код С является циклическим тогда и только тогда, когда любой циклический сдвиг любого кодового слова оказывается другим (или тем же самым) кодовым словом, т.е.

В полиномиальном представлении циклический сдвиг на одну позицию, обозначенный v1(x), соответствует умножению на x по модулю п1),

Операция циклического сдвига реализуется на регистре сдвига, показанном на Рисунке 16.

Пример 19. Рассмотрим случай п = 7. Циклический сдвиг на одну позицию вектора v = (0101011) равен v(1) = (1010101). В полиномиальном представлении и двоичной арифметике получаем:

3.1.2. Порождающий многочлен

Важным свойством циклических кодов является то, что все кодовые слова-полиномы кратны одному фиксированному полиному g(x), который называется порождающим полиномом кода. Этот полином (многочлен), как и всякий другой, задается своими корнями, которые обычно называют нулями кода. Легко показать, что порождающий полином g(x) является делителем бинома п - 1). (По аналогии с целыми числами «а(х) делит b(х)» (иначе b(х)/a(х)), если b(x) = a(x) q(x).) Таким образом, для того, чтобы найти некоторый порождающий многочлен, надо знать разложение бинома п - 1) на неприводимые множители φj(x) ,j = 1, 2, ..., s

(3.1)

Заметим, что в двоичной арифметике операции а + b и а b (по модулю 2) дают одинаковый результат. Так как ниже рассматриваются только двоичные коды или коды над конечными полями характеристики два, т.е. использующие двоичную арифметику, то в дальнейшем мы не будем различать эти операции (т.е. знаки «+» и «-»).

Из вышесказанного следует, что

(3.2)

Пример 20. На множестве двоичных многочленов, т.е. полиномов с коэффициентами из Z2={0,1}, бином х7 - 1 имеет следующее разложение,

Приведем примеры циклических кодов длины 7.

  • Двоичный циклический (7,4,3) код Хемминга с порождающим полиномом g(x) = х3 + х + 1.

  • Двоичный циклический (7,6,2) код с проверкой на четность порождается полиномом g(x) = (х + 1).

  • Дуальный коду Хемминга двоичный (7,3,4) код (код максимальной длины) имеет порождающий многочлен g(x) = (х + 1)(х3 + х + 1).