Кодиращи и декодиращи устройства

Кодиращи и декодиращи устройства. Код с контрол по четност, цикличен код.

Кодирането се отнася само за дискретни съобщения. Всяко дискретно съобщение се задава с азбука, която има краен брой символи. Тези символи могат да бъдат номерирани и вместо тях да се предават съответните им номера. Номерирането става с числа от бройна система с произволна основа m, но обикновено се избира с малка основа (напр. m=2 или 4). Така се осигурява различаването на отделните символи.

Кодова комбинация

Кодовата комбинация е последователност от символи наречени елементи или разреди на комбинацията. Броят на разредите се нарича значност или дължина на комбинацията. Т.е кодирането е съпоставянето на последователности от символи (кодови комбинации) на всеки от символите на азбуката, с която се описва дискретното съобщение. Тогава, декодиране е процесът на възстановяване на съобщението по дадения код.

Видове кодове:

  • Равномерни кодове- всички кодови комбинации имат еднакъв брой разреди;
  • Неравномерни кодове- всички кодови комбинации имат различен брой разреди.

Когато кодът е равномерен с основа m и комбинациите са n-разредни, общия възможен брой комбинации е N0=mn.

Блокови кодове- кодове, при които на всеки символ от изходната азбука се приписва точно определена кодова комбинация.

Прости кодове (кодове без излишък)- в тези кодове винаги съществуват комбинации, които се различават само по един елемент (т.е имат кодово разстояние 1) и ако този елемент в процеса на предаване бъде сгрешен, едната комбинация се превръща в другата. При декодирането вместо предадения символ от съобщението ще се приеме друг т.е ще се извърши грешно приемане, дори когато само един разред в комбинацията е сгрешен.

Систематични кодове- блокови разделими (кодове, при които винаги се знае кои разреди са информационни и кои са проверочни в самата комбинация) кодове, при които проверочните разреди се получават чрез линейни операции над информационните.

Код с контрол по четност

Това е блоков разделим код и се получава от простия код без излишък, като към всяка комбинация се добавя един проверочен разред, определен така, че единиците да станат четен брой (проверочният разред се получава чрез сумиране на разредите на простия код, затова кодът с проверка по четност е систематичен код).

Проверката се осъществява чрез просто сумиране (пристигащите разреди от всяка комбинация се подават на входа на един тригер и ако единиците са нечетен брой, той няма да се върне в изходно положение, което е индикация за грешка).

Кодът открива всички нечетни грешки.

Цикличен код

Това е систематичен код, при който цикличното преместване на разредите в една разрешена комбинация дава друга разрешена от същия код.

Ако например: а5а4а3а2а1 е разрешена комбинация от даден цикличен код и следните комбинации са разрешени:

а4а3а2а1а5
а3а2а1а5а4
а2а1а5а4а3

По–висши разреди в комбинациите са по-левите, а цикличното преместване се прави от ляво на дясно.

При цикличните кодове кодовите комбинации се представят като полиноми с променлива х (т.е фиктивна променлива). На n-разредна комбинация саъответства полином от n-1 степен от вида:

F(x)=an-1 xn-1 + an-2 xn-2 + … + a2 x2 + a1 x + a0

Над тези полиноми се извършва сумиране, изваждане, умножение и деление по модул 2.

Умножението на един полином с хm е равностойно на изместването на съответната комбинация с m стъпки наляво и добавяне на m нули.

Проверка при цикличен код:

Всяка разрешена комбинация F(x) се дели без остатък на полинома P(x) (P(x)-производящ полином). Проверката се свежда до разделяне на всяка пристигнала комбинация на производящия полином. Ако деленето е без остатък, това означава, че или не е възникнала грешка или е възникнала неоткриваема такава.

Коментари: