
- •Теорія інформації
- •Тулякова н.О.0 теорія інформації
- •Теорія інформації
- •1.1 Предмет курсу. Види інформації. Теорема дискретизації
- •1.2 Базові поняття теорії інформації
- •1.3 Способи вимірювання інформації
- •1. 4 Ентропія джерела. Властивості кількості інформації та ентропії
- •Розв'язання
- •Розв'язання
- •2.1 Умовна ентропія
- •2.2 Модель системи передачі інформації
- •2.3 Види умовної ентропії
- •2.4 Ентропія об'єднання двох джерел інформації
- •2.5 Продуктивність дискретного джерела інформації. Швидкість передачі інформації
- •2.6 Інформаційні втрати при передачі інформації по дискретному каналу зв'язку
- •2.7 Пропускна здатність дискретного каналу. Основна теорема про кодування дискретного джерела
- •Розв'язання
- •Розв'язання
- •3.1 Способи задання кодів. Статистичне кодування
- •3.2 Елементи теорії префіксних множин
- •3.3 Оптимальні методи статистичного стиснення інформації Шеннона-Фано і Хаффмена
- •Розв'язання
- •I Метод Шеннона-Фано:
- •II Метод Хаффмена:
- •4.1 Теоретичні границі стиснення інформації
- •4.2 Метод блокування повідомлення
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •Метод Шеннона-Фано
- •Арифметичний метод
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •7.1 Алгоритм lz77
- •7.2 Алгоритм lzss
- •7.3 Алгоритм lz78
- •7.4 Алгоритм lzw
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •8.1 Огляд типів систем стиснення інформації
- •8.2 Стиснення без втрат інформації
- •8.3 Стиснення із втратами інформації
- •9.1 Основні принципи
- •9.2 Елементи двійкової арифметики
- •9.3 Код з перевіркою на парність
- •9.4 Ітеративний код
- •Розв'язання
- •Розв'язання
- •10.1 Способи задання лінійних кодів. Твірна матриця лінійного блокового коду
- •10.2 Перевірна матриця лінійного блокового коду
- •10.3 Кодовий синдром і виявлення помилок лінійним блоковим кодом
- •10.4 Синдромне декодування лінійних блокових кодів
- •10.5 Вага і відстань Хеммінга. Можливості лінійних кодів виявляти і виправляти помилки
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •12.1 Операції над поліномами в полі двійкових символів gf(2)
- •12.2 Поліноміальні коди
- •12.3 Циклічні коди
- •12.4 Синдром і виправлення помилок у циклічних кодах
- •12.5 Твірна і перевірна матриці циклічного коду
- •12.6 Способи декодування циклічного коду
- •Розв'язання
- •Розв'язання
- •Розв'язання
9.4 Ітеративний код
Припустимо, потрібно передати повідомлення m завдовжки 9 символів. Розмістимо символи повідомлення у вигляді матриці, додавши до кожного рядка і стовпця контрольні символи перевірки на парність (табл. 3.1).
Таблиця 3.1
m1 |
m2 |
m3 |
m1+m2+m3 |
m4 |
m5 |
m6 |
m4+m5+m6 |
m7 |
m8 |
m9 |
m7+m8+m9 |
m1+m4+m7 |
m2+m5+m8 |
m3+m6+m9 |
m1+m2+...+m9 |
Якщо у процесі передачі в цій таблиці виникне одна помилка, то перевірка на парність у відповідному рядку і стовпці не виконуватиметься. Координати помилки однозначно визначаються номерами стовпця і рядка, в яких не виконується перевірка на парність. Відтак, такий код може не тільки виявляти, але й виправляти помилки.
Описаний метод кодування називається ітеративним. Його застосування доцільне, якщо дані формуються у вигляді масивів, наприклад, в шинах ЕОМ, в пам'яті, що має табличну структуру.
Недоліком такого кодування є значна надлишковість при порівняно низькій виправній здатності.
Зразки розв'язування задач до розділу 9
Приклад 1 Завадостійкий код заданий твірною матрицею вигляду
.
Побудувати таблицю кодів;
Описати основні характеристики коду: мінімальну відстань між словами, ймовірність невиявлення помилки, максимальну кратність помилок, які можуть бути виявлені й виправлені кодом;
Побудувати таблицю декодування;
Уточнити можливості коду з виявлення і виправлення помилок: знайти ймовірність правильної передачі закодованого повідомлення і описати помилки, що виправляються кодом;
Як будуть декодовані слова: 10001, 01110, 10111?
Розв'язання
Кодові
слова завадостійкого коду, заданого
твірною матрицею Gkn,
мають довжину
n
символів і визначаються так:
,
де через m позначено інформаційну послідовність довжиною k .
За умовою задачі завадостійкий код заданий твірною матрицею вигляду
,
I22 P23
що складається з одиничної частини Ikk і перевірочної частини Pk(n-k). Одинична матриця відповідає інформаційним символам кодового слова, перевірочна – визначає перевірні символи.
Отже, кодові слова даного коду будуються так:
,
де перші два символи інформаційні, а наступні три є контрольними сумами r1, r2, r3.
Побудуємо таблицю кодових слів заданого коду й оцінимо їхню ймовірність (mабл. 1).
Таблиця 1
Інформаційна послідовність |
Кодове слово |
Імовірність |
000 |
00 000 |
|
01 |
01 110 |
p2q3 |
10 |
10 101 |
p2q3 |
11 |
11 011 |
pq4 |
Даний код належить до лінійних блокових кодів, тому що відповідає умові лінійності: кожне з кодових слів є лінійною комбінацією двох інших кодових слів даного коду.
Твірна матриця лінійного блокового коду складається з k лінійно незалежних комбінацій коду, а всі інші кодові слова, крім нульового, - лінійні комбінації кодових слів, що входять до твірної матриці.
Опишемо основні характеристики заданого коду.
Мінімальна кодова відстань Хеммінга лінійного блокового коду визначається як мінімальна вага кодових слів, що входять у твірну матрицю. Для двійкових послідовностей вага Хеммінга визначається кількістю одиниць у заданій послідовності.
У даному випадку мінімальна вага кодових слів у твірній матриці дорівнює 3, отже, мінімальна відстань Хеммінга dmin=3.
Помилки лінійним блоковим кодом не будуть виявлені у тих випадках, якщо під впливом завад одне кодове слово перетвориться в інше кодове слово даного коду. Виходячи з того, що кодове слово лінійного коду є лінійною комбінацією двох інших кодових слів, ймовірність того, що одне кодове слово перетвориться в інше, визначається ймовірністю того, що вектор помилок збігається з одним із кодових слів коду (прийнята послідовність y=u+e, де u – передане кодове слово; e – вектор помилок у двійковому каналі). Таким чином, імовірність невиявлення помилок заданим кодом буде такою (див. табл. 1):
Pпом=2p2q3+pq4.
Кратність помилок, що виявляються лінійним блоковим кодом, визначається за нерівністю
dmin l+1,
де l – кратність помилок; dmin – мінімальна відстань коду.
Звідси максимальна кратність помилок, що виявляються заданим кодом, l dmin–1=3-1=2.
Кратність помилок, що виправляються лінійним блоковим кодом, визначається за нерівністю
dmin 2l+1.
Звідси максимальна кратність помилок, що виправляються заданим кодом, l (dmin –1)/2=1.
Побудуємо таблицю декодування (табл. 2). Для цього в першому рядку таблиці випишемо всі кодові слова, а в лівому стовпці – значення вектора помилок. Можливі прийняті комбінації – це слова, записані у відповідних рядках і стовпцях таблиці.
Таблиця 2
Вектор помилок |
Кодові слова |
||
00000 |
01110 |
10101 |
11011 |
00001 |
01111 |
10100 |
11010 |
00010 |
01100 |
10111 |
11001 |
00100 |
01010 |
10001 |
11111 |
01000 |
00110 |
11101 |
10011 |
10000 |
11110 |
00101 |
01011 |
Якщо продовжити цю таблицю далі для всіх можливих комбінацій з двома помилками, можна побачити, що однозначної відповідності між переданими послідовностями і відповідними кодовими словами вже не буде, тобто виправити помилки кратності 2 заданим кодом неможливо. Таким чином, імовірність правильної передачі кодового слова довжиною 5 символів
.
Для того щоб декодувати прийняту послідовність y=uj+ei, де uj – передане кодове слово; ei – вектор помилок у каналі, потрібно відшукати її в таблиці декодування й вибрати як передане кодове слово в тому самому стовпці і у першому рядку. У такий спосіб декодуємо задані комбінації:
10001 10101 10;
01110 01110 01;
10111 10101 10.
Приклад 2 Для кодування послідовності з k=12 інформаційних елементів застосовується ітеративний метод. Записати твірну матрицю еквівалентного лінійного блокового коду. Закодувати повідомлення (110111000110). Виправити помилку в прийнятій послідовності (11011110001110001111). Визначити надлишковість коду.