2010-10-18 5 views
0

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

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

ответ

1

Для генерируемой матрицы генератора ваша интерпретация верна. Ваши таблицы означают:
H0 = D1, D2^^ Д4
H1 = D2, D3,^^ Д4
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}, то пятый бит (101, интерпретируемый в базе 2) был перевернут. В приведенном выше порядке это означает, что D2 перевернут.

0

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

+0

Спасибо, что уже прочитал wiki-страницу. Моя проблема заключается в том, что, хотя я уверен, что понимаю основы кода Хэмминга, данные реального мира не появляются так, как должны.Одной из возможных причин этого является то, что моя реализация неверна, поэтому мне просто нужно, чтобы кто-то подтвердил это так или иначе. – IanW

Смежные вопросы