Код
Многочлен g(Х), що породжує
CRC-4
1 + x + x4, використовується в ISDN
CRC-8
(1 + x)(1 + x2 + x3 + x4 + x5 + x6 + x7) =1 + x + x2 + x8, використовується в АТМ в якості НЕС
CRC-12
(1+x)(1+x2+x11)=1+x+x2+x3+x11+ x12
CRC-16
(1 + x)(l + х+х15) = 1 + x2 + х15 + x16, IBM
(1 + х)(1 + x + x2 + x3 + x4 + x12 + x13+х14 + x15) = 1 + х5 + х12+ x16, є стандартом CCITT для HDLC і LAPD
CRC-32
1 + x + x2 + x4 + x5 + x7 + x8 + x10+х11 + x12 + х16 + x22 + x23 + x26 + x32, використовується в HDLC
Найпростішими серед корегуючих є коди з повторенням. Це коди з високими корегуючими характеристиками та дуже великою надлишковістю. Тут один інформаційний символ повторюється n раз (n непарне), тобто це (n,1)-коди. Основним недоліком даного коду є низька швидкість, цифрові потоки або розміри файлів зростають в три і більше разів.
Коди Хеммінга це лінійні коди з відстанню dmin=3 та коди з відстанню dmin=4. Перші, виправляють всі одиничні помилки, а другі виправляють всі одиничні помилки і виявляють подвійні.
Хоча коди Хеммінга доволі економічні коди і прості в реалізації, але їх корегуюча здатність невелика, цифрові потоки можуть зростати на 30 і більше процентів.
Корегуючу здатності кодів Хеммінга можна збільшити за рахунок каскадного включення декількох кодерів Хеммінга. Цей підхід дозволив істотно підвищити ефективність застосування кодування в порівнянні з базовими некаскадними методами. Мінімальна відстань сформованого каскадного коду буде рівна
D=d1•d2, (2.4)
де d1 і d2 - мінімальні відстані складових кодів.
Але і надлишковість при цьому також зростає, що ставить питання доцільності використання корегуючих кодів взагалі та заміни їх кодами з виявлення помилок і системами з повторною передачею.
В згортних кодах обробляється неперервна послідовність символів без розподілу її на блоки. Вони є доволі простими з точки зору реалізації і тому знайшли найбільш широке застосування.
Найважливішими відмінностями згортних кодів від блокових є такі [8].
1. Згортні коди дозволяють проводити кодування і декодування потоків даних безперервно в часі.
2. Згортні коди не потребують блокової синхронізації.
3. Застосування згортних кодів дозволяє досягти дуже високої надійності передачі інформації.
Оскільки передбачається кодування файлів, які можна розбити на блоки, то застосування згортних кодів недоцільно, оскільки вони призначені для кодування потоку бітів в каналах зв'язку. Ці коди також характеризуються великою надлишковістю.
Циклічні коди є різновидністю поліноміальних кодів [8]. В таких кодах вважається, що елементи a1, a2, …an-1 деякого кодового слова є коефіцієнтами полінома від x:
(2.5)
Процес кодування можна подати як результат множення полінома m(x), що являє собою інформаційну послідовність на породжувальний многочлен g(x), а декодування як результат ділення на цей поліном. При деяких значеннях n поліноміальні ходи характеризуються властивістю циклічності. Це означає, що циклічна перестановка кодового слова знову приводить до кодового слова даного коду. Хоча декодери для циклічних кодів доволі прості, однак у порівнянні з кодами Хеммінга, вони все ж складніші.
Хоча циклічні коди можуть використовуватись для кодування з виправленням помилок, але найчастіше їх використовують саме для формування контрольних сум. Циклічні надлишкові CRC (Cyclic redundancy code) коди [1-2] вже стали основою багатьох стандартів, де застосовуються контрольні суми. Контрольна сума - деяке значення, розраховане з послідовності даних шляхом застосування певного алгоритму, яке використовується для перевірки правильності передачі даних. Популярність використання контрольних сум для перевірки цілісності даних обумовлена тим, що подібна перевірка просто реалізовується і добре підходить для виявлення загальних помилок, викликаних наявністю шуму в каналах передачі даних або спробами несанкціонованої зміни даних. Слід зазначити, що застосування контрольних сум вносить мінімальну надлишковість в дані, що передаються, тому навіть у випадку повторної передачі цифрові потоки можуть бути значно меншими у порівнянні з корегуючими кодами.
CRC - коди на відміну від кодів з перевіркою на парність або непарність дозволяють виявляти як одиничні так і пакетні помилки, що є їх перевагою перед цими кодами.
Основні переваги і недоліки завадостійких кодів зведемо в табл. 2.4.
Таблиця 2.4 - Характеристики завадостійких кодів
Тип коду
Кодова відстань (dmin)
Виправна здатність
Складність кодування
Складність декодування
Швидкість коду (r)
Простий код з перевіркою на парність
2
Виявляє одну помилку у блоці
Мала
Висока
Коди з повторенням
?2
Може виявляти і виправляти від одної до декількох помилок у блоці
Низька
Коди Хеммінга та циклічні корегуючі коди
3 та 4
Виправляє одну помилку у блоці або виявляє дві при dmin=4
Каскадні коди
?4
Можуть виправляти декілька помилок
Середня
Циклічні CRC коди
4
Можуть виявляти пакетні помилки
мала
висока
Згортні коди
?3
Можуть виправляти від однієї до декількох помилок
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13