Циклічні коди

До ефективних кодів, що виявляють одиночні, кратні помилки і пачки помилок, відносяться циклічні коди (CRC - Cyclic Redundance Code). Вони високонадійні і можуть застосовуватися при блоковій синхронізації, при якій виділення, наприклад, біта непарності було б важко.

Один з варіантів циклічного кодування полягає у множенні вихідного коду на утворює поліномg(x), а декодування - у розподілі наg(x). Якщо залишок від розподілу не дорівнює нулю, то сталася помилка. Сигнал про помилку надходить на передавач, що викликає повторну передачу.

Утворюючий поліном є двійкове уявлення одного з простих множників, на які розкладається числоX n-1, деX nпозначає одиницю вn-му розряді,nдорівнює числу розрядів кодової групи. Так, якщоn= 10 іХ= 2, то X n -1 = 1023 = 11*93, і якщоg(X)=11 або в двійковому коді 1011, то приклади циклічних кодівAig(Х) чиселAiу кодовій групі при цьому утворюючому поліномі можна бачити в наступній табл. 3.1.

Основний варіантциклічного коду, що широко застосовується на практиці, відрізняється від попереднього тим, що операція поділу на утворює поліном замінюється наступним алгоритмом: 1) до вихідного числаАправоруч приписуєтьсяКнулів, деК- число бітів утворюючому поліномі, зменшене на одиницю; 2) над отриманим числомА(2К) виконується операція О, що відрізняється від поділу тим, що на кожному кроці операції замість віднімання виконується порозрядна операція "що виключає АБО": 3) отриманий залишок У є CRC - надлишковийК-розрядний код, який замінює в закодованому числіСприписані праворучКнулів, тобто.

наприймальному кінці над кодомСвиконується операціяО. Якщо залишок не дорівнює нулю, то під час передачі відбулася помилка і потрібна повторна передача кодуА.

.П р і м е р. НехайА= 1001 1101, що утворює поліном 11001.

ОскількиК= 4, тоА(2K)=100111010000. Виконання операціїОрозрахунку циклічного коду показано на рис. 3.2.

ЧислоЦиклічний кодЧислоЦиклічний код
0000000000.
....

Позитивними властивостями циклічних кодів є мала ймовірність невиявлення помилки та порівняно невелика кількість надлишкових розрядів.

коди

Мал. 3.2. Приклад отримання циклічного коду

Загальноприйняте позначення поліномів, що утворюють, дає наступний приклад: