реклама на сайте
подробности

 
 
> Дайте ссылку по основам кодов Хемминга, а то при поиске нахожу только фигню
irum4
сообщение Nov 22 2004, 14:06
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 18-06-04
Пользователь №: 54



Понимаю что вопрос казалось бы элементарный - google и вперед, но там такой дряни куча, что не хочеться разбираться.
Причем желательно для соотношения 12 на 8 информационных.
А также для исправления более одной ошибки.
А если кто-то уже такое реализовывал, то буду премного благодарен за исходник в любом виде.


--------------------
Электроника - наука о контактах.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Mad Makc
сообщение Nov 23 2004, 20:29
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 2-10-04
Из: Мухосранска
Пользователь №: 763



Ну а если Рид-Соломон "тяжеловат",есть ещё БЧХ.
15 бит слово,7 информационных.Правит 2 ошибки.
Go to the top of the page
 
+Quote Post
irum4
сообщение Nov 26 2004, 15:41
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 18-06-04
Пользователь №: 54



С Хеммингом разобрался. Реализовал.Всем спасибо.
С Ридом-Соломоном тоже все понятно, но он для моей задачи он не подходит, он позволяет исправлять несколько байтов из некой группы, а мне необходимо исправлять отдельные биты в словах.
И по ходу еще один вопрос. Для исправления одной ошибки для 8 бит необходимо 4 проверочных бита. А для обнаружения двух - нужен еще один разряд? Или можно обойтись теми же четырьмя? И если можно, то как?


--------------------
Электроника - наука о контактах.
Go to the top of the page
 
+Quote Post
XBG432
сообщение Nov 28 2004, 23:06
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 50
Регистрация: 27-09-04
Пользователь №: 729



Цитата(irum4 @ Nov 26 2004, 16:41)
И по ходу еще один вопрос.  Для исправления одной ошибки для 8 бит необходимо 4 проверочных бита. А для обнаружения двух - нужен еще один разряд? Или можно обойтись теми же четырьмя? И если можно, то как?
*


Постараюсь объяснить на пальцах cheers.gif
Для обнаружения однократной ошибки минимальное кодовое расстояние должно быть не меньше 2.
Пример такого кода (код с проверочным битом на четность): 000-011-101-110.
При 1х ошибке получаем некодовое слово (010). Можем только сказать, что это некодовое слово, исправить нельзя, т.к. неясно в каком кодовом слове произошла 1х ошибка: в 000(010) или в 011(010).
Декодирование кодов, подобых этому, осуществляется по методу максимального правдоподобия. Т.е., если мин. расстояние у кода 3, то это означает, что он позволяет корректировать 1х ошибки и обнаруживать все 2х ошибки. В случае возникновения 3х ошибки есть вероятность получить кодовое слово, т.е. ошибка при этом замаскируется.
Код Хемминга имеет как раз мин. расстояние 3. Т.е. для обнаружения 2х ошибок добавлять ничего не надо.
Есть еще расширенный код Хэмминга, в котором к каждому слову добавляется дополнительный проверочный бит равный сумме всех информационных и остальных проверочных (бит четности всего пакета). Мин. расстояние такого кода уже 4: корректируем 1х, обнаруживаем 2х и все ошибки нечетной кратности. 2х нельзя корректировать, т.к. такие слова лежат как раз "по середине" между кодовыми словами.
А Хэмминг с 4 проверочными битами может быть использован до 11 информационных символов. Смотря для чего и где применять...


--------------------
-=ЧИП432(XilinxBallGrid)=-
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016