Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Код Хеммінга




Кодування по методу, запропонованому американським інженером Р. Хеммінгом в 1948 р., дозволяє побудувати оптимальний систематичний код.

Оптимальним називається (n, m) - код, який забезпечує мінімальну імовірність помилкового декодування серед всіх інших кодів з тими ж n і m.

Найвідоміші з кодів, що самоконтролюються і самокоректуються, – коди Хеммінга. Побудовані вони стосовно двійкової системи числення.

Код Хеммінга є блочним кодом, який дозволяє виявити і виправити помилково переданий біт в межах переданого блоку. Звичайно код Хеммінга характеризується двома цілими числами, наприклад, (11,7). Такий запис говорить, що при передачі 7-бітного коду використовується 4 контрольних біта (7 + 4 = 11).

Коди Хеммінга призначені або для виправлення одиночних спотворень, або для виправлення одиночних і виявлення без виправлення подвійних спотворень (при збільшенні надмірності), і мають, зрозуміло, більшу надмірність, ніж коди з перевіркою на парність. У такому коді n -значне число має m інформаційних і k контрольних символів.

Певною особливістю коду є система нумерації його символів: вони нумеруються від 1 до . Одразу зауважимо, що згідно із загальними умовами, вагові коефіцієнти контрольних розрядів дорівнюють їх номерам у базовому кодовому слові і мають значення , і = 0, 1, 2, …, k. Отже в базовому кодовому слові контрольні символи розташовуються серед інформаційних.

При цьому приймається наступна нумерація біт (знаків коду): всі біти кодової комбінації одержують номери, починаючи з 1, справа наліво (варто нагадати, що в двійковій системі числення біти нумеруються з 0 справа наліво); контрольними (перевірочними) є біти з номерами 1, 2, 4, 8 і т.д. – всі інші є інформаційними. При цьому при формуванні коду Хеммінга для наочності при кодуванні чи декодуванні інформаційні та контрольні символи зручно представляти записаними в деякий шаблон, наприклад, для восьмизначної двійкової послідовності 10110110:

чи записаними в таблицю, наприклад таку, яка наведена нижче (табл. 1) для восьмизначної двійкової послідовності 01110011:

Таблиця 1
Позиція біта                        
Значення біта         *       *   * *

В цій таблиці невизначені спочатку значення контрольних символів помічені зірочкою (*).

Приклад застосування цього алгоритму розглянемо на прикладі передачі коду літери s = 0x073 = 1110011. При використанні коду Хеммінга для передачі семисимвольних повідомлень потрібно 4 надлишкових символи k ³ log2 (n + 1), k ³ 4, тобто слід використовувати код (11,7). Таблиця для формування контрольних символів такого має вигляд (табл. 2):

Таблиця 2
Позиція біта                      
Значення біта       *       *   * *

Як і раніше, символами * позначені чотири позиції, де повинні розміщуватися біти контрольної ознаки.

Загальний вираз для формування контрольної ознаки у цих кодах набуває вигляду:

(mod Р),

де , додавання здійснюється порозрядно за модулем Р = 2, а вагові коефіцієнти , тобто дорівнюють номеру відповідного символу. Для формування контрольних символів здійснюється контрольне додавання шляхом виконання операції порозрядного додавання по модулю 2 кодів номерів ненульових бітів (пропускається множення на нуль). У цьому випадку це 11, 10, 9, 5 і 3.

Обчислимо контрольну суму:

Таблиця 3
Номери ненульових біт Коди їх номерів
   
   
   
   
   
Контр. Σ  

Таким чином, приймач одержить код (табл. 5):

Таблиця 5
Позиція біта                      
Значення біта                      

Для перевірки правильності формування контрольних символів підсумуємо знову коди номерів ненульових бітів (табл. 6) и одержимо нуль:

Таблиця 6
Номери ненульових біт Коди їх номерів
   
   
   
   
   
   
   
   
Контр. Σ  

Ну а тепер розглянемо два випадки помилок в одному з біт посилки, наприклад в біті 7 (1 замість 0) і в біті 5 (0 замість 1). Підсумуємо коди позицій ненульових біт ще раз (таблиця 7):

 

 

Таблиця 7.
   
   
   
   
   
   
   
   
   
Σ  
   
   
   
   
   
   
   
Σ  

В обох випадках контрольна сума дорівнює позиції біта, переданого зі спотворенням. Тепер для його виправлення досить інвертувати біт, номер якого вказаний у контрольній сумі. Зрозуміло, що якщо помилка станеться при передачі більш ніж одного біта, код Хеммінга при даній надмірності виявиться даремним.

Існує і модифікація алгоритмів кодування – декодування цього коду. При кодуванні формуються k контрольних символів, кожний з яких є ознакою парності для певної групи інформаційних знаків базового кодового слова. З цією метою здійснюється k групових перевірок на парність із залученням відповідних інформаційних символів і формується певне число – контрольна ознака U = u 1, u 2, u 3 ,… uk.

Для (n, m) − коду Хеммінга перевірочні символи визначаються із перевірочних рівнянь:

При декодуванні здійснюється k групових перевірок на парність із залученням відповідних інформаційних та контрольних символів і формується певне число – синдром спотворень S. В результаті кожної перевірки у відповідний символ синдрому спотворень Sі записується 0, якщо перевірка була успішною, або 1, якщо була знайдена непарність.При перевірці наявності спотворень за тими ж правилами, що розглянуті вище, розраховуються так звані елементи синдрому спотворень S i. Але при розрахунку елементів синдрому спотворень використовуються і сформовані раніше перевірочні елементи. Тобто, елементи синдрому визначаються з виразів (синдромних рівнянь):

Групи для перевірки утворюються таким чином, що в регістрі спотворень після закінчення перевірки виходить k - символьний синдром спотворень S, що показує номер позиції помилкового двійкового символу. Зміна цього символу – виправлення спотворень.

Приклад 2. Розглянемо семизначний код Хеммінга для зображення чисел від 0 до 9 (табл. 2).

Таблиця 2. Семизначний код Хеммінга

Десяткове Простій двійковий код Код Хеммінга  
число         k   k k  
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         

Хай переданий код числа 6 у вигляді “0 1 1 0 0 1 1”, а прийняли у вигляді “0 1 0 0 0 1 1”. Перевірочні групи:

I перевірка: символи 1, 3, 5, 7 – дає в молодший символ синдрому спотворень S 1 = 1.
II перевірка: символи 2, 3, 6, 7 – дає в другий символ синдрому спотворень S 2= 0.
III перевірка: символи 4, 5, 6, 7 – дає в третій символ синдрому спотворень S 3= 1.

Вміст синдрому спотворень “101”, значить помилка в п’ятій позиції.

Перевірочні рівняння використовуються для побудови кодера, а синдромні − декодера коду Хеммінга.

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 2973; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.