Добавил:
Допоможу чим зможу) Відсигнальте якщо знайшли шось корисне) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
11.03.2020
Размер:
161.68 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

ДОСЛІДЖЕННЯ КОДОУТВОРЕННЯ ТА ПРИНЦИПІВ ПОБУДОВИ КОДЕРІВ І ДЕКОДЕРІВ ІТЕРАТИВНИХ КОДІВ

МЕТОДИЧНІ ВКАЗІВКИ до лабораторної роботи № 3

з курсу “Засоби передачі інформації в системах технічного захисту інформації” для студентів базового напряму

6.170102 «Системи технічного захисту інформації»

Львів 2012

2

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

1. ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Ітеративні коди (ІК), запропоновані П. Елайесом, широко застосовуються у системах телемеханіки і передачі інформації, особливо у випадках, коли використовуються програмні методи підвищення достовірності [1, 2]. Відмінністю ІК є наявність двох, трьох і більше ступенів завадостійкого кодування, завдяки яким вноситься надлишковість у передавані первинні двійкові кодові комбінації (КК) відповідно у два, три і більше разів. При цьому кожний інформаційний розряд бере участь у формуванні контрольних розрядів двох, трьох та більше ітерованих кодів, в якості яких можуть використовуватися різні коди – із захистом за парністю, Хемінга, циклічні та ін. Саме тому розрізняють дво-, трита багатоступеневі ІК, властивості яких визначаються параметрами ітерованих кодів.

Найпростішим ІК є двоступеневий код з захистом за парністю. Кожна КК такого коду утворюється записуванням ni інформаційних розрядів у вигляді матриці, яка містить ni1 рядків та ni2

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

ДГСТ-ом 26.014-81 рекомендоване використання двоступеневих ІК з 8, 9 і 16-контрольними розрядами. Для коду з пk=8 використовується блок інформаційних елементів розміром 3х4 (з ni1 = 3

рядками і ni2 = 4 стовпцями). При цьому кількість інформаційних розрядів ni = 12, а загальна кількість -

п = ni + пk= 20. Для коду з пk = 9 беруть ni = ni1 * ni2 = 4 * 4 = 16 , для коду з пk = 16, або ni =8*7 = 56, n = 72, або ni = 7*8 = 56, n = 72 [3].

Продемонструємо на прикладі принцип побудови ІК. Нехай потрібно передати такі групи КК - 1110, 0110, 1010 і 1100. Спочатку запишемо їх у вигляді матриці, яка містить ni1 рядків і ni2 стовпців:

1110-1 група;

0110-2 група;

1010-3 група;

1100-4 група.

Така або вищого рангу матриця елементів КК первинного коду може бути сформована автоматично після закінчення, наприклад, перетворення «аналог - код» на виходах лічильників: ni1 -

канального і ni2 - розрядного АЦП [4].

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

1

1

1

0

1

0

1

1

0

0

1

0

1

0

0

1

1

0

0

0

1

1

1

0

1

Кількість одиниць у кожному рядку і кожному стовпці ІК є парною. Контрольні розряди зосереджені в нижньому рядку і в правому стовпці. Кожний інформаційний розряд ІК входить в склад двох ітерованих кодів з перевіркою на парність за рядками і стовпцями. Додаткове кодування за стовпцями значно підвищує імовірність виявлення помилок, оскільки серед сполучень помилок, які не виявляються кодом першого ступеня (рядків), буде мало таких, які не виявлялись би кодом другого ступеня (стовпців). Отже, цим кодом гарантовано виявляються всі помилки непарної кратності, а також двократні помилки, тому одержаний ІК має кодову віддаль dmin = 4. Виявляються також більшість помилок парної кратності.

3

Передають розряди ІК, як правило, розряд за розрядом за стрічками, починаючи з першої і закінчуючи останньою, хоча можлива і паралельна передача ІК цілими рядками. Формувати контрольні розряди ітеративного коду можна не лише до, але і під час передачі, якщо використати як суматор за модулем два тригери із лічильним виходом (рис.1).

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

Декодування ІК здійснюється одночасно з початком прийому кодової комбінації, а представлення прийнятого коду – після закінчення прийому всього блоку ІК. В результаті декодування формуються два синдроми (контрольні числа), розрядність яких відповідає розрядності рядка і стовпця, їх визначають додаючи за модулем два розряди відповідного рядка і відповідного стовпця ІК. Якщо помилки нема (або вона не може бути виявленою кодом), то вага синдромів дорівнює нулю, оскільки в кожному рядку і в кожному стовпці ІК міститься парна кількість одиниць. В іншому випадку помилка існує. Хоча декодер ІК найчастіше використовується для виявлення помилок, за його допомогою можливе виправлення (корекція) одиничної помилки. Для цього необхідно проінвертувати значення розряду, що лежить на перетині рядка і стовпця, для яких не виконується перевірка на парність.

