Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Кодування з виправленням помилок

В процесі передавання каналами зв’язку чи зберігання на носіях даних інформація може бути пошкоджена

Для виявлення пошкодження інформації, а також її відновлення використовуються спеціальні методи кодування

Найпростіша схема кодування для виявлення помилок полягає у наступному:

сторона, що передає дані, використовує певний алгоритм для розрахунку контрольної суми даних, яка передається разом із самими даними;

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

Перевірка парності/непарності

Найпростіший алгоритм такого кодування – “перевірка парності”: для кожного переданого байту підраховується сума одиничок, і у окремому біті заноситься “0” чи “1” в залежності від того, відповідно, чи є сума парною, чи ні. Таким чином, сума бітів у байті (разом із додатковим бітом) завжди є парною (чи непарною, якщо використовується перевірка непарності).

 

Поблокова перевірка парності/непарності

Алгоритм CRC

Алгоритм CRC (Cyclic Redundancy Check) є одним з найпоширеніших алгоритмів контролю цілісності даних.

Ідея алгоритму полягає у наступному: будь-яка послідовність даних може бути представлена у вигляді послідовності двійкових бітів, поділивши цю послідовність на деяке фіксоване число можна отримати залишок від ділення, який і буде являти собою шукану контрольну суму.

Незначні зміни даних, як правило, приводять до суттєвих змін залишку, у такому разі алгоритм дозволяє дуже ефективно виявляти помилки у даних.

Для зручності розрахунку CRC операції проводяться над поліномами, за допомогою яких представляються числа.

Існують стандартизовані поліноми:

Виправлення помилок

Виправлення помилок дещо складніше за їх виявлення

Процедура виправлення помилки передбачає два послідовних процеси: виявлення помилки та визначення місця, де вона відбулася.

 

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

Звичайно цей код характеризується двома цілими числами, наприклад (11,7), які означають, що при передачі 7-бітного коду (у минулому стандартне для США ASCII-кодування) передається додатково 4 контрольних біти (11 – 7 = 4).

Приклад використання коду Хемінга

Приклад. Необхідно передати літеру s = 1110011.

Передача буде здійснюватись наступним чином:

(*) – місце для контрольних бітів, ціла ступінь 2 (1,2,4,8)

 

Контрольна сума визначається як операція XOR над кодами позицій ненульових бітів. У даному разі це 11, 10, 9, 5 та 3.

Розрахунок:

 

Таким чином, передаватися буде наступний код:

 

У даному разі контрольна сума за операцією XOR для усіх ненульових

бітів буде рівна нулю:

Приклад використання коду Хемінга (продовж.)

Тепер уявимо, що виникла помилка у біті посилки №7 (1 замість 0), розрахунок контрольної суми дасть наступний результат:

 

Отримана ненульова контрольна сума свідчить про наявність помилки, а її значення – позицію біта, який необхідно інвертувати:

1112 = 710

 

Обмеження коду Хемінга

Код може усувати помилку лише у одному біті, якщо відбувається декілька помилок, то використання коду для виправлення неможливе.

Для збільшення діапазону виправлення помилок використовується більш складна загальна форма коду BCH (Bose-Chadhuri-hocquenghem).

Позиційна система корекції помилок

Передбачає блочний розрахунок кодів парності у декількох вимірах.

<== предыдущая лекция | следующая лекция ==>
Арифметика великих чисел | Стиснення даних
Поделиться с друзьями:


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


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



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




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