Лекция 11. Классификация помехоустойчивых кодов. Циклические коды



 

Содержание лекции:

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

Цель лекции:

- получить знания основ помехоустойчивого кодирования.

 

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

Циклические коды относятся к классу линейных систематиче­ских кодов и обладают всеми их свойствами. Удобно рассматри­вать кодовые комбинации циклического кода не в виде последо­вательности нулей и единиц, а в виде полинома некоторой сте­пени. Любое число в любой системе счисления можно предста­вить в общем виде как

, (11.1)

где х — основание системы счисления; ai - цифры данной системы счисления; п-1, п-2,... — показатель степени, в которую возво­дится основание, и одновременно порядковые номера, которые за­нимают разряды, начиная от старшего, кончая нулевым. Для дво­ичной системы х=2, а aiлибо «0», либо «1».

Очевидно, что при записи кодовой комбинации в виде много­члена единица в 1-м разряде записывается членом , а нуль во­обще не записывается. Представление кодовых многочленов позволяет установить однозначное соответствие между ними и свести действия над комбинациями к действию над многочленами. Так, сложение двоичных многочленов сводится к сложению по модулю 2 коэффициентов при равных степенях переменной x. Например,

,

 

 

Умножение производится по обычному правилу умножения степенных функций, однако полученные коэффициенты при данной степени складываются по модулю 2.

Например,

 
 


Деление также осуществляется, как обычное деление многочленов; при этом операция вычитания заменяется операцией сложения по модулю 2*:

Коды названы циклическими потому, что циклический сдвиг а n -2, а n -3,…, а2, а1, а0, а n -1разрешенной комбинации а n -1, а n -2,…, а2, а1, а0также является разрешенной комбинацией. Такая циклическая перестановка при использовании представления в виде полиномов появляется в результате умножения данного полинома на х. Если , то Чтобы степень многочлена не превышала n -1, член заменяется единицей, поэтому

Например, имеем кодовую комбинацию Сдвинем ее на один разряд. Получим

Очевидно, что

Теория построения циклических кодов базируется на разделах высшей алгебры, изучающей свойства двоичных многочленов. Особую роль в этой теории играют так называемые неприводимыемногочлены, т.е. полиномы, которые не могут быть представлены в виде произведения многочленов низших степеней. Такой многочлен делится только на самого себя и на единицу. Из высшей ал­гебры известно, что на неприводимый многочлен делится без ос­татка двучлен хп+1. В теории кодирования неприводимые много­члены называются образующими полиномами, поскольку они «об­разуют» разрешенные кодовые комбинации.

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

1)Представляем информационную часть кодовой комбинации длиной k в виде полинома Q (х).

2) Умножаем Q (х) на одночлен х r и получаем Q (х)х r , т. е. про­изводим сдвиг k-разрядной кодовой комбинации на г разрядов.

3) Делим многочлен Q (х)х rна образующий полином Р(х), сте­пень которого равна r .

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

где R (х) — остаток от деления Q (х)х r на Р(х). Поскольку С(х) имеет такую же степень, что и Q (х), то С(х) представляет собой кодовую комбинацию того же k-разрядного кода. Степень остатка не может быть, очевидно, больше степени образующего полинома, т. е. его наивысшая степень равна r —1. Следовательно, наиболь­шее число разрядов остатка не превышает r .Умножив обе части (6.18) на Р(х), получим

F (х) = С(х)Р(х) = Q (х)х r + R (х) (11.2)

(знак вычитания заменяется знаком сложения по модулю 2). Оче­видно, что F (х)делится на Р(х) без остатка. Полином F (х)пред­ставляет собой разрешенную кодовую комбинацию циклического кода. Из (11.2) следует, что разрешенную кодовую комбинацию цик­лического кода можно получить умножением кодовой комбинации Q (х) простого кода на одночлен х r и добавлением к этому произведению остатка R (х), полученного в результате деления произведения на образующий полином Р(х).

Обнаружение ошибок при циклическом кодированиисводится к делению принятой кодовой комбинации на тот же образующий полином, который использовался при кодировании (вид его, разу­меется, должен быть известен на приеме). Если ошибок в приня­той кодовой комбинации нет (или они такие, что данную переда­ваемую кодовую комбинацию превращают в другую разрешен­ную), то деление на образующий полином произведется без ос­татка. Если при делении получится остаток, то это и свидетельст­вует о наличии ошибки. Остаток от деления в циклических кодах играет роль синдрома. Остаток от деления — синдром циклического кода, не равный нулю, — свидетельствует о наличии ошибки.В кодах с образую­щим полиномом степени г остаток представляется в виде полинома, степень которого меньше r. Это означает, что количество раз­личных ненулевых остатков может быть равным . Номер разряда, в котором произошла ошибка, однозначно связан с видом получаю­щегося при этом ненулевого остатка. Это позволяет по виду синд­рома (остатка) определить место ошибки. Таким образом, для исправления ошибокнеобходимо обеспе­чить условие, при котором количество различных ненулевых ос­татков будет равно количеству элементов п (при исправлении од­ной, ошибки) или числу комбинаций из п по t и , где t и— количест­во ошибок, исправляемых кодом. Следует подчеркнуть, что не все неприводимые многочлены по­зволяют формировать 2r—1 различных остатков. Это присуще только определенному классу многочленов, которые именуются «примитивными». Так, удовлетворяет указанному требованию, а — нет, т. е. —прими­тивный многочлен. Исходя из приведенных соображений, в качестве образующих многочленов используют примитивные многочлены. Их признаком является наличие остатка, равного единице только для х° и хп, где п — количество элементов в кодовой комбинации. Между n и r для таких полиномов имеется зависимость 2 r =п—1. Здесь п — максимальное количество элементов, при котором число различающих­ся ненулевых остатков равно п—1. Поэтому в таблицах образующих полино­мов указываются только примитивные полиномы.

Для определения места ошибки в циклическом коде существу­ет несколько методов, основанных на анализе синдрома Р(х). Принятую кодовую комбинацию F '(х)можно представить в виде , где Е (х) —многочлен ошибки. Остаток от деления принятой кодовой комбинации F 'п(х)на Р(х) равен остатку от деления на Р(х) кодовой комбинации ошибки Еп(х), если F п (х) = F 'п(х) Еп(х). Это условие справедливо, если код способен исправлять коли­чество ошибок tи, равное или меньшее веса комбинации Еп(0,1). На основе этого свойства можно заключить, что синдром не за­висит от переданной кодовой комбинации, а определяется лишь наличием ошибок. Указанное свойство можно использовать для определения ошибочно принятого элемента. Предположим, что ошибка произошла в старшем разряде пере­данной кодовой комбинации a 1. В этом случае R 1 (х) - есть оста­ток от деления принятой комбинации F п (х)на Р(х). Такой же ос­таток R 1 (х) получается, если разделить на Р(х)комбинацию ошибки, т. е. многочлен хп-1. Но такой же остаток по­лучится при ошибке в разряде а2, еслиF / п (х) умножить на х. То же будет и при ошибке в разряде а3, если F п (х) умножить на х2, и т. д.


Дата добавления: 2018-09-20; просмотров: 535; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!