Байт корекция - грешки в битовете
Здравейте,
нали знаете че е възможно да има загуба на информация при преноса й. Например ако аз пратя на Иван байтът 123(0111 1011), а той получи 251(1111 1011). Очевидно има грешка в първия бит. Чувал съм че мога да добавя допълнителни 3 бита, чрез които Иван може да определи има ли грешка в 2 от 8-те бита и да поправи ако грешката е само в 1 бит.
Седях доста време и добавях битове и ги обозначавах и стигнах до там че с 7 допълнителни бита правя това(поправям 1 грешка и определям 2). Но с 7 не с 3.
Някой да има по-добро решение? или идея? или информация?
btw ако грешките са 3 - най-вероятно поправям верен бит и увеличавам грешките!* :shocked:
данке
Re: Байт корекция - грешки в битовете
Не съм наясно точно кой алгоритъм ти трябва, затова давам линкове кък добрия стар CRC и още един. Почети и виж какво ти трябва точно.
http://en.wikipedia.org/wiki/Cyclic_redundancy_check
http://en.wikipedia.org/wiki/Reed-So...ror_correction
Бих се поинтересувал какъв алгоритъм се ползва от модемите за корекция на грешката.
Надявам се да съм бил полезен.
Re: Байт корекция - грешки в битовете
Трябва ти двоичен линеен [11,8,2] шумозащитен код.
Но в него има думи, на разстояние 2, което значи, че не може да поправи 1 грешка...
А по-добър код с тези параметри няма.
Обикновено стратегията е такава: изследва се шума по канала и се преценява колко грешки могат да възникнат в пакет с дадена дължина. След това се преценява кой е оптималния код, който да може да поправи всички грешки.
С други думи, ако очакваш да могат да възникнат 3 грешки в пакет с дължина 11, трябва да разшириш с повече битове.
Ако очакваш 1 от 12, разширявай с 4 (утре ще опитам да сметна как, ако не си го намерил).
Re: Байт корекция - грешки в битовете
спомням си, че с Hamming се засичат 1 или 2 битови грешки и да се лекува 1 бит. Има нещо като Hamming + extra parity проверка за засичане 2 битови грешки и поправяне на 1 бит, или засичане 1,2,3 битови грешки без да можеш да поправяш, но не си спомням много. Или по-точно не знам много по въпроса, остава за теб варианта да се поровиш за информация по въпроса.
Re: Байт корекция - грешки в битовете
С код на Хеминг се правеха старите памети на ЕИМ
Помня, че към 32 бита се добавяха 7 за корекция на единична и откриване на двойна грешка.
За 8 бита, вероятно 3 ще стигат
http://asics.chuckbenz.com/HammingCode.html
тук има нещо по въпроса