Методичні вказівки до лабораторних занять з дисципліни «прикладна теорія цифрових автоматів», страница 9

Після прийому коду контроль по парності буде вироблятися роздільно по контрольних групах та для усього коду у цілому. У цьому разі можуть бути таки випадки:

1) у прийнятому коді у цілому та по всіх контрольних групах кількість одиниць парна;

2) у прийнятому коді у цілому кількість одиниць непарна, але в усіх контрольних групах кількість одиниць парна;

3) у прийнятому коді у цілому та у деяких з контрольних груп кількість одиниць непарна;

4) у прийнятому коді у цілому кількість одиниць парна, але у деяких контрольних групах є непарна кількість одиниць.

Якщо потрійні помилки у великій кількості розрядів виключаються, то перший випадок відповідає безпомилковому прийому коду, другий випадок – помилка тільки у розряді подвійного контролю, третій випадок – поодинокій помилці у будь-якому з інших розрядів (яку можна виправити у відповідності з наведеними вище правилами), четвертий випадок – подвійній помилці. Виправлення подвійних помилок тут, кінцево, неможливо. Приклад такого коду наведений у таблиці 1.4, де колонка «ПК» дасть цифри розряду подвійного контролю. Збільшуючи далі кількість контрольних розрядів, можна було б побудувати коди, розраховані на виправлення подвійних помилок та відкриття тройних і т.д. Проте методи побудови цих кодів не цілком розроблені.

Контрольні приклади

1.Закодувати чотирирозрядну інформаційну комбінацію 1011 коригуючим кодом Хеминга.

k=3 (тому що n=4). Розмістимо інформаційні та контрольні розряди, пронумерувавши їх від 1 до 7:

S7S6S5S4S3S2S1

 1  0  1  ?   1  ?   ?

Обчислимо значення контрольних розрядів:

k1=S3ÅS5ÅS7=1Å1Å1=1;

k2=S3ÅS6ÅS7=1Å0Å1=0;

k4=S5ÅS6ÅS7=1Å0Å1=0.

Тоді повна кодова комбінація коду Хемінга буде мати вигляд:1010101.

2. Знайти та виправити помилку у прийнятій комбінації коригуючого коду Хемінга 1000101.

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

k`1=S1ÅS3ÅS5ÅS7=1Å1Å0Å1=1

k`2=S2ÅS3ÅS6ÅS7=0Å1Å0Å1=0

k`4=S4ÅS5ÅS6ÅS7=0Å0Å0Å1=1

Вектор помилки V= k`4 k`2 k`1=1012=510