МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Дослідження кодоутворення та принципів побудови кодерів та декодерів кодів Хемінга
Лабораторна робота № 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
При збільшенні кількості інформаційних розрядів, кількість контрольних розрядів зростає незначно, надлишковість коду зменшується.
Висновок: на даній лабораторній роботі я ознайомилася з принципами побудови кодів Хемінга, навчилася виявляти однократні, двократні помилки і помилки непарної кратності і перевіряти їх за допомогою функціональних схем кодера та декодера.