Код Хэмминга, заданный вопрос о матрице генератора - PullRequest
0 голосов
/ 18 октября 2010

Могу ли я просто сказать с самого начала, что это не домашний вопрос, так как я способ старый для этого. Но это связано с проектом радио декодера с открытым исходным кодом, над которым я работаю ..

http://github.com/IanWraith/DMRDecode

Часть интересующего меня радиопротокола использует код Хемминга (7,4,3) для защиты 4 бита в конкретной части пакета данных. Таким образом, на каждые 4 бита данных он добавляет 3 бита четности, что достаточно легко для меня даже через 20 лет после того, как я изучал это в технический колледж. Документ спецификации просто дает матрицу генератора Хемминга, которая выглядит следующим образом

1000 101
0100 111
0010 110
0001 011

DDDD HHH
1234 210

Теперь мой вопрос: означает ли это следующее ...

H2 - это XOR-произведение D1, D2, D3

H1 - это XOR-произведение D2, D3, D4

H0 - это XOR-произведение D1, D2, D4

или я это неправильно понял?

Спасибо за ваше время.

Ian

Ответы [ 2 ]

1 голос
/ 19 октября 2010

Для матрицы генератора, которую вы даете, ваша интерпретация верна.Ваши таблицы означают:
H0 = D1 ^ D2 ^ D4
H1 = D2 ^ D3 ^ D4
H2 = D1 ^ D2 ^ D3

Тем не менее, нормальный Хэмминг (7,4) матрицы, в тех же обозначениях будет

1000 011
0100 101
0010 110
0001 111

DDDD HHH
1234 210

Только H0 одинакова среди двух наборов матриц.Два других бита:
H1 = D1 ^ D3 ^ D4
H2 = D2 ^ D3 ^ D4
Было бы удобно убедиться, что спецификация действительно соответствует тому, что сделано на практике.

Не менее важна спецификация порядка бит в передаваемом слове.Например, для типичного кодирования Хемминга (7,4) порядок
H0, H1, D1, H2, D2, D3, D4
имеет свойство, о котором XOR с матрицей проверки на четность говорит вам либо (1) что все биты кажутся правильными (== {0,0,0}) или (2) один бит представляется неправильным, и это один бит в позиции бита, заданный результатом матрицы проверки на четность.Т.е., если три бита, возвращенные умножением принятого кода на матрицу проверки на четность, равны {1, 0, 1}, то 5-й бит (101, интерпретированный в базе 2) был перевернут.В приведенном выше порядке это означает, что D2 перевернут.

0 голосов
/ 18 октября 2010

Эта статья, Хэмминга (7,4) , расскажет вам больше, чем вы хотите знать о том, как создавать биты четности и где они кодируются в вывод.

...