ТОП 10:

Код із кількістю одиниць у комбінації, кратною трьом



Цей код можна утворити або додаванням до кожної комбі­нації початкового коду r = 2 перевірних елементів, або змен­шенням кількості дозволених комбінацій початкового коду з накладанням додаткової умови: кількість одиниць у кожній комбінації має бути кратною трьом.

У першому випадку до початкової кодової комбінації дода­ються два перевірних розряди, які мають такі значення, що сума одиниць у кодовій комбінації стає кратною трьом. Так, якщо початкова кодова комбінація має дві або п'ять одиниць, то для здобуття ваги w = 3 або 6 кодової комбінації треба доповнити її двома перевірними елементами 10. Якщо ж у початковій ком­бінації є одна або чотири одиниці, то вона доповнюється дво­ма перевірними елементами 11. Так, комбінація 01010 почат­кового коду, закодована кодом із кількістю одиниць, кратною трьом, матиме вигляд 0101010, а 10000 → 1000011, 0110 → n011010, 101100 → 10110000, 110110 → 11011011, 0111011 → 011101110 тощо.

У другому випадку з усіх комбінацій початкового коду ви­бирають тільки ті, які мають вагу w = 3 та 6. Решту комбінацій використовувати не можна.

Код дає змогу виявити всі поодинокі помилки та деякі по­милки більшої кратності, що призводять до порушення умови w = 3 або 6, де w - кількість одиниць у кодовій комбінації. Здатність коду виявляти помилкові комбінації майже така сама, як і коду зі сталою вагою.

Надмірність коду з доповненням до необхідної кількості оди­ниць визначається виразом

 

а коду, що утворюється відбором із загальної кількості комбі­націй з відповідною кількістю одиниць (3 або 6), - виразом

 

 

Коди, що виправляють помилки

Коди, що виправляють помилки (або коректувальні коди) повинні мати мінімальну кодову відстань dmin ≥ 3. Її зростання досягається збільшенням кількості n розрядів коду або зменшенням кількості Nд дозволених кодових комбінацій, які використовуються для передачі по­відомлень, тобто підвищенням надмірності коду.

Найбільшого поширення серед двійкових коректувальних кодів дістали систематичні та несистематичні блокові коди (вони, у свою чергу, поділяються на лінійні та нелінійні), а також ре­курентні коди. З недвійкових кодів для захисту інформації від помилок застосовуються узагальнений код Хеммінга, ланцюговий та іте­ративний коди.

 

Двійкові групові коди

8.1.1 Лінійний систематичний груповий (блоковий код)

Застосувавши теорію лінійних просторів, можна дати таке визначення: лінійним систематичним груповим двійковим (n, k)-кодом називається код, у якого перевірні елементи bj (де j = 1...r) знаходяться як суми за модулем 2 обумовлених інфор­маційних елементів аі (де i = 1...k). У нелінійних двійкових (n, k)-кодах перевірні елементи знаходяться інакше.

Таким чином, у лінійному коді перевірні елементи визнача­ються як

(8.1)

де ∑O - знак суми за модулем 2; αji - коефіцієнти, значення яких дорівнюють 0 або 1.

Як випливає з (8.1), закон побудови лінійного коду визнача­ється вибором kr коефіцієнтів αji.

Одна з властивостей лінійних кодів полягає в тому, що сума за модулем 2 будь-яких двох дозволених кодових комбінацій також є дозволеною комбінацією цього коду.

Нехай є дві дозволені кодові комбінації лінійного коду

перевірні символи яких визначаються відповідно виразами

При додаванні за модулем 2 комбінацій V(1) і V(2) дістанемо комбінацію V(3), яка також буде комбінацією цього коду:

де

тому що при додаванні за модулем 2 діють асоціативний, ко­мутативний та дистрибутивний закони. Таким чином,

де

або

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

1) кількість початкових кодових комбінацій дорівнювала k, тобто кількості інформаційних елементів первинного коду;

2) всі початкові кодові комбінації були різними;

3) нульова комбінація не входила до складу початкових;

4) всі початкові комбінації були лінійно незалежними;

5) кількість одиниць в кожній початковій комбінації була не меншою ніж dmin;

6) кодова відстань між будь-якими парами початкових ком­бінацій також була не меншою ніж dтіп.

Підібрані за цим правилом початкові комбінації записують­ся у вигляді твірної матриці G(n, k),яка містить k рядків і n стовпців:

(8.2)

Матрицю (8.2) можна подати також у вигляді двох підматриць: інформаційної Еk та перевірної С(r, k).Першу зручно за­писати в канонічній формі як одиничну підматрицю, що має k стовпців і стільки ж рядків:

Перевірна підматриця С(r, k) будується підбором r-розряд­них комбінацій з кількістю одиниць в рядку не меншою від (dтіп - 1). При цьому необхідно враховувати, що сума за моду­лем 2 будь-яких розрядів повинна мати більш як (dтіп - 2) оди­ниць.

Ураховуючи викладене, в межах теорії матриць можна дати таке визначення: лінійним систематичним груповим двійко­вим (n, k)-кодом називається код, у якого всі його (2k - 1) ненульові комбінації можуть бути утворені як суми за модулем 2 рядків деякої матриці G(n, k), розміром k п, яка називається твірною матрицею коду.

Розглянемо приклад побудови матриці систематичного групового коду, здатного виправляти однократну помилку (vвп = 1) при передачі 16 повідомлень (Nд =16).

Відомо, що Nд = 2k, звідки k = 4 (Nд= 16 = 24). Отже, кількість рядків твірної матриці G(n, k) дорівнює 4, а кількість стовпців - довжині п коду (n = k + r, де r = 3 для vвп = 1 і dтіп = 2 vвп + 1 = 3), тобто кількість стовпців підматриці G(r, k)становить 3. Кількість перевірних розрядів можна ви­значити, користуючись табл. 8.1.

 

Таблиця 8.1 – Визначення перевірних розрядів

 

dтіп k

 

Згідно з правилом побудови підматриці C(r, k)кількість одиниць в ній має бути не меншою ніж dтіп – 1 = 3 - 1 = 2. З триелементних комбінацій для підматриці C(r, k)вибираємо тільки ті, в яких кількість одиниць біль­ша двох: 110, 101, 011, 111.

Через те, що як інформаційна Еk використовується одинична підматриця, твірна матриця лінійного коду для розглядуваного прикладу, тоб­то коду, який виправляє одну помилку, остаточно має вигляд

(8.3)

Рядки в перевірній підматриці C(r, k)можна міняти місцями. При цьому дістанемо кілька варіантів твірних матриць для прикладу, що розгляда­ється.

Побудуємо за допомогою поданої раніше твірної матриці всі комбіна­ції розглядуваного (7,4)-коду. Оскільки перша комбінація - нульова, дру­га - п'ята комбінації є рядками твірної матриці, решту 11 знайдемо підсу­мовуванням за модулем 2 всіх можливих комбінацій рядків твірної матри­ці. Всі 16 комбінацій (7, 4)-коду з цією матрицею матимуть такий вигляд:

1. 0000000; 9. 0110011 (3 4);

2. 1000011; 10. 0101010 (3 5);

3. 0100101; 11. 0011001 (4 5);

4. 0010110; 12. 1110000 (2 3 4);

5. 0001111; 13. 0111100 (3 4 5);

6. 1100110 (2 3); 14. 1011010 (2 4 5);

7. 1010101 (2 4); 15. 1101001 (2 3 5);

8. 1001100 (2 5); 16. 1111111 (2 3 4 5).

При побудові комбінацій лінійного коду за твірною матри­цею необхідно вміти знаходити перевірні розряди кодових ком­бінацій за інформаційними. Алгоритм утворення перевірних розрядів за допомогою твірної матриці G(n, k)за відомим інфор­маційним має вигляд

Система перевірок для кожної конкретної матриці G(n, k) фор­мулюється так: у першу перевірку разом із перевірним розрядом b1входять інформаційні розряди, що відповідають одини­цям першого стовпця підматриці C(r, k);у другу - перевірний розряд b2та інформаційні розряди, які відповідають одиницям другого стовпця під матриці C(r, k) і т. д. Кількість перевірок дорівнює кількості перевірних розрядів коду, тобто кількості стовпців під матриці C(r, k).

Система перевірок для наведеної вище твірної матриці G(7,4) має вигляд

Опираючись на твірну матрицю, можна побудувати перевір­ну матрицю Н,яка містить r рядків, п стовпців і складається з двох підматриць: D(k, r), що має k стовпців і r рядків, кожний рядок якої відповідає транспонованому стовпцю перевірних розрядів підматриці C(r, k) твірної матриці G(n, k); одиничної під­матриці Еr:

(8.4)

Ця перевірна матриця дає змогу спростити операції кодуван­ня та декодування. Позиції, зайняті одиницями в i-му рядку під­матриці D(k, r),визначають ті інформаційні розряди, які мають брати участь у формуванні i-го перевірного розряду.

Кількість розрядів кодового синдрому і, як наслідок, кіль­кість перевірних елементів при виправленні однократних по­милок визначається нерівністю 2r - 1 ≥ п або 2r - 1 ≥ С1п. Для виправлення не тільки однократних, а й помилок більшої кра­тності необхідно виконати умову

де vвп - кратність виправленої помилки.

Як приклад перетворимо твірну матрицю (8.3) на перевірну

(8.5)

Перевірними елементами, що визначаються за допомогою матриці, будуть Повідомлення, наприклад 0110, закодоване таким кодом, матиме вигляд 0110011, оскіль­ки

Методи виправлення помилок у систематичному груповому коді. Розрізняють два основних таких методи: за допомогою кодового синдрому та за допомогою кодів-супутників.

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

Кодові комбінації, що передаються та приймаються, запи­шемо відповідно у вигляді

З метою виявлення помилки в кодовій комбінації, що при­ймається, зробимо перевірки

(8.6)

та порівняємо ці значення зі значеннями прийнятих перевір­них елементів . У результаті порівняння дістанемо r-елементний набір (S1, ... ,Sr),що визначається як сума за модулем 2 двох r-елементних наборів:

(8.7)

Після підстановки (8.6) у (8.7) знайдемо значення кожного елемента Sj. в наборі (8.7):

(8.8)

Набір елементів (S1, ... ,Sr) називається синдромом (пізнавачем) помилок.

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

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

Значення синдрому збігаються з комбінацією результатів перевірки на парність, які визначаються перевірною матрицею Н. Так, синдром для систематичного (7,4)-коду з перевірною матрицею (8.5) визначається виразами де перевірний елемент прийнятої кодової комбінації, - і-йперевірний елемент, обчислений за інформаційними елементами на приймальному боці. Для (7,4)-коду маємо

Якщо значення підставити у вираз Si, то дістанемо

Установимо відповідність виду синдрому з видом помилки, що виправляється, для перевірної матриці Н (табл. 8.2).

Таблиця 8.2 – Відповідність виду синдрому з видом помилки

Комбінація (вектор) помилки Номер спотворено-го розряду Синдром Комбінація (вектор) помилки Номер спотвореного розряду Синдром

 

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

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

Розглянутий вище лінійний систематичний груповий код належить до досконалих кодів. Досконалим лінійним ко­дом називається такий оптимальний за dтіп лінійний код, у яко­го кількість ненульових комбінацій синдрому (2r - 1)дорівнює кількості всіх можливих комбінацій помилок із вагою vвпй менше, а кожна з (2r - 1)груп із 2k комбінаціями помилок, які утво­рюють ненульові комбінації синдрому, має тільки одну із зазна­чених комбінацій помилок. Так, лінійний (7,4)-код, який зада­ється перевірною матрицею (8,5), є досконалим лінійним кодом, тому що при dтіп = 3 та здатності виправлення поодиноких по­милок кількість ненульових комбінацій синдрому (23 - 1 = 7) дорівнює кількості всіх можливих комбінацій однократних помилок (див. табл. 8.2).

Використання кодів-супутників.Цей метод передбачає по­будову кодової таблиці з кодами-супутниками за таким прави­лом (табл. 8.3): в першому її рядку розташовують усі кодові комбінації Vі , для яких необхідно знайти коди-супутники; в другому рядку записують вектори, утворені підсумовуванням за модулем 2 кодових комбінацій Vі з вектором помилки е1, вага якого w = 1, а одиниця знаходиться в першому розряді; третій рядок є результатом підсумовування за модулем 2 кодових ком­бінацій Vі з вектором e2,вага якого w = 1, а одиниця розміщу­ється в другому розряді, і т. д. Так діють доти, доки не будуть підсумовані з кодовими комбінаціями Vі всі вектори еі вагою w = 1 з одиницями в кожному з п розрядів, потім підсумовують за модулем 2 вектори еі вагою w = 2 з послідовним перекриван­ням усіх можливих розрядів (вага векторів еі визначає кількість помилок, що виправляються, а розрядність цих векторів відпо­відає розрядності кодової комбінації).

Таким чином, для кожної кодової комбінації Vі лінійного систематичного коду дістають свою групу кодів-супутників, розташованих у відповідному стовпці (див. табл. 8.3), які збе­рігаються в пам'яті ЕОМ. У разі приймання комбінації, що збі­гається з одним із кодів-супутників, спотворена комбінація розшифровується як початкова робоча комбінація, до якої на­лежить цей код-супутник.

 

Таблиця 8.3 – Відповідність кодової комбінації систематичного коду групі кодів-супутників

ei Vi
V1 V2 V3 V(2k-1)
e1 e2 - - - e(2n-1) e1 V1 e2 V1 - - - e(2n-1) V1 e1 V2 e2 V2 - - - e(2n-1) V2 e1 V3 e2 V3 - - - e(2n-1) V3 … … - - - … e1 V(2k-1) e2 V(2k-1) - - - e(2n-1) V(2k-1)

 

Недоліками розглянутого методу є велика ємність пам'яті ЕОМ і значні затрати часу на перебір комбінацій кодів-супут­ників.

Укорочені лінійні систематичні коди. Розрізняють повні та вкорочені лінійні систематичні коди. До перших належать лі­нійні (n, k)-коди, що містять 2k комбінацій, а до других - лінійні (п, k, i)-коди (де і = 1 ... k - 1), які мають 2k-1комбінацій. Укоро­чений лінійний систематичний код утворюють з повного коду, при цьому дістають кодову відстань dтіп, не меншу ніж у початкового лінійного систематичного коду зі збереженням такої самої кількості перевірних елементів, тобто r = (n - і) - (k - і) = n - k.

Здобуття вкороченого лінійного систематичного коду ґрун­тується на тому, що оскільки з загальної кількості 2k комбіна­цій первинного коду, які потрібно закодувати лінійним систе­матичним кодом, 2k-1 комбінацій починаються з 0, а 2k-1 - з 1, після кодування лінійного (n, k)-коду 2k-1 його комбінацій та­кож починатимуться з 0.

Ці 2k-1 комбінацій розглядатимемо як новий лінійний систе­матичний код. Тоді, через те що вони належать початковому (n, k)-коду, кодова відстань dтіп нового коду буде не меншою, ніж початкового. Нульовий символ на початку кодової комбінації зберігається й після кодування її лінійним (n, k)-кодом, причому в утворенні перевірних елементів лінійного систематичного ко­ду участі він не бере. З урахуванням цього нульовий символ мож­на відкинути. При цьому дістанемо лінійний (n -1, k - 1)-код, тобто код, що містить п - 1 елементів, з яких k - 1 є інформацій­ними, а r - перевірними.

Укорочений лінійний систематичний код легко дістати з пов­ного лінійного (n, k)-коду, що подається у вигляді твірної матри­ці G(n, k) розміром k n виду (8.2) виключенням з матриці пер­ших рядка та стовпця. В результаті дістанемо твірну матрицю G(n-1, k-1) нового вкороченого лінійного систематичного коду розміром (k - 1) (n - 1), що утворює 2k-1 його комбінацій. Для здобуття перевірної матриці H(n-1, r) цього коду досить виклю­чити перший стовпець із матриці H(n, r) відповідного повного коду.

Так, твірну й перевірну матриці вкороченого лінійного сис­тематичного (6, 3)-коду можна дістати з відповідних матриць G(7, 4) (8.3) та H(7, 3) (8.5) повного коду:

(8.9)

Після вкорочення на один символ лінійного систематичного (n -1,k - 1)- коду здобудемо вкорочений (n -2, k - 1)- код і т. д.

Коди Хеммінга

Це одні з найпоширеніших систематичних кодів, які виправ­ляють помилки. До кодів Хеммінга належать коди з мінімаль­ною кодовою відстанню dтіп = 3 , що виправляють всі пооди­нокі помилки.

Формування r перевірних елементів у комбінаціях цих кодів виконують за k інформаційними елементами. Таким чином, довжина кодової комбінації n = k + r. Перевірними елементами є лінійні комбінації інформаційних елементів, тобто зважені суми інформаційних елементів з ваговими коефіцієнтами 1 та 0.

Послідовність одиниць і нулів у кодовій комбінації назива­ється ще кодовим вектором. Кодам Хеммінга притаманні влас­тивості лінійних кодів: сума (різниця) векторів лінійного коду дає вектор, який належить цьому коду; лінійні коди утворюють алгебричну групу відносно операції додавання за модулем 2; мінімальна кодова відстань між векторами групового коду дорівнює мінімальній вазі ненульових кодових векторів.

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

2r n + 1. (8.10)

Оскільки 2n = 2 k+r = 2 k · 2 r, можна записати

2 n ≥ (n + 1) · 2 k, (8.11)

де 2 n - повна кількість комбінацій коду.

Мінімальне співвідношення коректувальних та інформацій­них розрядів, нижче якого код не може зберігати задані корек­тувальні властивості, визначається виразом

2 n - 1 = n.

Для розрахунку основних параметрів кодів Хеммінга мож­на задати кількість перевірних елементів r; тоді з останнього виразу визначається n, а кількість інформаційних елементів k = n - r. Співвідношення між r, n, k для кодів Хеммінга наведе­мо в табл. 8.4.

Таблиця 8.4 – Співвідношення r, n, k для кодів Хеммінга

k
r
n

 

Характерна особливість перевірної матриці коду з dтіп = 3 полягає у тому, що її стовпці є різними ненульовими комбінаціями завдовжки r. Наприклад, при r = 4, п = 15 перевірна мат­риця (15, 11)-коду може мати такий вигляд:

(8.12)

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

Після переставлення стовпців, які мають одну одиницю, ма­триця (8.12) набуває вигляду

(8.13)

Згідно з матрицею (8.13) дістаємо систему перевірних рівнянь, за допомогою яких знаходимо перевірні розряди:

(8.14)

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

Так, якщо помилка виникла в сьомому інформаційному роз­ряді (спотвореним є елемент а7), то не виконуються перше, тре­тє та четверте співвідношення (8.14), тобто синдром дорівнює 1011 [збігається з сьомим стовпцем матриці Н (8.13)]. Таким чином, місцезнаходження стовпця матриці Н, що збігається зі знайденим синдромом, визначає місце помилки.

Обчислене значення синдрому обов'язково збігається з одним із стовпців матриці Н,тому що як стовпці вибираються всі мож­ливі r-розрядні двійкові комбінації. Р. Хеммінг запропонував розташувати стовпці перевірної матриці так, щоб номер і-го стовпця матриці Н і номер розряду кодової комбінації від­повідали двійковому поданню числа і. Тоді синдром, знайде­ний з перевірних рівнянь, буде двійковим поданням номера розряду кодової комбінації, в якій виникла помилка. Для цьо­го перевірні розряди мають знаходитися не в кінці кодової ком­бінації, а на номерах позицій, які подаються степенем двійки (20, 21, 22, 23,... ,2r-1), як у матриці (8.12), тому що кожний з них входить тільки до одного з перевірних рівнянь. В останньому випадку перевірні розряди розміщуються між інформацій­ними.

Синдром відповідно до перевірної матриці (8.12) визнача­ється з системи рівнянь

(8.15)

Як перевірні вибираються розряди и1, и2, и4та и8 що зустрі­чаються в системі рівнянь (8.15) по одному разу.

Наприклад, якщо необхідно закодувати повідомлення 11001010110 двійкового простого коду (k = 11) у коді Хеммінга, то потрібно визначи­ти перевірні розряди в комбінації u1u21u4100u81010110.

З перевірної матриці (8.12) маємо

(8.16)

Обчислюючи и1, и2, и4та и8згідно з (8.16), дістаємо

Отже, комбінація коду Хеммінга для розглядуваного повідомлення матиме вигляд 111110001010110.

Тепер припустимо, що шостий елемент цієї комбінації приймається помилково, тобто одержано повідомлення 111111001010110. Обчислю­ючи синдром за допомогою системи рівнянь (8.15), знаходимо S1 = 0; S2= 1; S3 = 1; S4 = 0, тобто синдром має вигляд 0110. Якщо це двійкове число перевести в десяткове, то дістанемо 6(0 · 23 + 1 ·22 + 1 · 21 + 0 · 20 = 6).Таким чином, необхідно виправити шостий розряд повідомлення, що надійшло.

 

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

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

Лінійні систематичні (n, k)-коди, в яких циклічний зсув an-2, an-3, an-4, …, a2, a1, a0, an-1 дозволеної комбінації an-1, an-2, an-3, …, a1, a0 також є дозволеною комбінацією, що належить цьому коду, називаються циклічними. Така циклічна перестановка елементів виникає після множення полінома на х. Якщо V(x) = an-1xn-1 + an-2xn-2 + … + a1x + a0, то xV(x) = an-1xn + an-2xn-1 +… … + +a1x2 + a0x. Щоб степінь полінома не перевищував n – 1, член an-1xn замінюється одиницею. Тому

xV(x) = F(x) = an-2xn-1 + … + a1x2 + a0x + an-1.

Особливу роль у теорії циклічних кодів відіграють твірні поліноми. Помічено, що комбінації лінійного коду мають властивість циклічності, коли як твірні використовуються поліномами, що є дільниками двочлена xn + 1. Кожний такий двочлен може бути розкладений на кілька незвідних поліномів, тобто таких, які можуть бути подані у вигляді добутку поліномів нижчих степенів (вони діляться самі на себе або на одиницю).

Як твірні поліноми різних циклічних кодів можуть бути застосовані всі незвідні поліноми та добутки їх, тому що вони також є дільниками двочлена xn + 1.

З урахуванням викладеного можна дати ще одне визначення двійкового циклічного коду: циклічним називається лінійний двійковий систематичний (n, k)-код, всі 2k комбінацій якого подано поліномами степеня х – 1 і менше, що діляться на деякий поліном Р(х) степеня r = nk, який є дільником двочлена xn + 1. Деякі твірні поліноми наведено в табл. 8.5.

 

Таблиця 8.5 – Твірні поліноми циклічних кодів

r Твірний поліном Р(х) Двійковий запис полінома
х + 1 х2 + х + 1 х3 + х + 1 х3 + х2 + 1 х4 + х + 1 х4 + х3 + 1 х4 + х3 + х2 + х + 1 х5 + х2 + 1 х5 + х3 + 1 х5 + х3 + х2 + х + 1 х5 + х4 + х2 + х + 1 х6 + х5 + х4 + 1 х8 + х7 + х6 + х5 + х2 + х1 + х + 1 х9 + х5 + х3 + 1 х15 + х14 + х13 + х12 + х4 + х3 + х2 + х + 1 х16 + х12 + х5 + 1

 

