Какво е Hamming Code: История, работа и нейните приложения

Опитайте Нашия Инструмент За Премахване На Проблемите





В цифровите системи предадените данни за комуникация може да се повреди поради външен шум и всякакви други физически повреди. Ако предадените данни не съвпадат с дадените входни данни, тогава това се нарича „грешка“. Грешките в данните могат да изтрият жизненоважни данни в цифровите системи. Прехвърлянето на данни ще бъде под формата на битове (0 и 1) в цифрови системи. Ако някой от бита бъде променен, тогава може да се повлияе на производителността на цялата система. Ако битът „1“ е променен на бит „0“ или обратно, тогава той се нарича битова грешка. Има различни видове грешки като единични битови грешки, множество грешки и грешки при спукване. В тази статия ние обсъждаме корекция и откриване на грешки и код на Hamming.

Какво е откриване и коригиране на грешки?

При цифровата комуникация данните ще бъдат загубени, ако има грешка при прехвърлянето на информация от една система / мрежа към друга система / мрежа. Така че, важно е да се намерят и коригират грешки. Някаква грешка откриване и методи за корекция се използват за откриване и коригиране на грешките за ефективна комуникация. Ако се използват тези методи, тогава данните могат да се прехвърлят с по-висока точност.




Откриването на грешки се определя като метод, използван за откриване на грешките, предавани от предавател / подател към получател в цифрови системи. Кодовете за резервиране се добавят към данните по време на предаването, за да се намерят грешките. Те се наричат ​​кодове за откриване на грешки.

Корекция на грешки е корекция на данни, предавани от предавател към приемник. Коригирането на грешки може да се извърши в два вида.



Корекция на грешка назад

При този тип корекция на грешки, получателят иска обратно подателя да препредава данните, ако приемникът открие грешката.

Препращане на грешка напред

ако данните, получени от получателя, открият грешката, той изпълнява кодовете за коригиране на грешки, за да коригира и възстанови данните автоматично.


Ако има „m“ номер на битове за данни и „r“ номер на излишни битове, тогава комбинациите от информация ще бъдат 2r.

2r> = m + r + 1

Видове кодове за откриване на грешки

Грешките в получените данни могат да бъдат открити чрез използване на 3 вида кодове за откриване на грешки. Те са, проверка на четността, проверка на циклична излишък (CRC) и проверка на надлъжна излишък.

Проверка на паритета

Излишният бит, наречен паритетен бит, се добавя, за да направи броя на битовете четен или нечетен в случай на четен паритет или нечетен паритет. Приемникът отчита броя на битовете (1) в кадър, за да добави бита за четност. Това се нарича проверка на паритета. Ако номерът на 1 в даден кадър е четен, тогава се използва четен паритет чрез добавяне на бита „1“ с нулева стойност. По същия начин, от номер 1 е нечетен, тогава се използва нечетен паритет чрез добавяне на бита със стойност „1“.

Откриване на грешки

откриване на грешки

Следователно, той се използва, за да се гарантира, че кадърът / датата, получени от приемника от източника, не са повредени. При този тип откриване на грешки номер 1 трябва да бъде равномерен в получения кадър. Това е много по-евтино сред всички видове откриване на грешки.

Проверка на надлъжно резервиране (LRC)

след това наборът / блокът битове са организирани, тогава LRC методът може да се използва за проверка на бита за четност във всеки кадър. Помага за изпращане на набора битове за четност заедно с оригиналните данни и проверява резервирането.

Проверка на цикличността

неговият тип се използва за откриване на данните / кадрите, получени от източника, са валидни или не. Той включва в бинарното разделяне на данните, които трябва да бъдат изпратени, и използва полиноми (за генериране на делител). Преди предаването , операцията на разделяне се извършва от подателя върху данните / битовете / рамката, за да се изчисли остатъкът.

Проверка на цикличността

проверка на цикличността

По време на предаването на действителните данни от подателя, той добавя останалата част в края на действителните данни. Комбинацията от действителни данни и останалата част се нарича кодова дума. Данните се предават под формата на кодови думи. В този процес, ако данните са повредени, данните ще бъдат отхвърлени от получателя, в противен случай ще бъдат приети.

Какво представлява кода на Хаминг?

Хаминг кодът се дефинира като линеен код, който се използва в процеса на откриване на грешки до 2-междинни грешки. Той също така е в състояние да открива еднобитови грешки. При този метод излишните битове се добавят към данните / съобщението от подателя, за да кодират данните. За да се извърши откриване и коригиране на грешки, тези излишни битове се добавят в определени позиции за процеса на коригиране на грешки.

Хаминг-код

код на Хаминг

История на кодовете на Хаминг

През 1950 г. Ричард У. Хаминг изобретява кодове на Хаминг, за да открие и коригира грешките в данните. След еволюцията на компютрите с по-висока надеждност, той въвежда кодове на Hamming за кодове за коригиране на 1 грешка и по-късно разширява до кодове за откриване на 2 грешки. Кодовете на Хаминг се създават, тъй като проверката на паритета не може да открие и коригира грешки в данните. Кодовете на Хаминг се вмъкват във всяка блокова дължина на данните между действителните данни и битовете за резервиране. Той разработи набор от алгоритми за работа по проблемите на методите за корекция на грешки и тези кодове се използват широко в паметта на ECC.

