欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    汉明码实验报告内附C++源码Word文档下载推荐.docx

    • 资源ID:6200796       资源大小:310.24KB        全文页数:28页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    汉明码实验报告内附C++源码Word文档下载推荐.docx

    1、 void Initializing(int,int); void Show_H(int,int); void Get_G(); void Show_G(int,int); void HM_Efficiency_Analysing();/*对汉明码进行编码效率分析*/ int Binary_Str_Check(string); void Encoding();/汉明码编码 void Encoding_Z();/增余汉明码编码 void Decoding();/汉明码译码 void Decoding_Z();/增余汉明码译码 void Get_H_Column();/获取汉明码监督矩阵的每一列

    2、void Get_H_Column_Z();/获取增余汉明码监督矩阵的每一列 void Get_Judge_Result();/获取汉明码校码结果 void Get_Judge_Result_Z();/获取增余汉明码校码结果 void Checking();/汉明码校码 void Checking_Z();/增余汉明码校码 void GOTO_HMCding_Z();HMCoding hmcoding;/全局变量/*初始化模块*/void HMCoding:Initializing(int _n,int _k) n=_n; k=_k; r=_n-_k; cout请给定(n,k)汉明码的监督矩阵

    3、Hr:endl; H=new int *r+1; /初始化(n,k)汉明码监督矩阵 for(i=0;ir+1;i+) Hi=new intn+1;r; for(j=0;jHij; /初始化增余项 for(j=0;n+1; Hrj=1; Hin=0; /为X分配存储单元 X=new intn+1; Xj=0; Get_H_Column();/获取监督矩阵的每一列 Get_H_Column_Z();/进一步获取增余监督矩阵的每一列/获取监督矩阵的每一列,用于汉明码校码Get_H_Column() string temp; H_Column=new stringn+1; temp=; if(!Hji

    4、) temp+=0 else1 H_Columni=temp; H_Columnn=000/获取增余监督矩阵的每一列,用于增余汉明码校码Get_H_Column_Z() H_Column_Z=new stringn+2; H_Column_Zi=H_Columni+ H_Column_Zn+1=0000Show_H(int x,int y)x;y; coutHij coutGet_G() G=new int *k;k; Gi=new intn; if(i=j) Gij=1; Gij=0; Gji+k=Hij;Show_G(int x,int y) Get_G();GijHM_Efficienc

    5、y_Analysing()对()汉明码的评价如下:()汉明码的效率E=k/n*100%=k*1.0/n*100%)汉明码的错误概率P=n*(n-1)*Pe*Pe=n*(n-1)*Pe*Pebinary_str; flag=Binary_Str_Check(binary_str); while(binary_strbinary_num!) binary_num+;/*统计输入的二进制序列所含码元个数*/ if(binary_num%k!=0&flag)/*序列所含码元个数不是k的整数倍,无法全部编码*/您输入的二进制序列存在冗余,请重新输入!n goto A;!flag)您输入的二进制序列存在冗

    6、余且含除0、1外的字符,请重新输入! if(binary_num%k=0&您输入的二进制序列含除0、1外的字符,请重新输入! code_str=binary_num;i=i+k)j+)/*获取k位信息元*/ if(binary_stri+j= Xj=0; Xj=1; int temp; string partial_str= for(int t=0;tt+) /*用k位信息元组成的向量与生成矩阵作矩阵乘法,得到对应n元码组*/ temp=0; for(j=0; temp+=Xj*Gjt; if(temp%2=0) partial_str+= code_str+=partial_str;进行()

    7、汉明码编码后的二进制序列为:code_strEncoding_Z()A_Z:string binary_str; goto A_Z; if(temp%2=0) Xj+k=0; else Xj+k=1; /生成增余汉明码最后一位 /监督规则:对原汉明码所有n个码元取模2和 int sum=0; sum+=Xj; if(sum%2=0) partial_str+= elsen+1)增余汉明码编码后的二进制序列为:/*校码模块*/利用汉明码校码Checking()B:请输入待译的二进制序列: if(binary_num%n!flag)/*序列所含码元个数不是n的整数倍,无法全部译码*/ goto B

    8、; if(binary_num%n=0& code_num=binary_num/n;/统计n元码组的个数 check_code=new int*code_num;code_num; check_codei=new intn; /*每次取n个码元进行校正*/j+) check_codeij=binary_stri*n+j- Get_Judge_Result();/利用增余汉明码校码Checking_Z()B_Z: if(binary_num%(n+1)!flag)/*序列所含码元个数不是n+1的整数倍,无法全部译码*/ goto B_Z; if(binary_num%(n+1)=0& code

    9、_num_z=binary_num/(n+1);/统计n+1元码组的个数 check_code=new int*code_num_z;code_num_z; check_codei=new intn+2; /*每次取n+1个码元进行校正*/ check_codeij=binary_stri*(n+1)+j- Get_Judge_Result_Z();Get_Judge_Result() int temp; string partial_str;)汉明码校码结果如下:码组 状态 校正后 for(int t=0; flag=0; partial_str= for(i=0; temp+=Hij*ch

    10、eck_codetj; /对partial_str进行判断i+) if(H_Columni=partial_str) flag=1; break; if(flag&n)/表示第i个码元出错,将其改正 coutcheck_codetj; 第i+1位错,可纠正 check_codeti=(check_codeti+1)%2;/1变0,0变1i=n)/表示全对 全对 Get_Judge_Result_Z()增余汉明码校码结果如下(注:* 表示无法识别的码元):n+2; if(H_Column_Zi=partial_str)n+1)/表示第i个码元出错,将其改正 check_codetn+1=1;/表示正确接收i=n+1)/表示全对 check_codetn+1=0;/表示两位出错并无法纠正 某两位出错,无法纠正 */* 表示无法正确识别的码元/*译码模块*/利用汉明码译码Decoding()汉明码译码结果为:check_codeij;/利用增余汉明码译码Decoding_Z()增余汉明码译码结果为(注: if(check_codein+1=1)check_codeij


    注意事项

    本文(汉明码实验报告内附C++源码Word文档下载推荐.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开