推荐文档列表

提高汉明码对突发干扰的纠错能力

时间:2021-09-30 19:58:56 电子通信论文 我要投稿

提高汉明码对突发干扰的纠错能力

摘要:在简要介绍汉明码编码原理的基础上,详细分析干扰对汉明码纠错的影响;通过对汉明码重新组织排列,在不增加代码冗余的前提下,提高汉明码抗突发干扰的能力,为汉明码在实际中的应用提供新的思路;给出基于单片机的汇编语言汉明码测试程序。

    关键词:汉明码 突发干扰 纠错

引言

汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。它属于线性分组码,由于线性码的编码和译码容易实现,至今仍是应用最广泛的一类码。汉明码的抗干扰能力较强,但付出的代介也很大,比如8比特汉明码有效信息只有总编码长度的一半,可以纠正1个差错发现2个差错。在实际应用中常常存在各种突发干扰,使连续多位数据发生差错。为了纠正3个以上的差错,就要加大码距,使代码冗余度大大增加,通信效率下降。本文所介绍的方法,就可以在不加大码距的同时,提高汉明码对突发干扰所产生差错的纠错能力,纠正多位连续的差错。

1 汉明码纠错原理及设计

设原代码的码长为k比特,附加纠错编码部分为r比特,则合成后的纠错码为n=k+r比特。如果这种纠错码的纠错能力为纠正1个差错,则应满足如下基本条件:

2r≥k+r+1

当上式取等号时则称汉明码(Hamming Code)。干扰不仅使原代码的每一位(k比特(可能出错,而且附加纠错位(r比特)也可能出错,故“一个差错”的情况共有k+r种,加上“正常”状态共有k+r+1种状态,而r比特的附加纠错位要能分辨这k+r+1种状态。

汉明码是线性分组码,[n,k]线性分组码的编码设计就是在满足给定条件(如码距)下,如何从已知的k个信息元中求同r=n-k个校验元。要计算出校验元,就要先求出汉明码校验矩阵。我们可以从线性空间的角度去分析,推出一致校验矩阵。这里给出构造“纠正1个差错发现2个差错”汉明码校验矩阵的简便方法。以实际应用中经常使用的16位比特汉明码为例来说明。

15比特汉明码由11位信息位、4位校验位组成,因此,编码长度为n=k+r=11+4=15。我们把1,2,3,…,15化为二进制数,然后把它们作为矩阵的纵列,可得到的矩阵为:

将包含单个1的4个纵列移到右边,在最后加1列全0的纵列,在第1行上面加1行全1的横行。这样就得到了[16,11,4]可纠正1位错误发现2位错误的增广汉明码校验矩阵。可以根据编程要求组织信息位和校验位的位置,最后得到矩阵如下:

D1、D2、D4、D8是校验位,D16是全字节偶校验位,其余11位是信息位。校验码分别是C0=0AB61H,C1=0CDA2H,C2=0F1C4H,C3=0FE08H,C4=0FFFFH。

2 用汉明码对连续多位差错纠正的

[1] [2]