Двійкові циклічні коди


Вступ

Література.

Час – 2 год.

Навчальні питання

Лекція 12(3.2). Двійкові циклічні коди

Задачі


[1] Код проверки подлинности сообщения(message authentication code, MAC), известный также как код проверки подлинности данных (data authentication code, DAC), представляет собой однонаправленную хэш-функцию с добавлением секретного ключа

1.... Двійкові циклічні коди. 1

2.... Коди Боуза-Чоудхурі-Хоквінгема (БЧХ) 9

1. Жураковський Ю. П., Гніліцький В. В. Теорія інформації та кодування в задачах: Навчальний посібник. – Житомир: ЖІТІ, 2002, с. 153 - 165

Наступна тема присвячена двійковим циклічним кодам, які виявляють та виправляють помилки.

Строки последовательности бит удобно рассматривать в виде многочленов. Например, байт из 8 бит можно представить .

 

Показатель степени переменной указывает на порядковый номер бита – справа налево.

Подання кодових комбінацій у циклічних кодах виконують у вигляді поліномів від формальної змінної , що дозволяє звести дії над кодовими комбінаціями до дій над поліномами.

Так, сума двох двійкових поліномів виконується додаванням за модулем 2 коефіцієнтів за рівних степенів змінної . Наприклад, отримаємо суму за модулем 2 двох поліномів:

.

Множення виконується за звичайними правилами множення степеневих функцій, але коефіцієнти однакових степенів додаються за модулем 2. Так,

1.

Ділення також виконується як звичайне ділення поліномів, при цьому операція віднімання співпадає з операцією додавання . Наприклад,

 

   
     
     
   
     
   
     
   
   
           

Широке поширення на практиці отримав клас лінійних кодів, які називаються циклічними. Дана назва походить від основної властивості цих кодів, а саме, якщо деяка кодова комбінація належить циклічному коду, то комбінація, отримана циклічною перестановкою вихідної комбінації (циклічним зрушенням), також належить даному коду:

(a1, a2, …, an) → (an, a1, a2, …, an−1)

Другою властивістю всіх дозволених комбінацій циклічних кодів є їх ділення без залишку на деякий обраний поліном, який називається твірним.

Циклічні коди ‑ це ціле сімейство завадостійких кодів, що включає в себе в якості однієї з різновидів ‑ коди Хеммінга, але в цілому забезпечує більшу гнучкість з точки зору можливості реалізації кодів з необхідною здатністю виявлення та виправлення помилок, що виникають при передачі кодових комбінацій по каналу зв'язку. Циклічний код відноситься до систематичних блоковим -кодів, в яких перших розрядів є комбінацією первинного коду, а наступні розрядів є перевірочними.

В основі побудови циклічних кодів лежить операція ділення вихідної кодової комбінації на твірний незвідний поліном ступеня . Залишок від ділення використовується при формуванні перевірочних розрядів. При цьому операції ділення передує операція множення, що здійснює зрушення вліво -розрядної інформаційної кодової комбінації на розрядів.

При декодуванні прийнятої -розрядної кодової комбінації знову проводиться ділення на твірний незвідний поліном.

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

Однак не виключається можливість виникнення в кодових комбінаціях багаторазових помилок, що може привести до помилкових виправлень та/або не виявлення помилок при трансформації однієї дозволеної комбінації в іншу.

До циклічних кодів належать лінійні блокові -коди, у яких циклічний зсув елементів будь-якої дозволеної комбінації призводить до виникнення також дозволеної комбінації, що належить до даного коду.