3.3. Циклични кодове
Класът от линейни кодове, които се наричат циклични, стана широко разпространен.Името на тези кодове идва от основното им свойство: ако кодовата комбинация е a1, a2. an-1, an принадлежи на цикличния код, тогава комбинациите an, a1, a2. an-1; an-1, an, a1, a2,.., an-2 и т.н., получени чрез циклична пермутация на елементи, също принадлежат към този код.
Общо свойство на всички разрешени кодови комбинации от циклични кодове (като полиноми) е тяхната делимост без остатък от избран полином, нареченгенериращСиндромът на грешка в тези кодове е наличието на остатък от деленето на получената кодова комбинация на този полином. Описанието на цикличните кодове и тяхното конструиране обикновено се извършва с помощта на полиноми (полиноми). Цифрите на двоичния код могат да се разглеждат като коефициенти на полином в променливата x.
Тъй като всяко число в произволна бройна система може да бъде записано като an-1х n-1 + an-2x n-2 +. + a0х 0 , където x е основата на бройната система, an-1. a0 са цифрите на тази система, тогава преходът от двоично число към полином се извършва, както следва:
11011 1x 4 + 1x 3 +0x 2 +1x 1 +1x 0 =x 4 +x 3 +x+1
Това показва, че кодовата комбинация с дължинаn (n=5)се описва от полином от степенn—1. Нотацията на кодовата дума под формата на полином обаче не винаги определя дължината на кодовата думаn.Например, когато n=5, полиномът x 2 +1 съответства на кодовата комбинация 00101. Следователно, когато се преминава към нотация под формата на кодова дума, е необходимо да се добавят нула цифри от висок ред.
Кодовите комбинации на цикличен код се описват от полиноми с определени свойства. Последните се определят от свойствата и операциите на алгебричната система, към коятомного полиноми.
В цикличните кодове разрешените кодови комбинации са тези, които имат нулев остатък по модулPv(x),, т.е. се делят на генериращ полином без остатък. От всички възможни полиноми от степенn (2n), само 2 k полинома(k = n-r)имат нулев остатък по модулPr(x).Те формират набора от разрешени кодови комбинации на цикличния код.
Цикличните кодове са блокови, равномерни и линейни. Линейността на кодовете следва от факта, че ако кодовите думи принадлежат на цикличен код, тогава тяхната линейна комбинация също ще принадлежи на цикличен код, т.е. тя трябва да бъде разделена без остатък от генериращ полином.
В сравнение с конвенционалните линейни кодове се налага допълнително ограничение върху разрешените кодови комбинации на цикличен код: делимост без остатък от генериращ полином. Това свойство значително опростява хардуерната реализация на кода.
Откриването на грешки в цикличния код се извършва чрез разделяне на получената кодова комбинация на кодовата комбинация на генериращия полином (формата му трябва да бъде известна при приемането). Остатъкът от деленетоR(x)играе ролята на синдром. АкоR(x) Ф0,се счита, че са възникнали грешки. АкоR(x)=0,тогава комбинацията се приема правилно.
Методи за генериране на циклични кодове.
Нека е даден полиномP(x)=ar-1xr+ar-2xr-1+. +1,, което определя коригиращата способност на кода и е даден оригиналният прост код, който трябва да бъде преобразуван в коригиращ цикличен.
Нека обозначим полинома, съответстващ на комбинацията от прост код като Q(x). Вземете произведението Q(x)x r и го разделете на P(x). INВ резултат на това получаваме полинома G(x) и остатъка
Лявата страна на уравнението се дели без остатък на P(x), което означава, че дясната страна също се дели на P(x). Така можем да получим два различни начина за генериране на циклични кодове:
Позиционният полином с 1 източник се умножава по генериращия полином. Този метод
води до неделим код.
2-Оригиналния полином се умножава по x g, след което чрез разделяне на P (x) се получава остатъкът
R(x) да се добави към Q(x)x r . Този метод ви позволява да получите
разделим код, в който оригиналната кодова комбинация е една от разрешените.
Недостатъкът на първия метод е, че с негова помощ получаваме неделим код (тоест е невъзможно да се отделят елементите за проверка от информационните).