Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпори тік.docx
Скачиваний:
17
Добавлен:
10.12.2018
Размер:
65.76 Кб
Скачать

Код Хеммінга

Приклад 7.1. Визначити позиції контрольних розрядів та їх кількість в коді Хеммінга, якщо повідомлення, що кодується, складається з трьох інформаційних розрядів.

Розв’язок.

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

І3 І2 І1

Згідно з методикою Хеммінга номери позицій контрольних розрядів визначаються як 2n (n=0,1,2,3...) і дорівнюють 1, 2, 4, 8,... Як видно, у вихідному повідомленні із зазначених позицій зайняті інформаційними розрядами позиції 1 та 2. Для їх звільнення необхідно зсунути всі інформаційні розряди повідомлення на дві позиції вліво. В результаті виконання операції зсуву отримуємо:

І5 І4 І3 К2 К1

Аналіз отриманого формату повідомлення дозволяє побачити, що в ньому інформаційним розрядом зайнята позиція 4 (22). Це означає, що розряди І4 та І5 необхідно зсунути вліво на одну позицію. Отримуємо:

І6 І5 К4 І3 К2 К1

Як видно, наведений формат повідомлення відповідає умові знаходження контрольних розрядів на позиціях 2n (n=0,1,2,3,...). Робимо висновок, що для кодування кодом Хеммінга повідомлення з трьох інформаційних розрядів до нього необхідно додати три контрольних розряди, при цьому контрольні розряди повинні розташовуватись на позиціях 1, 2, 4.

Приклад 7.2. Закодувати кодом Хеммінга повідомлення 1001.

Розв’язок.

За аналогією з прикладом 7.1 визначаємо формат повідомлення:

І7 І6 І5 К4 І3 К2 К1

де І7=1, І6=0, І5=0, І3=1 (І7І6І5І3=1001).

Переведемо номери позицій в двійкову систему. Отримуємо:

710=1112 610=1102 510=1012 410=1002

310=0112 210=0102 110=0012

В позиції 1 значення розряду дорівнює 1 в комбінаціях 111, 101, 011, 001 (001 – позиція контрольного розряду, що розраховується). Тобто, значення контрольного розряду на позиції 1 обчислюється в нашому прикладі таким чином, щоб кількість одиниць на позиціях 1, 3, 5 та 7 була парною. Цю умову можна записати виразом:

І7  І5  І3  К1 = 0

Звідси отримуємо:

К1 = І7  І5  І3 = 1  0  1 = 0

В позиції 2 значення розряду дорівнює 1 в комбінаціях 111, 110, 011, 010 (010 – позиція контрольного розряду), тому для другого контрольного розряду отримуємо:

К2 = І7  І6  І3 = 1  0  1 = 0

Аналогічно для третього розряду:

К3 = І7  І6  І5 = 1  0  0 = 1

Таким чином, закодоване повідомлення буде мати вигляд: 1001100 (контрольні розряди підкреслено).

Приклад 7.3. Повідомлення 1001100 отримане в результаті кодування кодом Хеммінга (див. приклад 7.2). Перевірити, чи відповідає слово коду помилки номеру позиції викривленого розряду для розрядів на позиціях 6 (інформаційний розряд) та 4 (контрольний розряд).

Розв’язок.

Перед тим, як перейти до перевірки повідомлень визначимо позиції контрольних розрядів в повідомленні. Номери позицій контрольних розрядів визначаються як 2n (n=0,1,2,3...) і дорівнюють 1, 2, 4, 8,... У нашому випадку в повідомлені присутні розряди на позиціях 1, 2 та 4, які і є контрольними.

З наведеного аналізу можна зробити висновок, що слово коду помилки повинне складатися з трьох розрядів, при чому перший розряд цього слова (позначимо його Е1) визначається відповідно до контрольного розряду на позиції 1; другий (Е2) – до контрольного розряду на позиції 2; третій (Е3) – до контрольного розряду на позиції 4.

Значення контрольного розряду (див. приклад 7.2) на позиції 4 визначається згідно з правилом контролю на парність інформаційних розрядів І7, І5, І3 та, відповідно, самого контрольного розряду К1:

І7  І5  І3  К1 = 0

Оскільки розряд слова коду помилки Е1 повинен доповнювати значення перелічених розрядів до парності, його значення можна розрахувати за формулою:

Е1 = І7  І5  І3  К1

Аналогічним чином для розрядів Е2 та Е3 отримуємо:

Е2 = І7  І6  І3  К2

Е3 = І7  І6  І5  К4

У випадку викривлення розряду на позиції 6 повідомлення 1001100 прийме вигляд 1101100. За отриманими формулами розрахуємо значення розрядів слова коду помилки:

Е1 = 1  0  1  0 = 0

Е2 = 1  1  1  0 = 1

Е3 = 1  1  0  1 = 1

Упорядкувавши розряди слова коду помилки (у вигляді Е3Е2Е1), отримуємо значення 110, що дорівнює 6 – номеру викривленого розряду.

У випадку викривлення розряду на позиції 4 повідомлення 1001100 прийме вигляд 1000100. Розраховуємо значення розрядів слова коду помилки:

Е1 = 1  0  1  0 = 0

Е2 = 1  0  1  0 = 0

Е3 = 1  0  0  0 = 1

Отримуємо код помилки 100, що дорівнює номеру викривленого розряду.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]