Процес на кодиране на съобщение с помощта на код на Хаминг

Процесът на кодиране на съобщение с помощта на код на Hamming от подателя включва 3 стъпки.

Етап 1: Първата стъпка е да се изчисли броят на излишните битове в съобщението

  • Например, ако съобщението съдържа „n“ номер битове и „p“ номер излишни битове се добавят към съобщението, тогава „np“ показва (n + p + 1) различни състояния.
  • Където (n + p) представлява местоположението на грешка във всяка битова позиция
  • 1 (допълнително състояние) не представлява грешка.
  • Тъй като ‘p’ означава 2 ^ p (2p) състояния, които са равни на (n + p + 1) състояния.

Стъпка 2: Поставете излишните битове в точно / правилно положение

„p“ битове се вмъкват в битовите позиции, които са мощността на 2 като 1, 2, 4, 8, 16 и т.н. Тези битови позиции са обозначени като p1 (позиция 1), p2 (позиция 2), p3 (позиция 4) и т.н.

Стъпка 3: Изчислете стойностите на излишните битове

  • Тук битовете за четност се използват за изчисляване на стойностите на излишните битове.
  • Паритетните битове могат да направят номер 1 в съобщението четен или нечетен.
  • Ако общият брой на 1 в съобщението е четен, тогава се използва дори паритет
  • Ако общият брой на 1 в съобщението е нечетен, тогава се използва нечетен паритет.

Процес на дешифриране на съобщение в кода на Хаминг

Процесът на дешифриране на съобщение, получено от подателя от получателя с помощта на кода на Hamming, включва следните стъпки. Този процес не е нищо друго освен преизчисляване за откриване и коригиране на грешките в съобщението.

Етап 1: Пребройте броя на излишните битове

Формулата за кодиране на съобщението чрез излишни битове е,

2p≥ n + p + 1

Стъпка 2: коригирайте позициите на всички излишни битове

„P“ номер на излишните битове се поставят в битови позиции с мощност 2 като 1,2,4,8,16,32 и т.н.

Стъпка 3: проверка на четността (нечетен паритет и четен паритет)

Паритетните битове се изчисляват въз основа на номер 1 в битовете за данни и излишните битове.

Например

Паритетът на p1 ще бъде 1, 3, 5, 7, 9, 11, ...

Паритетът на p2 ще бъде 2, 3, 6, 7, 10, 11, ...

Паритетът на p3 ще бъде 4-7, 12-15, 20-23, ...

Предимства на кода на Хаминг

Основното предимство на използването на Hamming код е рентабилно, ако потокът от данни съдържа еднобитови грешки.

  • Той може да осигури откриване на грешки и също така показва бита, който съдържа грешка за корекция.
  • Хаминг кодовете са много лесни и най-добри за използване в компютърната памет и еднобитово коригиране и откриване на грешки.

Недостатъци на кода на Хаминг

  • Най-добре е само за еднобитова корекция и откриване на грешки. Ако грешки от няколко бита, тогава цялата може да бъде повредена.
  • Алгоритъмът на Хаминг код може да разрешава само еднобитови грешки.

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

Хаминг кодовете се използват в,

  • Изчислителна техника
  • Телекомуникации
  • Компресиране на данни
  • Решаване на пъзели и турбо кодове
  • Сателити
  • Плазмен CAM
  • Екранирани проводници
  • Модеми
  • Компютърна памет
  • Отворени съединители
  • Вградени системи и процесор

Често задавани въпроси

1). Може ли кодът на Хаминг да открие 2-битови грешки?

Хаминг кодовете могат да откриват и коригират до 2-битови грешки в поток от данни

2). Как поправяте кода на Хаминг?

Хаминг кодовете се поставят във всякаква дължина на данни между действителните данни и излишните битове. Тези кодове са места с минимално разстояние от 3 бита

3). Какъв е кодът на паритета?

Кодът за паритет или битът за паритет добавя бит към получения кадър (данните съдържат 1 и 0), за да направи общия брой битове (1) четен или нечетен.

4). Какво е разстоянието на Хаминг между данните?

Разстоянието на удари между двата различни потока от данни с еднаква дължина е не на 1.

Разстоянието на удари между два низа с еднаква дължина на данни може да бъде изчислено с помощта на операцията XOR.

Например a = 11011001

b = 10011101

Разстоянието на Хаминг може да се изчисли като,

11011001 ⊕ 10011101 = 01000100 (брой на 1 бита е 2)

Разстоянието на удар е номер 1 на резултантния поток от данни

И така, d (11011001, 10011101) = 2

По същия начин 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Цикличен ли е кодът на Хаминг?

Да, кодовете на Hamming са еквивалентни на циклични кодове, които могат да се използват като кодове за откриване на грешки.

По този начин всичко е свързано с корекция и откриване на грешки, видове откриване на грешки, кодове на Хаминг , процесът на криптиране и дешифриране на съобщението с помощта на кодове на Хаминг, приложения на кодове на Хаминг, предимства и недостатъци на кодовете на Хаминг. Ето въпрос към вас: „Какви са приложенията за откриване и коригиране на грешки?“