
- •Лабораторне заняття № 4.1. Дослідження методів стискаючого кодування
- •Завдання на лабораторну роботу Дослідження методів стискаючого кодування
- •Порядок виконання роботи
- •5. Дослідження алгоритму кодування в коді Шеннона-Фано
- •6. Дослідження алгоритму кодування в коді Хаффмена
- •Порядок виконання роботи
- •Сформувати вихідні дані для виконання роботи:
- •Порядок виконання завдання по дослідженню двійкового коду з перевіркою на парність чи на непарність (контроль по модулю 2).
- •Порядок виконання завдання по дослідженню двійкових матричних кодів.
- •Основні відомості з теорії завадостійкого кодування. Завадостійкі коди і їхні основні параметри
- •1 Принцип побудови завадостійких кодів
- •2 Двійкові коди з перевіркою на парність або на непарність (контроль по модулю 2)
- •Двійкові матричні коди
- •1. Сформувати вихідні дані для виконання роботи:
- •Порядок виконання завдання по дослідженню двійкового коду Хеммінга.
- •Порядок виконання завдання по дослідженню групового (лишково – Хеммінгового) коду (лхк):
- •Основні відомості з теорії завадостійкого кодування. Коди Хэмминга
- •4. Метод перемежування
- •Лабораторне заняття № 4.4. Дослідження процесів кодування і декодування дискретних повідомлень циклічними кодами
- •Завдання на лабораторну роботу Дослідження процесів кодування з використанням циклічних кодів
- •Порядок виконання завдання по дослідженню циклічного коду.
- •Лабораторне заняття № 5.1. Дослідження процесів корегування дискретних повідомлень циклічними кодами
- •Завдання на лабораторну роботу
- •Порядок виконання завдання по дослідженню корегуючого циклічного коду
- •Теоретичні відомості із корегуючих циклічних кодів
- •Алгоритми виявлення місця та величини спотворень
- •Лабораторне заняття № 5.3. Дослідження процесів кодування і декодування дискретних повідомлень згортальними кодами
- •Завдання на лабораторну роботу
- •1. Загальні відомості щодо згортальних кодів
- •Лабораторне заняття № 5.3. Методи захисту від спотворень з використанням передачі зі зворотним зв’язком. Оцінка впливу способів організації обміну в ткм на відносну швидкість та вірність передачі
- •3.1 Аналіз шляхів підвищення відносної швидкості передачі
- •3.2 Визначення вірності передачі даних
- •Залежність вірності передачі (цілісності) інформації в спд від стану каналу: 1 спд із коригуючим кодом, 2 спд із взз
- •1. Завдання на лабораторну роботу “Оцінка часу доставляння повідомлень”
- •Орієнтовні запитання колоквіуму
- •Порядок виконання роботи
- •Оцінка часу доставляння повідомлень для умов попередньої лабораторної роботи, коли:
- •Залежність часу доставки інформації від стану каналу: 1 спд із коригуючим кодом, 2 спд із взз та смп, 3 - спд із взз та пп, 4 - спд із взз та ап
- •2. Оцінка часу затримки повідомлень для умов попереднього завдання лабораторної роботи.
- •Залежність часу затримки доставки інформації від стану каналу: 1 спд із взз та смп, 2 - спд із взз та пп, 3 - спд із взз та ап
- •5. Методичні вказівки по проведенню заняття
- •Основні відомості з теорії. Оцінка впливу способів організації обміну в ткм на час доставляння повідомлень
- •Залежність часу доставки інформації від стану каналу: 1 спд із коригуючим кодом, 2 спд із взз Оч, 3 - спд із взз та пп, 4 - спд із взз та ап
- •Залежність часу затримки інформації від стану каналу: 1 взз із смп, 2 - взз із пп, 3 взз із ап
- •Лабораторне заняття № 5.5. Задачі забезпечення цілісності і доступності інформаційних об'єктів в обчислювальних мережах. Оцінка виграшу від перемежування та від кодування в каналах зв’язку
- •2. Орієнтовні запитання колоквіуму
- •3. Порядок виконання роботи
- •3.1. Оцінити необхідність застосування та глибину перемежування в каналах зв’язку для наступних варіантів завдань:
- •Методика визначення глибини перемежування
- •Методика визначення виграшу від кодування
1. Загальні відомості щодо згортальних кодів
Ці коди належать до класу неперервних, оскільки як операції кодування, так і операції декодування здійснюються неперервно над послідовністю символів, яка не розділяється на блоки. Кожні n символів складаються, як і в інших кодах, із m інформаційних і k перевірочних. Достоїнством кодів є можливість виявляти і виправляти групові спотворення.
Ці коди можуть мати різну надлишковість, але найбільш просто вони реалізуються при m = k, тобто коли n = m + k = 2m = 2k, а відносна швидкість передачі дорівнює
R = m/k = m/2m = 0,5.
В цьому випадку перевірки створюють послідовно пов’язані ланцюги, що і відображено в одній із назв коду “ланцюговий”.
Згортальні (рекурентні, ланцюгові) коди використовуються для кодування неперервної послідовності двійкових символів шляхом введення в цю послідовність спеціальних перевірочних символів. Наприклад, для кожного інформаційного символу вихідної послідовності (а), які є рознесеними міх собою на крок додавання (кодування, перемежування) λ формується один спеціальний перевірочний символ (п).
Передаються
перевірочні символи із певною затримкою
відносно інформаційних. На боці приймача
із інформаційних символів (
)
формуються нові перевірочні, які на
відміну від перевірочних символів
,
які прийнято, називаються контрольними.
Контрольні символи (к)
порівнюються із перевірочними і, в разі
їх неспівпадання, формується висновок
про наявність спотворення. Перевірочні
і контрольні символи формуються шляхом
складання по модулю 2 інформаційних.
Передавання |
Приймання |
|
|
|
|
… |
… |
|
|
|
|
і т.д. |
|
Одна перевірка охвачує ті інформаційні символи, різниця номерів яких дорівнює кроку додавання:
і + λ – і = і + λ + 1– (і +1) = і + 2λ + 1– (і +λ) = …= λ.
Кожен контрольний символ порівнюється із відповідним перевірочним:
|
|
і т.д. |
Ознакою відсутності спотворень є те, що усі суми дорівнюють нулю:
…= 0.
Спотвореним може бути як інформаційний, так і перевірочний символ.
На
спотворення одного перевірочного
символу покаже те, що одна із сум дорівнює
одиниці. Наприклад, при спотворенні
отримаємо
,
оскільки
не
співпадає із
.
Якщо подальшої передачі цієї послідовності
не здійснюється (ретрансляція відсутня),
то ніяких виправлень здійснювати не
слід.
Наявність двох сум, які дорівнюють одиниці і віддалені (зсунуті) між собою на крок додавання λ , свідчить про спотворення двох перевірочних символів.
Розглянемо приклад послідовного згортального коду із кроком додавання λ = 3 при умові, що перевірочні символи прийнято без спотворень. Нехай із спотворенням прийнято три інформаційних символи. Формування перевірочних і контрольних символів показано на рис. 1.
Рис. 1. Формування перевірочних і контрольних символів при наявності спотворення в символах з номерами 4, 5, 6
(Увага! Розташування перевірочних символів на цьому рисунку показано умовно і не відповідає вимогам до нього!)
Звернемо увагу на те, що для заданих умов усі перевірочні символи є такими, що дорівнюють нулю. В наслідок же спотворення символів з номерами 4, 5, 6 серед контрольних символів, які формуються за участю спотворених, з’являються символи, що відрізняються від перевірочних, тобто дорівнюють одиниці.
Порівняємо контрольні елементи із перевірочними, які є прийнятими:
|
|
|
|
|
|
Видно, що створилися три пари сум, які дорівнюють одиниці і зсунуті на крок додавання λ = 3 :
і
;
і
;
і
.
Звідсіля
робимо висновок, що спотворені ті
інформаційні символи, номери позицій
яких є спільними в кожній парі сум, тобто
,
,
.
Значення цих символів необхідно виправити
на протилежні: прийнято 0 – повинна бути
1 і навпаки. Таким чином, виправлено три
спотворення, тобто кількість спотворень,
що виправляються, дорівнює кроку
додавання.
Із цього прикладу можна зробити і побічний висновок: значення λ визначає не лише крок додавання, а і кількість окремих незалежних ланцюгів коду. Дійсно, при λ = 3 маємо три незалежних ланцюги:
|
|
|
Розглянемо
ще один приклад.
Значення інформаційних і перевірочних
символів при передаванні – такі ж як і
в попередньому прикладі (див. рис. 4. 6).
Перевірочні символи прийнято без
спотворень, із спотвореннями прийнято
інформаційні символи
,
,
,
,
(рис.
2).
Результат порівняння контрольних і перевірочних символів покажемо для кожного із ланцюгів:
-
перший ланцюг:
другий ланцюг:
третій ланцюг:
Рис. 2. Формування перевірочних і контрольних символів при наявності спотворення в символах з номерами 1, 4, 5, 6, 12
Із отриманих результатів підсумовування контрольних і перевірочних символів розглянемо можливість виправлення спотворень в кожному незалежному ланцюзі коду.
Перший
ланцюг включає
,
,
,
,
та відповідні перевірочні символи
,
,
,
.
За умовою спотвореними є
,
.
В цьому ланцюзі тільки одна із сум
дорівнює одиниці:
.
Виходячи із правил виявлення спотворень, можна стверджувати, що спотвореним є перевірочний символ . Однак це суперечить умові прикладу: перевірочні символи прийнято без спотворень. Тобто, виявлення спотворених інформаційних символів, які входять до першого ланцюга, не здійснено. Більш того, невірно буде “виправленим” перевірочний символ .
Другий
ланцюг включає
,
,
,
та
,
,
.
За умовою спотворено
.
Те, що в цьому ланцюзі дорівнюють одиниці
дві суми (
),
свідчить, що спотвореним є один
інформаційний символ із спільним для
цих сум індексом, тобто
.
В другому ланцюзі спотворення буде
виправлено вірно.
У третій
ланцюг входять
,
,
,
та
,
,
.
Згідно із умовою прикладу спотвореними
є
та
.
В цьому ланцюзі три суми дорівнюють
одиниці
.
За
рівнянням
можна виправити
;
рівняння
вказує
на спотворення
,
що суперечить умові. Таким чином,
спотворення
не виявлено і невірно виправлено
.
Якщо узяти
,
можна вважати спотвореним
,
що є також невірним.
Розглянувши два приклади із різною кількістю спотворених інформаційних символів, можна зробити наступні висновки:
1. Згортальний код виправляє групове спотворення із λ інформаційних символів ( див. перший приклад). Чим більшою є довжина групової завади, тим більшим повинен бути крок додавання. Але із збільшенням кроку додавання збільшується і складність кодоперетворювачів.
2. Правильне виправлення спотворень є можливим, якщо в кожному незалежному ланцюзі коду праворуч та ліворуч від спотворення є два неспотворених символи (в другому прикладі перший та третій ланцюг). А оскільки інформаційні символи в кожному ланцюзі розташовані на відстані λ інформаційних символів інших ланцюгів, то між груповими спотвореннями повинно бути мінімум 2λ неспотворених інформаційних символів.
Місце розташування перевірочних символів визначається двома обставинами: по-перше, групова завада не повинна одночасно охвачувати інформаційні і відповідні перевірочні символи; по-друге, не повинно бути неправильного виправлення інформаційних символів.
Розглянувши два приклади із різною кількістю спотворених інформаційних символів, можна зробити наступні висновки про те, що:
1. Інформаційні символі одного ланцюга розташовуються на відстані λ інформаційних та λ перевірочних, отже на відстані 2λ символів один від іншого;
2. Місце розташування перевірочних символів визначається двома обставинами: по-перше, групова завада не повинна одночасно охвачувати інформаційні і відповідні перевірочні символи; по-друге, не повинно бути неправильного виправлення інформаційних символів.
Із цих
міркувань перевірочні
символи розташовуються на відстані
2λ
+ 1
символів від найближчого свого
інформаційного. Наприклад, перевірочний
символ
,
створений із інформаційних
та
повинен займати [(i
+ 2λ)
+ 2λ
+ 1
] = (і
+
4λ
+1)
позицію.
При цих умовах згортальний код виправляє групове спотворення із λ інформаційних символів ( див. перший приклад).
Розглянемо приклад формування інформаційної послідовності для кроку додавання λ = 2 номерів символів. Із викладеного раніше зрозуміло, що:
Інформаційні та перевірочні символи повинні чергуватися. Для визначеності будемо вважати, що інформаційні символи мають непарні номери, а перевірочні – парні;
Повинні бути сформованими два (λ = 2) незалежних ланцюги формування перевірочних (а в подальшому і контрольних) символів.
В таблиці 1 наведено розподіл номерів символів послідовності між інформаційними та перевірочними (контрольними) та розподіл номерів інформаційних символів між ланцюгами.
Таблиця 1
Номери символів інформаційної послідовності |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
Номери інформаційних символів першого ланцюгу |
1 |
|
|
|
5 |
|
|
|
9 |
|
|
|
13 |
|
|
|
17 |
|
Номери інформаційних символів другого ланцюгу |
|
|
3 |
|
|
|
7 |
|
|
|
11 |
|
|
|
15 |
|
|
|
Номери перевірочних символів |
|
2
|
|
4 |
|
6 |
|
8 |
|
10 |
|
12 |
|
14 |
|
16 |
|
18 |
Взаємне розташування інформаційних і перевірочних символів для наведеного прикладу представлено на рис. 3.
Рис. 3.
Взаємне розташування інформаційних і
перевірочних символів при
λ
= 2
Оскільки рознесення між інформаційними символами кожного незалежного ланцюга складає λ інформаційних символів, то і відстань між відповідними перевірочними символами також дорівнює кроку додавання.
Важливою характеристикою згортального коду є мінімально допустима відстань між суміжними груповими спотвореннями, коли ще є можливим виправлення спотворень (див. рис. 4). Ця відстань повинна забезпечувати правильне приймання 2λ інформаційних символів після спотворення та перевірочних, які охвачують спотворені інформаційні символи. Тому мінімальна допустима відстань дорівнює 2λ + 1 символів.
Рис. 3. Мінімально допустима відстань між груповими спотвореннями
Оскільки
в інформаційних повідомленнях, що
передаються безперервно, перевірочні
та інформаційні символи чергуються:
,
п,
,
п,
,
…, то це означає, що інформаційні символи,
що входять у одну перевірку, рознесені
проміж собою на λ
інформаційних і λ
перевірочних символів. Тобто, при кроці
додавання λ
інформаційних символів згортальний
код виправляє групове спотворення із
b = 2λ
інформаційних і перевірочних символів,
а мінімально допустима відстань між
груповими спотвореннями дорівнює
М = 4λ +1 = 2b + 1.