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
相关推荐
-
为什么CIO应雇佣年长的IT员工:战略优势
由于全球IT人才短缺,企业不应忽视年长员工。 根据Manpower Group的2025年全球人才短缺报告,全 […]
-
首席信息官如何减少技术债务
虽然债务曾经被简单地称为“欠款”,但技术采用率的提高带来新型债务,困扰着公司和IT领导者。技术债务是指与依赖次 […]
-
区块链与传统数据库:区别和用例
区块链和数据库技术有很多相似之处和不同之处,它们经常被拿来比较。 虽然区块链和数据库技术都专注于存储和管理数据 […]
-
专家称:美国政府入股英特尔无法解决长期困境
近日英特尔与美国政府达成协议,美国政府将入股英特尔,此举可能有助于应对科技行业的危机,但这并不意味着这家陷入困 […]