Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

9_10_kol / Методы построения циклического кода

.docx
Скачиваний:
32
Добавлен:
15.02.2015
Размер:
25.27 Кб
Скачать

Методы построение циклического кода

Метод умножения:

При построении циклического кода методом умножения осуществляется умножение информационного многочлена (x) на образующий многочлен g(x).

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

Рассмотрим пример, где имеется код, исправляющий одиночные ошибки - (7;4). Пусть g(x)=⊕1. Необходимо передать (x)=1011.

Решение:

Запишем g(x) в виде многочлена (n-1) степени относительно переменной x, коэффициенты при которой имеют значения 0 или 1. Таким образом, получаем g(x)=1011.

Для получения разрешённой кодовой комбинации умножим (x) на g(x).

Допустим, что в линии связи произошла ошибка, значит, на выходе из линии связи мы получим ⊕0010000=.

Для нахождения ошибки на приёмной стороне требуется принятую кодовую комбинация поделить на многочлен g(x). При отсутствии ошибок, остаток от деления r(x) равен нулю.

В нашем примере при делении в столбик кодовой комбинации на g(x) остаток получился, отличный от нуля: r(x)=110.

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

0000001

001

0000010

010

0000100

100

0001000

011

0010000

110

0100000

111

1000000

101

В примере остаток равен 110, то есть ошибка в пятом разряде. Необходимо исправить её:

) = 1010101⊕0010000=1000101

Но, для того, чтобы получить (x), нужно разделить (x)= 1000101 на g(x)= 1011, в результате чего, мы получим остаток, равный нулю, следовательно, ошибок нет.

Метод деления:

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

Для получения разделимого кода необходимо (x) умножить на , либо дописать к (x) справа m нулей. Полученный многочлен делим на g(x), в результате чего получается частное деление g(x) и остаток r(x).

Разрешённая кодовая комбинация (x) получается путём сложения:

Рассмотрим пример, где имеется код, исправляющий одиночные ошибки - (7;4). Пусть g(x)=⊕1. Необходимо передать (x)=1011.

Решение:

Запишем g(x) в виде многочлена (n-1) степени относительно переменной x, коэффициенты при которой имеют значения 0 или 1. Таким образом, получаем g(x)=1011.

Для получения разрешённой кодовой комбинации умножим (x) на :

В результате деления на g(x)=1011 получится остаток r(x)=0000.

(x) делится на g(x) без остатка, так как:

Данная методика используется при k>m

Если в линии связи произошла ошибка в пятом разряде , то:

Поделив на g(x), получим остаток r(x), равный 110

Исправив принятую кодовую комбинацию:1001000⊕0010000=1011000, где в полученном числе (x) – это первые k символов - 1011.