汉明码计算及其纠错原理详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汉明码计算及其纠错原理详解

当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell 实验室的R.W.Hamming 发明,因此定名为汉明码。

汉明码(Hamming Code),是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM )。其SECDED (single error correction,double error detection)版本另外加入一检测比特,可以侦测两个或以下同时发生的比特错误,并能够更正单一比特的错误。因此,当发送端与接收端的比特样式的汉明距离(Hamming distance)小于或等于1时(仅有1 bit发生错误),可实现可靠的通信。相对的,简单的奇偶检验码除了不能纠正错误之外,也只能侦测出奇数个的错误。

在数学方面,汉明码是一种二元线性码。对于每一个整数,存在一个编码,带有个奇偶校验位个数据位。该奇偶检验矩阵的汉明码是通过列出所有米栏的长度是两两独立。

汉明码的定义和汉明码不等式:设:m=数据位数,k=校验位数为,n=总编码位数=m+k,有Hamming不等式:

a)总数据长度为N,如果每一位数据是否错误都要记录,就需要N位来存储。

b)每个校验位都可以表示:对或错;校验位共K位,共可表示2k种状态

c)总编码长度为N,所以包含某一位错和全对共N+1种状态。

d)所以2k≧N+1 e)数据表见下

无法实现2位或2位以上的纠错,Hamming码只能实现一位纠错。

以典型的4位数据编码为例,演示汉明码的工作

D8=1、D4=1、D2=0、D1=1,

P1 =1,P2=0、P3=0。

汉明码处理的结果就是1010101

假设:D8出错,P3’P2’P1’=011=十进制的3,即表示编码后第三位出错,对照存储

相关文档
最新文档