关于海明码的原理和计算

image.png
image.png
image.png

综合上面我们求一下信息1011的海明码是多少?

答:
我们知道信息位有4位,即为n=4,求得公式中校验位K=3。所以海明码一共7位:H7-H1 ; 信息位:D3-D0; 校验位:P3-P1。

求P3-P1在海明码中的位置。根据图中下面这句话。我们可以求得位置。


image.png

p1= 2的(1-1)次方=1
p2=>2
p3=>4

H7 H6 H5 H4 H3 H2 H1
D3 D2 D1 P3 D0 P2 P1
1 0 1 P3 1 P2 P1

校验位在海明码中的位置:P1----1 P2----2 P3----4
现在我们需要求得P1-P3的值,我们的海明码就出来了。

image.png

我们需要根据上图里面的这句话来得出信号位是通过那几位校验码校验的。
H1(P1)----->P1
H2(P2)----->P2
H3(D0)------>3=1+2 ---> P1,P2
H4(P3)----->P3
H5(D1)-----> 5=4+1----> P3,P1
H6(D2)----->6=4+2 ---->P3,P2
H7(D3)----->7=4+2+1---> P1,P2,P3

eg: H7 下标为7, 校验码下标有1,2,4。 则需要7=4+2+1 。所以P1,P2,P3都参与了D3的校验。

接下来我们统计一个各个校验位校验的信号位有哪些。
P1---->P1,D0,D1,D3
P2---->P2,D0,D2,D3
P3---->P3,D1,D2,D3
进行异或运算(相同为0,相异为1)
P1=D0⊕D1⊕D3=111=1
P2=D0⊕D2⊕D3=101=0
P3=D1⊕D2⊕D3=101=0

所以海明码为:1010101。

检错计算: 本来是1011,假如传过来的是1001。(D1出错了)
则从又到左D0=1 D1=0, D2=0, D3=1
G1=P1⊕D0⊕D1⊕D3=1101=1
G2=P2⊕D0⊕D2⊕D3=0
101=0
G3=P3⊕D1⊕D2⊕D3=000*1=1

G3G2G1=101

如果是偶校验,则需要全部为0,如果是奇校验全部为1。
101的10进制。则是海明码里面的第5位出错。H5(D1)出错。则D1取反,得到。1001-->1011 。 这样就实现了检错,改错了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 海明(汉明)码是广泛采用的一种有效的校验码,它实际上是一种多重奇偶校验码。 海明码的原理就是在有效信息位中加入几个...
    Julianlee107阅读 17,777评论 0 6
  • 奇偶校验、海明码、CRC循环冗余校验码 三种校验码比较重要,需要牢记,在计算机网络中用处较大 奇偶校验 根据被传输...
    正经龙阅读 9,508评论 0 1
  • 最近准备参加计算机软件与理论考试,做题时遇到了海明码,着实让人头痛,接下来分享一下自己的学习心得! 海明码 ...
    思凡下界的小明阅读 763评论 0 0
  • 汉明码是Richard Hamming于1950年提出的。是目前广泛采用的一种有效的校验码,其中,主存的ECC(E...
    boweichan阅读 13,195评论 3 3
  • 当你不行的时候 就请到马路上站着,因为你会发现都是,行人 我们会为了一个信念而活 让信念在心中扎根、成长 水的宁静...
    Swider_b1d3阅读 237评论 0 0