
- •Теорія інформації
- •Тулякова н.О.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 Способи декодування циклічного коду
- •Розв'язання
- •Розв'язання
- •Розв'язання
Розв'язання
При використанні завадостійкого (k, n)- коду Хеммінга контрольні суми, що додаються до інформаційного повідомлення, необхідно розмістити не в правій частині кодового слова, а в позиціях цілого степеня 2. Тоді стовпці перевірної матриці коду H(n-k)n будуть двійковим поданням номера розряду кодової комбінації, в якому виникла помилка.
У даному випадку кількість інформаційних елементів k=11.
Необхідна кількість перевірних розрядів r=4 (див. табл.3.3).
Отже, потрібно побудувати (11, 15) -код Хеммінга для заданого повідомлення.
Перевірна матриця (11, 15) -коду Хеммінга має вигляд
.
Систему перевірних рівнянь, що визначає правила знаходження перевірних розрядів (контрольних сум), дістанемо з рівняння кодового синдрому
S=uH=0,
де u – кодове слово лінійного блокового коду, заданого перевірною матрицею H.
S=(u1,
u2,
…,
u15)
= (u8+u9+u10+u11+
+u12+u13+u14+u15,,
u4+u5+u6+u7+u12+u13+u14+u15,
u2+u3+u6+u7+
+u10+u11+u14+
u15,,
u1+
u3+u5+u7+u9+u11+
u13+u15) = 0.
Звідси випливає система рівнянь
Перевірні розряди - це біти з номерами цілого степеня 2 – u1, u2, u4, u8, інші розряди - символи інформаційного повідомлення, тобто кодове слово будується так:
,
де m=(m1, m2, …, m11) – інформаційне повідомлення; r1, r2, r3, r4 – контрольні суми.
Система перевірних рівнянь коду має вигляд
()
Закодуємо задане повідомлення:
.
Скориставшись системою перевірних рівнянь (), знайдемо контрольні суми:
r1=1+1+0+1+1+1+0=1;
r2=1+0+0+0+1+1+0=1;
r3=1+0+0+0+1+1+0=1;
r4=1+0+1+0+1+1+0=0.
Підставляючи у відповідні позиції знайдені значення контрольних сум, отримуємо закодовану послідовність:
(11001010110) (111110001010110).
Нехай у цьому кодовому слові при передачі виникла помилка, наприклад, прийнятий вектор y=(111110101010110).
На прийомній стороні обчислюється синдром
S = yH = (111110101010110)
=
(0111).
Ненульове значення кодового синдрому означає наявність помилки у прийнятій послідовності. Вектор синдрома відповідає номеру помилкового розряду у двійковому вигляді: у даному випадку (0111)2=710 – отже, помилка виникла у 7-му розряді.
Змінюємо значення помилкового біта і декодуємо кодову послідовність, вилучивши з неї контрольні суми, так:
(111110101010110)(111110001010110)
(11 001010110).
Твірна матриця коду будується таким чином, щоб стовпці з номерами нестепеня 2 відповідали інформаційним елементам повідомлення, тобто утворювали одиничну підматрицю, а стовпці з номерами степеня 2 (перевірна частина матриці) визначалися рівняннями знаходження відповідних контрольних сум.
У такий спосіб, твірна матриця (11, 15) -коду Хеммінга має вигляд
.
Кодові слова лінійного блокового коду знаходяться множенням інформаційного повідомлення на твірну матрицю
u=(m1, m2, ...,
m11)
=
=
Звідси випливає система перевірних рівнянь коду ().
Надлишковість
коду
.
Задачі до розділу 11
Закодувати повідомлення 1100110, 1010111 (7, 11)- кодом Хеммінга. Побудувати твірну матрицю. Визначити його надлишковість.
Закодувати (4, 7)- кодом Хеммінга комбінації 1010, 1011, 1100. Навести приклад виправлення однократної помилки цим кодом. Побудувати твірну матрицю коду. Визначити його надлишковість.
Закодувати повідомлення 11001, 10100, 10110 кодом Хеммінга. Побудувати твірну матрицю коду. Визначити його надлишковість.
Закодувати повідомлення 110, 101, 011, 111 кодом Хеммінга. Побудувати твірну матрицю коду. Визначити його надлишковість.
Закодувати кодом Хеммінга комбінацію двійкового простого коду, що являє запис поточного року у двійковій системі числення. Навести приклад виправлення однократної помилки в цій комбінації.
Побудувати перевірну матрицю коду Хеммінга для інформаційних послідовностей довжиною k=6 символів, за її допомогою закодувати комбінації 011001, 100011. Навести приклад виправлення однократної помилки. Визначити надлишковість коду.
Побудувати перевірну матрицю коду Хеммінга для інформаційних послідовностей довжиною k=7 символів, за її допомогою закодувати комбінації 0110010, 1000111. Навести приклад виправлення однократної помилки. Визначити надлишковість коду.
Побудувати перевірну матрицю коду Хеммінга для інформаційних повідомлень довжиною k=8, за її допомогою закодувати комбінації 01100100, 10001101. Навести приклад виправлення помилки.
Декодувати повідомлення 110110001010110, закодоване (11, 15)- кодом Хеммінга, виправивши помилку, якщо вона є. Побудувати твірну матрицю коду.
Декодувати повідомлення 1101100, 1011101, 1010101, закодовані (4, 7) - кодом Хеммінга. Побудувати твірну матрицю коду.
Розділ 12 ПОЛІНОМІАЛЬНЕ КОДУВАННЯ ІНФОРМАЦІЇ. ЦИКЛІЧНІ КОДИ
Зручним і наочним способом задання лінійних блокових (k, n)-кодів є подання символів кодових слів u0, u1.,un-1 у вигляді коефіцієнтів многочлена від х, тобто
u(x) = u0 + u1 x + u2 x2 + … + un-1 xn-1. (3.11)
Подання кодових слів у такій формі дозволяє звести дії над комбінаціями символів до дій над поліномами.