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
相关推荐
-
缓解多云治理挑战的5个最佳做法
部署多云模型会给云团队带来更多的复杂性和管理挑战。这些挑战影响着企业环境的方方面面,包括设计、部署、配置、运营 […]
-
联合国决议表明全球关注AI规则和原则
联合国大会周四通过了一项关于人工智能的最终决议,这是朝着全球合作迈出的一步-关于如何使用人工智能和全球支持保护 […]
-
4个需要解决的虚拟现实道德问题
虚拟、增强和混合现实(统称为扩展现实XR)的增长导致出现分歧。一边是用户和供应商,另一边是法律专家和伦理学家& […]
-
如何逐步改进和优化业务流程
随着企业的发展壮大,他们的业务流程也在不断发展。根据企业的规模不同,企业内部和外部的利益相关者每天都会参与数十 […]