Очевидно, що ІК не може виявити помилок, які мають парну кількість спотворених елементів як за стрічками, так одночасно і за стовпцями [5]. Найпростіша невиявлена помилка містить чотири спотворені розряди кодової комбінації, розташовані у вершинах прямокутника. Кількість таких помилок можна визначити із виразу

N H

C 2

* C 2

 

n1 * (n1 1)* n2 * (n2 1)

(1)

 

4

n1

n2

2!*2!

 

при загальній кількості чотиризначних помилок

N

4

C4

 

n1 * n2 (n1 * n2 1)(n1 * n2 2)(n1 * n2 3)

(2)

 

 

n

4!

 

4

Суттєвим недоліком найпростішого ІК є його порівняно висока надлишковість, яка значно перевищує надлишковість циклічного коду з такими можливостями, однак кодування ІК за допомогою ЕОМ простіше від циклічного.

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

 

q

 

q

 

nk

nk ,

d

di ,

 

i

1

i 1

 

де q- кількість ступенів надлишкового кодування. В частковому випадку для триступінчатого коду (q = 3) кодова віддаль становить dmin = 8. В такому коді перевірка на непарність здійснюється не лише на рядках та стовпцях, але і по діагоналі [4].

Іншим методом збільшення захисних можливостей двоступеневого ІК є використання як ітерованих кодів з більшою кодовою віддалю. Так, наприклад, у випадку кодування рядка і стовпця кодом Хемінга з dmin = 3 одержимо двоступеневий ІК з кодовою віддаллю 9.

2. МЕТОДИЧНІ ВКАЗІВКИ

Лабораторна робота полягає у дослідженні схеми кодера та декодера ІК шляхом моделювання їх роботи у середовищі LogicWorks. Для чого необхідно:

1.Запустити програму LogicWorks (файл LogicWorks.exe).

2.Відкрити файл LR3_ІС.cct. Це можна зробити через пункт меню File/Open. При цьому в

редакторі появиться схема представлена на рис. 3, що здійснює кодування матриці інформаційних розрядів розміром 7х4 ІК з індикацією інформаційних та контрольних розрядів, подальшу передачу закодованої матриці ІК з можливістю внесення спотворень під час передачі, декодування одержаної матриці та індикацію прийнятих розрядів і синдромів помилок. Структурна схема представлена на рис. 4.

Рис. 4. Структурна схема кодера-декодера ІК

До складу схеми входять:

а. 4 рядки по 7 перемикачів (І17 І11, І27 І21, І37 І31, І47 І41) (ПІР) та індикаторів в кожному для задання значень і відображення інформаційних розрядів;

б. Кодер ІК у складі: формувачів контрольних розрядів рядків і стовпців матриці (ФКРст.) і (ФКРсп.) виконаних на суматорах за модулем 2 (XOR), перетворювача паралельного коду в послідовний

5

(Пр-Пс) побудованого на регістрах зсуву REG 1-REG 5;

в. 5 рядків по 8 перемикачів для внесення спотворень; г. Пристрій внесення спотворень (ПВС) в розряди передаваної кодової комбінації реалізований на

регістрах зсуву REG 11-REG 15 та суматорі за модулем два. ПВС за допомогою перемикачів для внесення спотворень формує сигнали помилок, які, надходячи на суматор за модулем два, інвертують розряди КК, що передається;

д. Декодер ІК у складі: перетворювача послідовного коду в паралельний (Пс-Пр) на регістрах

зсуву REG 6-REG 10, формувачів та індикаторів синдрому рядків (SR_4 SR_1) і стовпців (SC_7 SC_0) (Фсср.) і (Фссп.);

е. Генератор тактових імпульсів (ГТІ) та лічильник імпульсів (ЛІ) (на схемі 3 не показаний); є. Схема управління (СУ) у складі перемикачів SAVE і RES.

3.В початковому стані перемикачі SAVE (ЗАПИС, здійснює запис кодової комбінації в регістри для передачі в послідовному коді), RES (СКИД) знаходяться в положенні 1, всі перемикачі внесення спотворень знаходяться в нульовому стані (спотворення відсутні).

4.Запустити моделювання схеми для чого необхідно вибрати пункт меню Simulation/Run або

натиснути лівою клавішею мишки по піктограмі

на панелі інструментів.

5. З допомогою перемикачів І17 І11, І27 І21, І37 І31, І47 І41 задати передбачені завданням кодові комбінації в (щоб змінити положення перемикача потрібно навести на нього мишку і натиснути

ліву клавішу). Одночасно формуються контрольні розряди рядків KR_1 KR_4 та стовпців KC_7 KC_1 та К_8.

6.Порівняти одержані контрольні розряди з розрахованими при домашній підготовці.

