海明码的通校验软件设计课程设计报告.docVIP

  • 85
  • 0
  • 约3.29千字
  • 约 14页
  • 2018-06-15 发布于福建
  • 举报

海明码的通校验软件设计课程设计报告.doc

海明码的通校验软件设计课程设计报告

海明码的通信校验软件设计 通信班、、;指导老师:王国才 设计题目 题目:海明码的通信校验软件设计 设计要求:环境为Windows2000/XP/7;编程语言为C;信息交换内容为文本文件;通信传输方式通过共享文件实现。 功能要求:能在两台计算机机上运行程序,一台产生海明码,另一台校验纠错。(信息位4位,冗余位3位,文件中字符采用8位) 相关工作 海明码 当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用海明码来检测并纠错,简单的说,海明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为海明码它是在k位的信息位中,增加r位冗余位,构成一个n=k+r位的码字。校验位有r位,那么r个校验位有个状态,其中一个状态指出“没有发生错误”,其余的个状态指出有错误时错误发生在哪一位(包括k个信息位和r个冗余位),。即:或 2. 海明码的原理 在数据中间加入几个校验码,码距均匀拉大,将数据的每个二进制位分配在几个奇偶校验组里,当某一位出错,会引起几个校验位的值发生变化。 进行奇偶校验的方法是先计算数据中1的个数,通过增加一个0或1(称为校验位),使1的个数变为奇数(奇校验)或偶数(偶校验)。例如,数据101总共是4个比特位,包括个1,1的数目是,因此,如果是偶校验,那么增加的校验位就是一个,反之,增加一个作为校验位。通过异或运算来实现偶校验,同或运算来实现奇校验。单个比特位的错误可以通过计算1的数目是否正确来检测出来,如果1的数目错误,说明有一个比特位出错,这表示数据在传输过程中受到噪音影响而出错。利用更多的校验位,汉明码可以检测两位码错,每一位的检错都通过数据中不同的位组合来计算出来。   海明码的编码规则: 校验位被分配在的位置上所校验的是从第个位置开始,校验i位,然后跳位不校验; 海明码中的每一位都被多个校验位所校验,被校验的位置是所有校验这位的校验位位置序号之和。 3. 例题分析 下面结合本文所设计的题目,以例题来讲解汉明码是怎么编码的。 假设信息位为1101,共4位,分别对应为d0,d1,d2,d3,因为,所以,4位信息位只需要3位校验位就够了。 假设校验位为r0,r1,r2。 信息位和校验位在码字中对应的位置如表1所示: 表1 码字 C1 C2 C3 C4 C5 C6 C7 信息位 d0 d1 d2 d3 校验位 r0 r1 r2 校验位数值的确定(假设进行奇校验): ; ; 。 所以进行编码之后的码字为1010101。 如果要验证所接收的码字是否出错,则验证: ; ; 。 如果P1,P2和P4都为0,则没有出错,否则,就说明码字在传输过程当中出现了错误。错误的位置为不为0的所有校验位之和。 假设所接收的码字为1010111,计算P1=0,P2=1,P4=1,因为P1,P2和P4不全为0,所以接收出现错误。错误的位置为第(2+4=6)位,即第6位。纠错之后的码字为1010101,与原来编码之后的码字相同。 题目分析及其设计的详细方案 设计题目乍一看很简单,就是设计一个汉明码的校验软件,能在两台计算机机上运行程序,一台产生海明码,另一台校验纠错。信息位4位,冗余位3位,文件中字符采用8位 设计的整体框架 图1:整体框架图 设计过程以及结果 初步设计 所实现的功能是对4位二进制信息进行汉明码编码、译码、纠错。 输入4位二进制数值,对其进行汉明码编码之后输出对应的汉明码。如输入1101,则输出1010101。调试结果如图2所示。 图2:对4位二进制信息进行汉明码编码 手动输入汉明码代替文件传输,然后对其进行校验和纠错,最后还原出原来的信息。如输入1010101,则表示没有出错,原来的信息位1101,如图3所示;如输入1010111,则第6位出现错误,纠正之后还原的信息为1101如图4所示。 图3:正确接收并译码 图4:纠错并译码 最终设计 实现了最终功能。在两台计算机机上运行程序,一台产生海明码,另一台校验纠错。信息位4位,冗余位3位,文件中字符采用8位 图5:欢迎界面 创建message文件,输入任意字符,字数在50个字符以内,以“#”号键结束。输入的字符将写入命名为message的文本当中。如图6所示。 图6:创建message文本文件 然后将message中的内容转化为二进制,如“a”,在ASC中的编号为97,转化为二进制如图7所示。 图7:将字符转化为二进制 分别对前4位和后4位数据位进行汉明码编码。前4位为0110,根据汉明码的编码规则,编码后并将其编码后的代码写入文本文件hanmingma1中;后4位为0001,根据汉明码的编码规则,编码后并将其编码后的代码写入文

文档评论(0)

1亿VIP精品文档

相关文档