Розрізняють алгебричні та матричні методи побудови циклічного коду. Побудова дозволеної кодової комбінації (алгоритм кодування) перших зводиться ось до чого:

- подати інформаційну частину з k елементів у вигляді полінома Q(x) степеня k -1;

- помножити Q(x) на xr що еквівалентно зсуву k-розрядної кодової комбінації на r розрядів);

- поділити поліном xr Q(x) на вибраний твірний поліном P(x), степінь якого дорівнює r, і визначити остачу від ділення R(x), тобто

(8.17)

де С(х) – частка від ділення, яка має той самий степінь, що й поліном Q(x); R(x) – остача від ділення, яка має степінь, не більший від r – 1 [менший, ніж степінь дільника P(x)].

Зазначимо, що r розрядів остачі є r перевіреними елементами кодової комбінації, причому

(8.18)

або

(8.19)

де F(x) – комбінація циклічного коду.

З виразу (8.19) випливають два рівноцінних алгебричних методи побудови комбінацій циклічного коду:

(8.20)

(8.21)

Ще один метод можна дістати, замінивши в (8.21) частку від ділення С(х) на поліном Q(x) кодової комбінації r-елементного двійкового простого коду, що подається для кодування циклічним кодом. Ця заміна цілком слушна, оскільки поліноми С(х) і Q(x) мають однаковий найбільший степінь (однакову кількість розрядів). Отже,

(8.22)

У комбінаціях циклічних кодів, побудованих за першим і другим методами [див. вирази (8.20) і (8.21)], розташування інформаційних і перевірних елементів підпорядковується такому правилу: k старших розрядів комбінації є інформаційними, решта nk = r розрядів – перевірними.

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

Очевидно, що комбінація F(x) має ділитися на поліном P(x) без остачі. На цьому й ґрунтується перевірка комбінації на наявність помилок при її прийманні. Якщо прийнята комбінація F(x) ділиться на поліном P(x) без остачі, то вона визнається безпомилковою.

Розрізняють два матричних методи побудови циклічного коду на основі твірної матриці Gц. Перший з них ґрунтується на вже відомому виразі (8.17). Відповідний рядок твірної матриці Gц записується у вигляді При цьому вся матриця розбивається на дві під матриці, як і в лінійному систематичному груповому коді: , де - транспонована одинична інформаційна під матриця; - перевірна під матриця з кількістю стовпців r і рядків k, що утворюється остачами від ділення Ri(x). Такий метод дає можливість дістати твірну матрицю в канонічному вигляді.

Для побудови твірної матриці (формування її рядків) беруть не довільні комбінації Q(x) двійкового простого коду, а тільки ті з них, які містять одиницю в одному розряді Qi(x), де i = 1, 2, …, k. Ці комбінації множать на xr і знаходять остачу від ділення Qi(x)xr / P(x), що дорівнює Ri(x).

Так, для циклічного (7, 4)-коду з п = 7, k = 4 і твірним поліно­мом Р(х)= = х3 + х2 + 1, щоб побудувати твірну матрицю, виби­рають чотириелементні одиничні комбінації Qi, двійкового про­стого коду: Q1(х)= 1 (0001); Q2(х) = х (0010); Q3(x) = х2(0100); Q4(х) = x3(1000). Вибрані комбінації Qi (х)множать на x3 (r = п – k = 7 - 4 = 3),ділять на Р(х) = х3 + х2 + 1 і знаходять остачі:

Таким чином, твірна матриця для розглядуваного прикладу матиме вигляд

(8.23)

Твірна матриця має змогу дістати k комбінацій коду. Решту 2k - k - 1 комбінацій, крім нульової, знаходять додаванням за модулем 2 рядків твірної матриці в усіх можливих сполучен­нях. Остання комбін







Последнее изменение этой страницы: 2017-02-07; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.207.240.230 (0.026 с.)