ey Hamming,1915—1998)因此而获得了首届计算机先驱奖。
哈明1915年2月11日生于美国芝加哥。1937年在芝加哥大学获得数学学士学位,1939年在内布拉斯加大学获得硕士学位,接着又于理查德·哈明1942年在伊利诺伊大学获得博士学位,成为一名数学专家。学成以后,他留校工作两年,然后转入肯塔基州位于俄亥俄河畔的路易斯维尔大学任教,两年后来到洛斯阿拉莫斯国家实验室,参与了著名的曼哈顿计划。但在那里哈明也只工作了两年,就又转到贝尔实验室工作。正是在这里,哈明遇到了他感兴趣和能发挥他特长课题,也有一个适宜的工作环境,因此一干是30年(1946~1976年)。这期间,他曾长期担任贝尔实验室计算机科学部主任。1976年他离开贝尔,到美国海军研究生院(Naval Postgraduate school,在加利福尼亚州的蒙特雷)工作,直到1997年82岁的高龄时才退休,次年1月7日去世,享年83岁。
哈明到贝尔实验室后接受的第一个任务就是解决通信中令人头痛的误码问题。通信时发送方发出的信息在传输过程中由于信号的衰减和外界的电磁干扰,到接收方产生了畸变和失真,获得的是错误的信息。这在商业、军事等应用中都会产生严重的后果,有时简直会祸国殃民,因此迫切需要加以解决。但在相当一段时间里,这成了摆在许许多多科学家和工程师面前的一大难题,谁也找不出解决的好办法。哈明接受这个任务以后,意识到通信线路质量的改善是有限度的,外界干扰是客观存在也无法绝对避免,因此这个问题不可能通过让发送的代码不出错这条途径去解决,而只能通过一旦出错如何发现、如何纠正才能解决。这使哈明的研究沿着正确的路线进行。经过深入探讨,1947年哈明终于发明了一种能纠错的编码,这种码就叫“纠错码”(error-correcting-code)或“哈明码”(Hamming code)。哈明码是一种冗余码,即在有效信息代码中要加入校验位,这是为纠错而必须付出的代价。其基本原理是使每一信息位参与多个不同的奇偶校验(parity check)。所谓奇偶校验是在代码中设置一个校验位通常置于代码的最左边。若整个代码中“1”的个数为奇数认为代码正确,称为奇校验(odd check);反之,若整个代码中“1”的个数为偶数认为正确,则称为偶校验(even check)。哈明码就是有多个奇偶校验位的一种代码,在适当安排下,通过这多个奇偶校验位就可以检查出代码传送中的错误并自动纠正。一般而言,对于长度为n位的代码,其中应包括r个校验位,有效信息位为n—r,r的值应满足以下公式:
2r—1≥n
下面我们举一个例子简单说明哈明码的原理。以7位字组的二进制编码的十进制数的传送为例,根据以上公式,有效信息为4位,校验位为3位。安排3、5、6、7四位为信息位,而1、2、4三位为校验位,如图所示。
发送时,信息位的内容当然是根据所要发送的十进制数是多少而定的,1、2、4三个校验位的内容是按以下规则自动生成的:
校验位1:由1、3、5、7四位的偶校验决定校验位1的内容;
校验位2:由2、3、6、7四位的偶校验决定校验位2的内容;
校验位4:由4、5、6、7四位的偶校验决定校验位4的内容。本新闻共3页,当前在第1页 1 2 3
< 1 > < 2 >
|