纠错算法(Error correction algorithm)是建立在概率统计的基础上的:出现2个差错的概率远小于出现1个差错的概率,而出现3个差错的概率又远小于出现2个差错的概率。从而有理由认为:当接收到的代码是一个非法的代码时,它的正确代码应该是在逻辑空间中离它最近的有效代码。
工作原理
汉明码
如果某种编码的合法代码之间的最小码距为1(所有的顺序编码都是如此),显然没有检错能力,更没有纠错能力。要想使得其具有纠错能力,必须进行改造,或者按某种纠错码格式重新编码,或者在原编码的基础上附加一部分代码,使其满足纠错码的条件。后一种方法比较方便,只是在发送时临时附加一部分代码,接收端利用它进行纠错处理后就舍弃,使原代码部分维持不变,汉明码就是这一类型的纠错码。
检二纠一码
包含4位有效信息的汉明码只能发现并纠正一个差错,如果出现两个差错,就会被它强行“纠正”成另外一个合法代码,造成不被发现的错误。例如发方将十六进制数6按7位汉明码66H发出,在接收过程中如果出现两个差错而变成60H,经纠错处理使得到68H,还原后就成为十六进制数8,这就产生了错误。能否进一步提高编码的性能,使它在出现两个差错时能够及时发现而不乱加纠正呢?根据检错理论,只要将有效编码之前的最小码距加大到4就可以达到这个目的,这就是“检二纠一码”。
7位汉明码在实际使用中是用1字节来表示的,如果把浪费了的1位也利用起来,无疑会进一步提供抗干扰性能。
要想在不加大码距的前提下