Код Hamming с учетом вопроса о матрице генератора

StackOverflow https://stackoverflow.com/questions/3959382

  •  08-10-2019
  •  | 
  •  

Вопрос

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

http://github.com/ianwraith/dmrdecode.

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

1000 101
0100 111
0010 110
0001 011

DDDD HHH
1234 210

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

H2 - продукт Xore D1, D2, D3

H1 - это продукт Xore D2, D3, D4

H0 - продукт Xore D1, D2, D4

Или я получил это ужасно не так?

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

Ян

Это было полезно?

Решение

Для генератора Matrix вы даете, ваша интерпретация правильная. Ваши таблицы означают:
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 был перевернут.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top