Главная » Файлы » Контрольные работы » Контрольные работы |
Захист та Завадостійка Обробка Даних
[ Скачать с сервера (170.0 Kb) ] | 13.04.2017, 11:27 |
Код Хеммінга Код Хеммінга – це алгоритм, який дозволяє закодувати будь-яке інформаційне повідомлення певним чином і після передачі (наприклад, по мережі) визначити, чи з’явилася якась помилка в цьому повідомленні (наприклад, через перешкоди) і при можливості відновити це повідомлення. Код Хеммінга складається з двох частин. Перша частина кодує вихідне повідомлення, вставляючи в нього в певних місцях контрольні біти (вирахувані особливим чином). Друга частина отримує вхідне повідомлення і заново вираховує контрольні біти (по тому ж алгоритму, що й перша частина). Якщо всі заново вирахувані контрольні біти співпадають з отриманими, то повідомлення отримане без помилок. В іншому випадку, виводиться повідомлення про помилку і при можливості помилка виправляється. Вхідне повідомлення «Почтарук», яке необхідно передати без помилок. Для цього спочатку потрібно представити його в бінарному виді. Символ Бінарне представлення П 11110000 О 11110011 Ч 11100100 Т 11100111 А 11100101 Р 11100010 У 11101000 К 11110111 На цьому етапі слід визначити довжину інформаційного слова. Припустимо, що довжина слова буде рівна 16. Таким чином необхідно розділити вихідне повідомлення на блоки по 16 біт, які будемо потім кодувати окремо один від одного. Так як один символ займає в пам’яті 8 біт, то в одне закодоване слово поміщається рівно два ASCII символа. Отримаємо три бінарні рядки по 16 біт: П О Ч Т А Р У К 11110000 11110011 11100100 11100111 11100101 11100010 11101000 11110111 Після цього процес кодування розпаралелюється і 4 частини повідомлення кодуються незалежно одна від одної. Перш за все потрібно вставити контрольні біти. Вони вставляються в позиціях з номерами, рівними степеням двійки. В нашому випадку (при довжині інформаційного слова в 16 біт) це будуть позиції 1, 2, 4, 8, 16. Відповідно вийшло 5 контрольних біт. П О 001010001111 110000000 Ч Т 001010000010 110001011 А Р 001010000101 110001101 У К 001010001010 110001110 Таким чином довжина повідомлення збільшилася на 5 біт. До вирахування самих контрольних біт, їм присвоюється значення «0». Значення кожного контрольного біта залежить від значень інформаційних біт, які цей контрольний біт контролює. Контрольний біт з номером N контролює всі наступні N біт через кожні N біт, починаючи з позиції N. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 X X X X X X X X X X X 1 X X X X X X X X X X X X 2 X X X X X X X X X X 4 X X X X X X X X 8 X X X X X X 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 X X X X X X X X X X X 1 X X X X X X X X X X X X 2 X X X X X X X X X X 4 X X X X X X X X 8 X X X X X X 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 0 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0 X X X X X X X X X X X 1 X X X X X X X X X X X X 2 X X X X X X X X X X 4 X X X X X X X X 8 X X X X X X 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 X X X X X X X X X X X 1 X X X X X X X X X X X X 2 X X X X X X X X X X 4 X X X X X X X X 8 X X X X X X 16 Знаком «х» позначені ті біти, значення яких контролює контрольний біт, номер якого праворуч. Значення контрольних біт вираховується таким чином: береться кожен контрольний біт і рахується скільки серед контрольованих ним бітів одиниць, якщо їх кількість парна, то ставимо нуль, в протилежному випадку – одиницю. Вираховуємо контрольні біти для повідомлення: П О 111011110000 111110011 Ч Т 011111000100 111100111 А Р 001111010101 111100010 У К 01111100100 111010111 | |
Просмотров: 470 | Загрузок: 11 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |