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
相关推荐
-
AI能源使用增加,技术工作负载限制IT
能源的可用性和成本正在成为技术使用的制约因素,随着企业AI应用程序增加计算需求,IT经理必须计划解决这一问题。 […]
-
减少关键技术债务的策略
现在的IT领导者、项目经理和软件开发领导者必须优先考虑预防技术债务。 技术债务会带来深远的负面影响。出于速度或 […]
-
生成式AI能耗增加,但尚不清楚投资回报率
在为生成式AI构建商业案例时,IT领导者需要考虑很多成本考虑因素,有些显而易见,有些则是隐藏成本。 其中最明显 […]
-
CrowdStrike事件揭露关于IT的残酷真相
美国立法者希望CrowdStrike首席执行官George Kurtz解释其软件更新如何导致数千次航班取消、医 […]