Hamming code:汉明码
当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码(Hamming code)。
与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。
在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。但这种方法比简单重传协议的成本要高。汉明码利用奇偶块机制降低了前向纠错的成本。
进行奇偶校验的方法是先计算数据中1的个数,通过增加一个0或1(称为校验位),使1的个数变为奇数(奇校验)或偶数(偶校验)。例如,数据1001总共是4个比特位,包括2个1,1的数目是偶数,因此,如果是偶校验,那么增加的校验位就是一个0,反之,增加一个1作为校验位。通过“异或”运算来实现偶校验,“同或”运算来实现奇校验。单个比特位的错误可以通过计算1的数目是否正确来检测出来,如果1的数目错误,说明有一个比特位出错,这表示数据在传输过程中受到噪音影响而出错。利用更多的校验位,汉明码可以检测两位码错,每一位的检错都通过数据中不同的位组合来计算出来。校验位的数目与传输数据的总位数有关,可以通过汉明规则进行计算:
d+p+1的p次方<=2的p次方
d表示传输数据位数目,p表示校验位数目。两部分合称汉明码字,通过将数据位与一个生成矩阵相乘,可以生成汉明码字。
最近更新时间:2008-06-17 EN
相关推荐
-
专家称:美国政府入股英特尔无法解决长期困境
近日英特尔与美国政府达成协议,美国政府将入股英特尔,此举可能有助于应对科技行业的危机,但这并不意味着这家陷入困 […]
-
2025年如何吸引科技人才:7个要点
在争夺人才时,从首席信息官到一线招聘人员,都应该了解如何吸引出色的IT和技术团队。 提高工资、提供工作与生活的 […]
-
黑帽大会:Halcyon和Sophos联手阻击勒索软件
网络安全专家Halcyon和Sophos合作建立一家威胁情报共享合资企业,这两家公司将交换关键指标数据,例如威 […]
-
对于ASM,CISO角色可增加运行时安全、令牌化
攻击面管理(ASM)是不断发展的网络安全领域,ASM旨在识别内部和外部漏洞,提供建议,并观察新出现的威胁。如果 […]