lign="justify"> - Визначити число розрядів кодової комбінації примітивного коду k, необхідне для кодування всіх L рівнів квантованного повідомлення.
- Визначити надмірність коду при використанні кодування Хеммінга.
- Записати двійкову кодову комбінацію, відповідну передачу j-го рівня, вважаючи, що при примітивному кодуванні на першому етапі j-му рівню ставиться відповідно двійкова кодова комбінація, що представляє собою запис числа j в двійковій системі числення. В отриманій кодової комбінації вказати інформаційні та перевірочні розряди.
- Визначити число двійкових символів, що видаються кодером в одиницю часу V n і тривалість двійкового символу T.
Число розрядів двійковій кодової комбінації для кодування L рівнів знаходимо за формулою (19):
. (19)
Так як L=18, то отримуємо:
Код Хеммінга - це блоковий код, що дозволяє виправляти одиночні і фіксувати подвійні помилки, розроблений Річардом Хеммінг в 40-х роках минулого сторіччя. У той час він працював у лабораторії Белла на електромеханічної лічильної машині Bell Model V. Введення даних в цю машину здійснювався за допомогою перфокарт. Це була найбільш ненадійна частина обчислювальної машини. Перфокарти часто зчитувалися неправильно. Виправлення і виявлення помилок введення даних забирало величезну кількість часу, а припущення помилки могли привести до невірних результатів роботи. Бажаючи застрахуватися від можливих збоїв і прискорити процес обробки даних, Хеммінг в 1950 році розробив спосіб кодування.
Ідея кодів Хеммінга полягає в розбитті даних на блоки фіксованої довжини і введенні в ці блоки контрольних біт, доповнюючих до парності кілька пересічних груп, що охоплюють всі біти блоку.
Хеммінг розрахував мінімальну кількість перевірочних біт, що дозволяють однозначно виправляти однократні помилки.
Якщо довжина інформаційного блоку, який потрібно закодувати - k біт, кількість контрольних біт, що використовуються для його кодування - r, то закодований блок буде мати довжину: n=r + k біт. Для кожного блоку такої довжини можливі n різних комбінацій, що містять помилку.
Якщо для інформаційних даних довжиною k підібрати таку кількість контрольних біт r, що максимально можлива кількість різних послідовностей довжиною k + r буде більше або дорівнює максимальному количеству різних закодованих інформаційних блоків, що містять максимум однієї помилки, то точно можна стверджувати, що існує такий метод кодування інформаційних даних за допомогою r контрольних біт, який гарантує виправлення одноразової помилки.
Отже, мінімальна кількість контрольних біт, необхідних для виправлення одноразової помилки, визначається з рівності (20):
(20)
Перетворивши (20) отримуємо формулу (21):
. (21)
Перше ціле число, яке задовольняє цій умові, r=4 біт.
Тоді повна довжина кодової послідовності: n=k + r=9 біт.
Визначимо надмірність коду за формулою (22):
. (22)
Отримуємо:
Кодований j=17 рівень, відповідно до варіанту, матиме наступну двійкову кодову комбінацію, що займає k=5 розрядів:
10=100012.
Всі біти, порядкові номери яких є ступенем двійки, - це контрольні розряди (перевірочні біти). Тобто якщо порядковий номер біта позначити символом «l», то для контрольних біт має бути справедливо рівність (23):
l=2t, (23)
де t - будь-яке позитивне ціле число.
Виходячи з виразу (23), для послідовності 100012 перевірочними будуть: 1, 2, 4 і 8 біти, тому 20=1, 21=2, 22=4, 23=8.
Визначимо розташування перевірочних біт в результуючій закодованої послідовності. Позначимо інформаційні біти символом k, а контрольні біти символом r. Індекс близько цих символів означатиме їх порядковий номер в закодованій послідовності.