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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
  摘要在简要介绍汉明码编码原理的基础上,详细分析干扰对汉明码纠错的影响;通过对汉明码重新组织排列,在不增加代码冗余的前提下,提高汉明码抗突发干扰的能力,为汉明码在实际中的应用提供新的思路;给出基于单片机的汇编语言汉明码测试程序。   关键词汉明码突发干扰纠错   引言   汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。   它属于线性分组码,由于线性码的编码和译码容易实现,至今仍是应用最广泛的一类码。   汉明码的抗干扰能力较强,但付出的代介也很大,比如8比特汉明码有效信息只有总编码长度的一半,可以纠正1个差错发现2个差错。   在实际应用中常常存在各种突发干扰,使连续多位数据发生差错。   为了纠正3个以上的差错,就要加大码距,使代码冗余度大大增加,通信效率下降。   本文所介绍的方法,就可以在不加大码距的同时,提高汉明码对突发干扰所产生差错的纠错能力,纠正多位连续的差错。   1汉明码纠错原理及设计   设原代码的码长为比特,附加纠错编码部分为比特,则合成后的纠错码为=+比特。   如果这种纠错码的纠错能力为纠正1个差错,则应满足如下基本条件   2≥++1   当上式取等号时则称汉明码。   干扰不仅使原代码的每一位比特可能出错,而且附加纠错位比特也可能出错,故一个差错的情况共有+种,加上正常状态共有++1种状态,而比特的附加纠错位要能分辨这++1种状态。   汉明码是线性分组码,[,]线性分组码的编码设计就是在满足给定条件如码距下,如何从已知的个信息元中求同=-个校验元。   要计算出校验元,就要先求出汉明码校验矩阵。   我们可以从线性空间的角度去分析,推出一致校验矩阵。   这里给出构造纠正1个差错发现2个差错汉明码校验矩阵的简便方法。   以实际应用中经常使用的16位比特汉明码为例来说明。   15比特汉明码由11位信息位、4位校验位组成,因此,编码长度为=+=11+4=15。   我们把1,2,3,…,15化为二进制数,然后把它们作为矩阵的纵列,可得到的矩阵为   将包含单个1的4个纵列移到右边,在最后加1列全0的纵列,在第1行上面加1行全1的横行。   这样就得到了[16,11,4]可纠正1位错误发现2位错误的增广汉明码校验矩阵。   可以根据编程要求组织信息位和校验位的位置,最后得到矩阵如下   1、2、4、8是校验位,16是全字节偶校验位,其余11位是信息位。   校验码分别是0=061,1=02,2=014,3=008,4=0。   2用汉明码对连续多位差错纠正的实现   要想在不加大码距的前提下,纠正连续多位差错,提高抵抗突发干扰的能力,可根据校验矩阵得出的汉明码重新进行组织排列。   以16比特的汉明码为例,把11个字节的数据编码为16个字节的汉明码后再按高低字节分成两组。   我们把每组字节8个汉明码的第1位分别取出,组成第1个字节。   然后,再把这8个字节汉明码的第2位取出,组成第2个字节。   依此类推,将这组8个字节汉明码处理完毕,得到新的8个字节编码   ,两组一共16字节。   我们可以看到这们排序后,每个字节包括原来8个汉明码的其中1位。   这样,如果一次突发干扰使某一编码字节连续8位都发生改变,实际是分别使原来8个汉明码的其中1位发生了改变。   只要在纠错前把受干扰的编码恢复为原来正常的排列顺序,就可通过计算校验码完成差错的定位及纠错。   如果有163个字节的原始数据,经编码后为240个字节的汉明码,那么如果把240个字节的汉明码的每一位都取出,分别组成15个字节的编码,这样是不是可以连续纠正15个字节的差错了呢?在实际应用中要分情况而定。   通信中,一般可分为异步、同步两种方式。   在异步传输中起始位和停止位是由硬件电路产生的,如果干扰使起始位或停止位发生了改变,那么即使程序有跨字节纠错的能力也是无用的。   对于同步方式则是可行的,因为在发送接收双方取得同步后,数据块的每个字符间取消了起始位和停止位。   常用的串口通信一般采用异步传输方式,能保证纠正连续1个字节的差错就可以了。   我们也要看到,这样处理后提高了汉明码对突发干扰差错的纠错能力   ,却牺牲了对随机干扰纠错能力。   因为这样对汉明码重新排序后,原来1个汉明码的各个位分布在不同位置的字节里,当有多个随机干扰出现时,可能使原来这个被拆开的1个汉明码多位出现差错。   因此采用多少位的汉明码,如何对汉明码重新组织排列,要根据信道的特点来决定。   例如,一个数据通信信道经常会受到多个随机干扰的影响,那么我们就不必将汉明码拆开。   如果每次通信数据量不大,还可以缩短编码长度,比如采用[8,4,3]8比特汉明码。   这样虽然有效信息只是总编码长度的50,但比起出现多个差错后而要求发送方重

文档评论(0)

189****2507 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档