2010-10-18 173 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是D1,D2的异或的产品,D3

H1是D2,D3的XOR运算产品,D4

H0是D1,D2的异或的产品,D4

或有我得到了这个可怕的错误?

谢谢你的时间。

伊恩

回答

1

对于您给出的生成矩阵,您的解释是正确的。您的表格做意味着:
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)编码,具有与奇偶校验矩阵异或的告诉您或者(1)的性质H0,H1,D1,H2,D2,D3,D4
所有比特似乎都是正确的(== {0,0,0})或(2)一个比特似乎是错误的,并且它是由奇偶校验矩阵的结果给出的比特位置中的一个。即,如果通过将接收到的码乘以奇偶校验矩阵而返回的三个比特是{1,0,1},则第五比特(在基2中解释的101)已经被翻转。在上述顺序中,这意味着D2已翻转。

0

这篇文章,Hamming(7,4),会告诉你,比你想知道如何构建奇偶校验位,并在那里被编码成输出。

+0

谢谢我已经阅读了wiki页面。我的问题是,虽然我很确定我了解海明码的基础知识,但真实世界的数据并没有像它应该出现的那样出现。其中一个可能的原因是我的实现是不正确的,因此我只需要有人以某种方式确认它。 – IanW 2010-10-18 18:48:42