suffer 发表于 2007-6-21 01:35

二元HammingCode的Matlab实现(转贴)

function =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+),2);
end
页: [1]
查看完整版本: 二元HammingCode的Matlab实现(转贴)