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

 
 
> Дайте ссылку по основам кодов Хемминга, а то при поиске нахожу только фигню
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
Ответов (1 - 6)
XBG432
сообщение Nov 22 2004, 20:39
Сообщение #2


Участник
*

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



Попробуй почитать классику - на серваке в разделе pub/DOC/Books лежит аж три версии книги Р.Блэйхута "Теория и практика кодов контролирующих ошибки".
А по поводу "гугла" - абсолютно согласен, что там "дряни" куча, но можешь глянуть сюда:

http://direct.xilinx.com/bvdocs/appnotes/xapp383.pdf
http://people.bu.edu/ska/project3.pdf

Если требуется исправлять более одной ошибки, это уже не Хэммингsmile.gif
например код Рида-Соломона:

http://sourceforge.net/projects/rstk/
http://www.4i2i.com/reed_solomon_ip_cores.htm


--------------------
-=ЧИП432(XilinxBallGrid)=-
Go to the top of the page
 
+Quote Post
Mad Makc
сообщение Nov 23 2004, 20:29
Сообщение #3


Местный
***

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



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


Местный
***

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



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


--------------------
Электроника - наука о контактах.
Go to the top of the page
 
+Quote Post
hlebn
сообщение Nov 26 2004, 22:38
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-10-04
Пользователь №: 963



На сколько помню. Хеминг исправляет все одиночные и обнаруживает все двойные ошибки. Так что еще один бит не нужен.
Рид Соломон делает все тоже самое только еще перемежает биты так что помеха искажающая несколько соседних бит в потоке на самом деле искажает по одному биту в разных информационных байтах(словах) которые по отдельности потом можно восстановить. это так примитивно популярное объяснение принципа. если требуется передавать потоки информации по последовательному каналу то лучше использовать рида соломона.
Go to the top of the page
 
+Quote Post
XBG432
сообщение Nov 28 2004, 23:06
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 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
Slavik
сообщение Nov 29 2004, 11:16
Сообщение #7


Частый гость
**

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



Ключевая фраза здесь, как упоменалось выше, "минимальное кодовое расстояние". Чем больше у тебя избыточность в проверочных битах, тем выше корректирующая/контролирующая способность кода. Надо только правильным образом сформировать эти битики.
Go to the top of the page
 
+Quote Post

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

 


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


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