7.Перевести перемикач SAVE в положення 0.

8.Перевести перемикач RES в положення 0.

9. Натиснути лівою клавішею мишки по піктограмі

на панелі інструментів. З’явиться меню

представлене на рис. 5.

 

Рис. 5. Меню Simulation Trigger Setup (задання умови закінчення моделювання)

У ньому потрібно вести дані представлені на рис. 5 та натиснути кнопку OK.

10. Перевести спочатку перемикач SAVE, а потім RES в положення 1. Після цього починається моделювання роботи схеми, яке триває 40 тактів сигналу CLK1. Після 40 такту моделювання автоматично зупиняється, а в регістрах REG 6–REG 10 (рис. 4) буде записана одержана кодова

комбінація у двійковому коді. З допомогою індикаторів прийнятих розрядів QQ17 QQ10, QQ27 QQ20, QQ37 QQ30, QQ47 QQ40, QQ57 QQ50 порівняти передані та прийняті КК.

11.Порівняти одержані синдроми рядків (SR_1 SR_4) та стовпців (SС_7 SС_0) з розрахованими при домашній підготовці.

12.Одночасно можна спостерігати часові діаграми роботи схеми (рис. 6), які виводяться у вікні Timing Window, що розташоване у нижній частині редактора схем. У разі якщо вікно Timing Window відсутнє, його можна вивести вибравши пункт меню Window/Timing Window.

6

Рис. 6. Часова діаграма роботи схеми

13. Повторити пункти 1-12 з внесенням відповідних спотворень у КК (див. пункт 6 ЗАВДАННЯ). Для того, щоб спотворити певний розряд необхідно на кроці 5 перевести відповідні перемикачі внесення спотворення (I 17 I 11, I 27 I 21, I 37 I 31, I 47 I 41, KR 4 KR 1, KC 7 KC 1, K 8) у одиничний стан.

7

Рис. 3. Схема моделювання роботи кодера декодера ІК

8

3.ЗАВДАННЯ

1.Вивчити основну побудову, відмінності і можливості ітеративних кодів.

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

3.* Закодувати одержану матрицю двоступеневим ітеративним кодом з dmin = 4.

4.* Здійснити декодування ІК з визначенням синдромів при відсутності і наявності помилок, обумовлених спотворенням одного, двох, трьох, чотирьох і шести елементів КК ІК, при чому ці спотворення мають бути такими, щоб показати переваги та недоліки ІК.

5.* Визначити основні параметри досліджуваного ІК: кількість контрольних розрядів, загальну кількість розрядів, надлишковість.

6.* Порахувати загальну кількість чотирикратних помилок, що можуть виникати при передачі досліджуваного ІК, та чотирикратних помилок, які можуть бути виявлені цим кодом.

7.Ознайомитися з схемою, провести моделювання та здійснити порівняння синдромів рядків і стовпців, з визначеними при домашній підготовці.

8.Скласти схеми кодера і декодера ІК, прийнявши для простоти, що кількість рядків і стовпців дорівнює

чотирьом.

9.* Скласти програму для кодування та декодування ІК за даними п.п. 2*-4*.

4. ЗМІСТ ЗВІТУ

1.Мета роботи

2.Результати виконання пунктів 2*- 6* при домашній підготовці.

3.Результати дослідження в лабораторії схеми кодера і декодера ІК.

4.Програма для кодування та декодування ІК.

5.Висновки по роботі.

5.КОНТРОЛЬНІ ЗАПИТАННЯ

1.Методика побудови дво- і багатоступеневих ІК, визначення параметрів.

2.Методика декодування ІК у випадку виявлення та у випадку, виправлення помилок в його КК.

3.Основні способи підвищення захисних можливостей ІК.

4.Відміні особливості ІК, їх переваги і недоліки.

5.Схемотехнічне забезпечення кодування і декодування ІК.

6.Програмні методи кодування і декодування ІК.

7.Області та приклади застосування ІК.

6.СПИСОК ЛІТЕРАТУРИ

1.Емельянов Г.А., Шварцман В.О. Передача дискретной информации. - М.: Радио и связь, 1982.

2.Теоретические основы информационной техники. Учебн. Пособие для вузов / Ф.Е. Темников, В.А. Афонин. В.Й. Дмитриев. нергия, 1979. - 512 с.

3.Жураковский Ю.П. Передача информации в ГАП.

4.Питання теорії та проектування передавальних напівкомплектів систем телемеханіки: Навч. пос. / Під ред. М.В. Кіріанакі - НМК ВО, 1991.

5.Кодирование информации. Двоичные коды / Справочник // Под ред. Н.Т. Березюка. - Харьков: Вища

шк., 1978.

.* Ці пункти завдання виконуються при домашній підготовці до лабораторної роботи і наводиться у звіті

Соседние файлы в папке Лаби умови