欢迎来到天天文库
浏览记录
ID:16114115
大小:538.00 KB
页数:14页
时间:2018-08-08
《海明码的通信校验软件设计课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、海明码的通信校验软件设计通信班、、;指导老师:王国才一、设计题目题目:海明码的通信校验软件设计设计要求:环境为Windows2000/XP/7;编程语言为C;信息交换内容为文本文件;通信传输方式通过共享文件实现。功能要求:能在两台计算机机上运行程序,一台产生海明码,另一台校验纠错。(信息位4位,冗余位3位,文件中字符采用8位)二、相关工作1.海明码的概念当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用海明码来检测并纠错,简单的说,海明码是一个错误校验码码集,由Bell实验室的R.W.Ha
2、mming发明,因此定名为海明码(汉明码)。与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。它是在k位的信息位中,增加r位冗余位,构成一个n=k+r位的码字。如果校验位有r位,那么r个校验位就有个状态,其中一个状态指出“没有发生错误”,其余的个状态指出有错误时错误发生在哪一位(包括k个信息位和r个冗余位),所以必须满足不等式。即:或。2.海明码的原理在
3、数据中间加入几个校验码,码距均匀拉大,将数据的每个二进制位分配在几个奇偶校验组里,当某一位出错,会引起几个校验位的值发生变化。进行奇偶校验的方法是先计算数据中1的个数,通过增加一个0或1(称为校验位),使1的个数变为奇数(奇校验)或偶数(偶校验)。例如,数据1101总共是4个比特位,包括3个1,1的数目是奇数,因此,如果是偶校验,那么增加的校验位就是一个1,反之,增加一个0作为校验位。通过“异或”运算来实现偶校验,“同或”运算来实现奇校验。单个比特位的错误可以通过计算1的数目是否正确来检测出来,如果
4、1的数目错误,说明有一个比特位出错,这表示数据在传输过程中受到噪音影响而出错。利用更多的校验位,汉明码可以检测两位码错,每一位的检错都通过数据中不同的位组合来计算出来。 海明码的编码规则:1)校验位被分配在编码后码字的第位置上;2)校验位所校验的是从第个位置开始,校验i位,然后跳位不校验;1)海明码中的每一位都被多个校验位所校验,被校验的位置是所有校验这位的校验位位置序号之和。3.例题分析下面结合本文所设计的题目,以例题来讲解汉明码是怎么编码的。假设信息位为1101,共4位,分别对应为d0,d1,
5、d2,d3,因为,所以,4位信息位只需要3位校验位就够了。假设校验位为r0,r1,r2。信息位和校验位在码字中对应的位置如表1所示:表1码字C1C2C3C4C5C6C7信息位d0d1d2d3校验位r0r1r2校验位数值的确定(假设进行奇校验):;;。所以进行编码之后的码字为1010101。如果要验证所接收的码字是否出错,则验证:;;。如果P1,P2和P4都为0,则没有出错,否则,就说明码字在传输过程当中出现了错误。错误的位置为不为0的所有校验位之和。假设所接收的码字为1010111,计算P1=0,P
6、2=1,P4=1,因为P1,P2和P4不全为0,所以接收出现错误。错误的位置为第(2+4=6)位,即第6位。纠错之后的码字为1010101,与原来编码之后的码字相同。一、题目分析及其设计的详细方案设计题目乍一看很简单,就是设计一个汉明码的校验软件,能在两台计算机机上运行程序,一台产生海明码,另一台校验纠错。要求信息位4位,冗余位3位,文件中字符采用8位进行传输。但是仔细一想,这里面的工作还是很多的。首先说文件,这个文件里头是什么内容?只是简单的“0”和“1”?不。这个文件里面可以有字符、数字、特殊符
7、号和汉字等。但是汉明码的编码只是对简单的“0”和“1”,这个问题怎么解决呢?我们知道字符,数字等信息都是以二进制的形式存储在计算机中的。所以,我们只要将文件中的信息读取出来,再转化为二进制进行编码处理。编码规则在上述相关工作中已经详细叙述。将文件中的字符转化为二进制,那也有8位,但是题目要求是4位,这个怎么办呢?很简单,一次处理4位就好了,先处理前4位,再处理后4位,分别对其进行编码。编码完成之后,我们要考虑的问题就是怎么进行文件传输了。这个很简单,我们只需要在计算机上找到所需要共享的文件夹,将其设
8、置为共享就行了。在文件共享的过程中,可能会出错,就会导致所接收的信息错误,这可能会造成很严重的后果。这就是我们要对其进行编码的原因。收到编码后的文件,我们要对其进行校验,检查文件在传输的过程中是否出现错误。根据编码规则进行校验,看是否满足奇偶特性。如果满足,那么说明没有出错;否则,文件在传输过程中就出现了错误。汉明码有一定的纠错功能,当发现接收的文件有错误时,可以对其进行纠错。有关内容在相关工作中已经有详细叙述。之后,就是对已接收的文件进行译码,译码的对象也是“0”和
此文档下载收益归作者所有