马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
- function [index,H,s]=jghostyhammingcode(f,r)
- %---------HammingCode 译码---------------------------
- %---------HammingCode By jghosty 2006-11-29----------
- %f为输入二元码,码长n=2^r-1,index为标志符,H是校验矩阵,s为最终输出码
- lf=length(f);
- hamlength=2^r-1;
- %判断码长是否符合
- if lf<hamlength
- index='输入错误!'
- return;
- end
- for i=1:15
- x(i)=i;
- end
- h=ones(1,hamlength);
- for i=1:hamlength
- h(i)=i;
- end
- %生成校验矩阵
- H1=dec2bin(h);
- H=H1';
- S=mod(f*(H1),2);
- %判断码字是否正确
- if mod(S,2)==0
- index='无错误';
- s=f;
- return;
- else
- index='译码出错,纠错处理';
- K=ones(r,1);
- for j=1:hamlength
- for l=1:r
- K(l)=H1(j,l);
- end
- G=mod(S*K,2);
- if G~=0;
- break;
- end
- end
- s=mod((f+[zeros(1,j-1),1,zeros(1,hamlength-j)]),2);
- end
复制代码 |