声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1170|回复: 0

[共享资源] 二元HammingCode的Matlab实现(转贴)

[复制链接]
发表于 2007-6-21 01:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
  1. function [index,H,s]=jghostyhammingcode(f,r)
  2. %---------HammingCode 译码---------------------------
  3. %---------HammingCode By jghosty 2006-11-29----------
  4. %f为输入二元码,码长n=2^r-1,index为标志符,H是校验矩阵,s为最终输出码
  5. lf=length(f);
  6. hamlength=2^r-1;
  7. %判断码长是否符合
  8. if lf<hamlength
  9.     index='输入错误!'
  10.     return;
  11. end
  12. for i=1:15
  13.     x(i)=i;
  14. end
  15. h=ones(1,hamlength);
  16. for i=1:hamlength
  17.     h(i)=i;
  18. end
  19. %生成校验矩阵
  20. H1=dec2bin(h);
  21. H=H1';
  22. S=mod(f*(H1),2);
  23. %判断码字是否正确
  24. if mod(S,2)==0
  25.     index='无错误';
  26.     s=f;
  27.     return;
  28. else
  29.     index='译码出错,纠错处理';
  30.     K=ones(r,1);
  31.     for j=1:hamlength
  32. for l=1:r
  33.         K(l)=H1(j,l);
  34. end
  35.      G=mod(S*K,2);
  36.      if G~=0;
  37.          break;
  38.         end
  39.     end
  40. s=mod((f+[zeros(1,j-1),1,zeros(1,hamlength-j)]),2);
  41. end
复制代码

评分

1

查看全部评分

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 22:24 , Processed in 0.063761 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表