附:复习过程中在网上查资料,整理过后的一篇文章,引用了名家的博客内容,作总结
首先,了解异或运算的概念:
参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。
注:p(i)代表校验位,b(i)代表数据位
校验位的值代表了代码字中部分数据位的奇偶性,其所在位置决定了要校验和跳过的比特位顺序。 位置1:校验1位,跳过1位,校验1位,跳过1位(1,3,5,7,9,11,13,15,…) 位置2:校验2位,跳过2位,校验2位,跳过2位 (2,3,6,7,10,11,14,15,…) 位置4:校验4位,跳过4位,校验4位,跳过4位 (4,5,6,7,12,13,14,15,20,21,22,23,…) 位置8:校验8位,跳过8位,校验8位,跳过8位(8-15,24-31,40-47,…) 以此类推...
G1=p1⊕b1⊕b2⊕b4⊕b5⊕……
G2=p2⊕b1⊕b3⊕b4⊕b6⊕b7⊕b10⊕b11⊕……
G3= p3⊕b2⊕b3⊕b4⊕b8⊕b9⊕b10⊕b11⊕……
G4= p4⊕b5⊕b6⊕b7⊕b8⊕b9⊕b10⊕b11⊕……
G5= p5⊕b12⊕b13⊕b14⊕b15⊕b16⊕b17⊕b18⊕b19⊕b20⊕b21⊕b11⊕b23⊕b24⊕b25⊕b26⊕……
正常情况下(也就是整个码字不发生差错的情况下),在采用偶校验时,各校验组通过异或运算后的校验结果均应该是为0,也就是前面所说的G1、G2、G3、G4,……均为0,因为此时1为偶数个,进行异或运算后就是0;而采用奇校验时,各组校验结果均应是为1。