- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
海明码的通信校软件设计
海明码的通信校验软件设计 通信班、、;指导老师:王国才 设计题目 题目:海明码的通信校验软件设计 设计要求:环境为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)