前些天在网上看到很多人在问海明校验码的问题,看了很久的都没有找的自己想要的信息,今天正好有点时间就整理了一下:
海明校验码实际上是一种多重奇偶效验,其实现原理是:在有效信息位中加入几个效验为形成海明码,把海明码的每一个二进制位分配到几个奇偶校验组中,当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出错误的位置,为自动纠错提供了依据。
- 其中效验位 K和信息为N 应满足下列关系: 2k>=N + K + 1(单错位), 2k-1 >=N + K + 1(单纠错/双检错)
其实这些都不是最关键的问题,最关键的问题在于是如何确定效验位值:
位别名H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12
位信息P1 P2 D1 P3 D2 D3 D4 P4 D5 D6 D7 D8
我们首先来看H位对应的P效验位
//H1 = P1(此时H1就是P1的别名)
//H2 = P2(此时H2就是P2的别名)
H3= P1,P2(3= 1+2&#