- •Національний авіаційний університет
- •Теорія інформації та кодування Побудова завадостійких кодів. Двійкові коди
- •Лекція № 4.4 − “Побудова завадостійких кодів. Двійкові коди”. В лекції будуть розглянуті наступні учбові питання:
- •Способи завдання завадостійких кодів
- •Двійкові коди з перевіркою на парність або на непарність (контроль по модулю 2)
- •Двійкові матричні коди
- •Код Хеммінга
Двійкові коди з перевіркою на парність або на непарність (контроль по модулю 2)
Як відомо, у загальному випадку, вираз для розрахунку контрольної ознаки має вигляд:
(mod
Р),
(5)
де
Р
– значення
обраного модуля. В коді з контролем
по модулю 2 додавання здійснюється
порозрядно, тобто
,
додавання здійснюється за модулем
Р =
2,
для усіх значень і.
При побудові таких кодів передана послідовність символів розбивається на групи – базові кодові слова (БКС). У найпростішому випадку при кодуванні в кожному базовому кодовому слові розраховується контрольна ознака (контрольний біт) шляхом складання по модулю 2 всіх двійкових символів БКС. Контрольна ознака (контрольний біт) записується в кінці БКС. При контролі на парність, в результаті цього, число одиниць в БКС доводиться до парного. Так, кодова комбінація 01110 в результаті кодування перетвориться в комбінацію 011101.
Варіантом цього способу контролю цілісності є контроль на непарність, коли при кодуванні в кінець БКС як контрольна ознака (контрольного біта) дописується інверсне значення результату складання по модулю 2 всіх двійкових символів даного БКС. В результаті цього, при контролі на непарність, число одиниць в БКС доводиться до непарного. Так, кодова комбінація 01010 в результаті кодування перетвориться в комбінацію 010101.
При
декодуванні процедура (5) здійснюється
знов, але по відношенню до усіх символах
із перевірочними включно, тобто для
символів. В наслідок цього обраховується
контрольна ознака
(mod
Р).
Неважко
зрозуміти, що в разі відсутності
спотворень величина
є такою, що дорівнює нулю, а при їх
наявності – відмінна від нуля. Це і є
синдромом спотворень. Зрозуміло, що
корегування виявлених спотворень є
неможливим. Окрім того, виходячи з
розглянутого, слід зробити висновок,
що спотворення, що виникли в парному
числі символів, залишаються непоміченими.
Двійкові матричні коди
Основним недоліком описаних вище кодів є невиявлення спотворень парної кратності, тому такі коди знаходять застосування в тих ланках АС, де найбільш вірогідними є одиночні спотворення, наприклад в ланці ТКМ ЕОМ. Якщо ж спотворення мають тенденцію до групування, то для виявлення групових спотворень БКС (кодові комбінації) записуються у вигляді матриці:
а11 а12 а13…а1s
а21 а22 а23… а2s
…………………
at1 аt2 аt3…аts
______________
c1 c2 c3 … cs,
Потім здійснюється перевірка на парність (або на непарність) стовпців отриманої матриці. За наявності одного групового спотворення, завдовжки не більш s (s − число стовпців матриці), в кожну перевірку входитиме не більше ніж один спотворений символ (відбудеться декореляція спотворень). Якщо спотворення незалежні, то даний код є еквівалентним коду з перевіркою на парність по стовпцям, коли для кожного із s стовпчиків як і в коді з контролем на парність обраховуються значення своя контрольна ознака:
(mod
Р),
при
порозрядному додаванні і
Р
=
2,
,
для усіх значень і,
j.
Якщо ж спотворення корельовані, то за рахунок перевірки символів, що рознесені (за рахунок декореляції спотворень), даний код буде більш завадостійким. Недоліком такого коду є деяке ускладнення кодуючих і декодуючих пристроїв. Декореляція спотворень здійснюється і в тому випадку, якщо перевірку на парність здійснювати по рядках чи по діагоналях матриці. З погляду завадостійкості цей код є аналогічним попередньому.
Для підвищення здатності із визначення наявності спотворень перевірка на парність (непарність) може бути проведена одночасно по стовпцях і діагоналях або по рядках і стовпцях.
Останній код називають матричним. У даному коді (при використанні контролю на парність) перевірочні символи формуються за наступними правилами:
а
11
а12
а13
… а1s
b1
bi
= а1i
а2i
……….
аls
а21 а22 а23 … а2s b2 cj = а1j а2j ………. а2s
………………
аt1 аt2 аt3 … аts bt
c
1
c2
c3
cs
де t − число рядків матриці; s − число стовпців матриці; m = st, n = st + s + t.
Для підвищення здатності по виявленню спотворень перевірці на парність піддається також послідовність перевірочних символів, одержаних при перевірці до рядкам або стовпцям. При такій побудові коду будуть знайдені всі одиночні, подвійні і потрійні спотворення, а також всі непарні спотворення і деякі парні спотворення більшої кратності.
Матричний код знаходить: спотворення до кратності l = 3 включно (одиночні, подвійні, потрійні), всі непарні спотворення і деякі парні спотворення більшої кратності (четверні, шестерні і т.д.) при умові, що кількість спотворень в одному й тому ж рядку чи стовпчику є непарною. Поодинокі спотворення гарантовано виправляються.
Іноді до перевірок по рядках і стовпцях додають перевірки по діагоналях. Це ще більше покращує здібності коду, що виявляє. Для боротьби з груповими спотвореннями довжина рядка матриці (кількість стовпців) повинна бути не менше половини довжини пакету спотворень bсп, тобто s ≥ bсп/2.
Недоліком коду є додаткова затримка в передачі інформації за рахунок часу формування матриці.
Матричні коди доцільно використовувати при кодових комбінаціях великої довжини.
