МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Дослідження кодоутворення та принципів побудови кодерів та декодерів кодів Хемінга
Лабораторна робота № 1
Мета роботи: вивчити принципи побудови кодів Хемінга та одержати практичні навики розробки функціональних схем кодерів і декодерів.
Завдання
1. Визначити основні параметри коду Хемінга d = 3 ( nk ,n, N, Nд, Nз, R, B ), якщо кількість
інформаційних розрядів дорівнює двом останнім цифрам номера залікової книжки (НЗК).
2.Побудувати утворюючу матрицю КХ (16, 11) і на її основі закодувати число у двійковому та
двійково-десятковому кодах, що відповідає трьом останнім цифрам НЗК.
3. Побудувати перевірочну матрицю КХ (16, 11). Декодувати одну з КК одержаних в п. 2, для
випадку, коли спотворень нема, коли вони є в одному, двох і трьох розрядах. Номери
спотворюваних розрядів вибирати довільно.
4. Ознайомитися з схемою, передати і прийняти кодові комбінації, одержані в п. 2 без спотворень та із спотвореннями. Порівняти синдроми, які відтворюються індикаторами S0, S1, S2, S4, S8 з результатами, одержаними в п. 3.
5. За допомогою часового вікна замалювати кодові комбінації кожної кодової комбінації, одержаної в п. 3. Дати необхідні пояснення.
6. Скласти схеми кодера і декодера кодів Хемінга при d = 2, d = 3.
7. Побудувати графіки залежності R=f1(ni) та B=f2(ni) для коду Хемінга з d = 3, якщо
кількість інформаційних розрядів змінюється від 1 до 250.
Визначимо основні параметри коду Хемінга d = 3
Останні цифри залікової книжки – 64
nі = 64 – кількість інформаційних символів
nк – кількість контрольних символів, який визначаємо з нерівності: ≥ ni + nk + 1,
nк = 7
n = nі + nк = 64 + 7 = 71, n – загальна кількість символів
N = 2n = 271 – загальна кількість комбінацій
Nд = = 27=128 – дозволені комбінації
Nз = 2n - = 271-27=264 – заборонені комбінації
R = nк / n = 0,078 – надлишковість коду
B = nі / n = 0,922 – швидкість передачі інформації
За даними залікової книжки мій номер – 064. Отже, код буде таким 1000000.
Побудуємо утворюючу матрицю КХ(16,11)
К8 К4 К2 К1 К0
| 15 14 13 12 11 10 9 7 6 5 3 8 4 2 1 0 |
| 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 |
| 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 |
| 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 |
| 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 |
| 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 |
| 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 |
| 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 |
| 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 |
| 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 |
| 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 |
| 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 |
0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0
Знаходимо контрольні символи:
K1=I3+I5+I7+I9+I11+I13+I15= 1
K2=I3+I6+I7+I10+I11+I14+I15= 1
K4=I5+I6+I7+I12+I13+I14+I15=0
K8=I9+I10+I11+I12+I13+I14+I15=1
K0= К1+К2+К4+К8+І3+І5+І6+І7+І9+І10+І11+І12+І13+І14+І15 =0
Отже, код Хемінга з d = 4 матиме такий вигляд:
І15 І14 І13 І12 І11 І10 І9 К8 І7 І6 І5 К4 І3 К2 К1 К0 = 0000100100000110
Побудуємо перевірочну матрицю Н(16,11)
K8 K4 K2 K1 K0
| 15 14 13 12 11 10 9 7 6 5 3 8 4 2 1 0 |
| 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 | S8
| 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 | S4
| 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 | S2
| 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 | S1
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 | S0
0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0
Помилка відсутня
Виходячи із перевірочної матриці:S8=0, S4=0, S2=0, S1=0, S0=0, отже, помилка відсутня і кодова комбінація декодована правильно.
Зробимо помилку в символі І6: 0000100101000110
K8 K4 K2 K1 K0
| 15 14 13 12 11 10 9 7 6 5 3 8 4 2 1 0 |
| 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 | S8
| 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 | S4
| 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 | S2
| 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 | S1
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 | S0
0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0
Виходячи із перевірочної матриці: S8=0, S4=1, S2=1, S1=0, S0=0
S0=1, Si ≠0 – отже, у коді одинична помилка
Зробимо помилки в І6 і І9: 0000101101000110
K8 K4 K2 K1 K0
| 15 14 13 12 11 10 9 7 6 5 3 8 4 2 1 0 |
| 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 | S8
| 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 | S4
| 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 | S2
| 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 | S1
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 | S0
0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0
Виходячи із перевірочної матриці: S8=1, S4=0, S2=0, S1=0, S0=0
S0=0, Si ≠0 – отже, у коді подвійна помилка
Зробимо помилки в І6, І3, I9, : 0000101101001110
K8 K4 K2 K1 K0
| 15 14 13 12 11 10 9 7 6 5 3 8 4 2 1 0 |
| 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 | S8
| 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 | S4
| 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 | S2
| 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 | S1
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 | S0
0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0
Виходячи із перевірочної матриці: S8=1, S4=0, S2=1, S1=1, S0=0
S0=0, Si ≠0 – отже, у коді потрійна помилка
Помилка відсутня
Передана комбінація
У коді 1 помилка
Внесені спотворення
У коді 2 помилки
Внесені спотворення
У коді 3 помилки
Внесені спотворення
Завдання 5 Побудувати схеми кодерів і декодерів коду Хемінга з кодовою віддалю
d=2, 3
Схема кодера і декодера коду Хемінга з кодовою віддалю d=2
Схема кодера і декодера коду Хемінга з кодовою віддалю d=3
Завдання 6 Побудувати графіки залежності B=f2(ni) і R=f1(ni) для коду Хемінга з d = 3
Схема кодера і декодера коду Хемінга з кодовою відаллю d=2
Графік залежності B=f2(ni) для коду Хемінга з d = 3
При збільшенні кількості інформаційних розрядів, швидкість передачі інформації зростає.
Графік залежності R=f1(ni) для коду Хемінга з d = 3
При збільшенні кількості інформаційних розрядів, кількість контрольних розрядів зростає незначно, надлишковість коду зменшується.
Висновок: на даній лабораторній роботі я ознайомилася з принципами побудови кодів Хемінга, навчилася виявляти однократні, двократні помилки і помилки непарної кратності і перевіряти їх за допомогою функціональних схем кодера та декодера.