gusucode.com > BCH 编解码的MATLAB 实现源码程序 > code/bch/correctcode.m
function[bch]=correctcode(data,G,HT) k=0; for i=1:15 if data(i)==1 k=i; break end end g=circshift(G,[0 k-1]); g1=g; c=data; for n=1:15 c=xor(c,g1); h=0; for i=1:15 if c(i)==0 h=h+1; end end if h==15 break end g1=G; for i=1:15 if c(i)==1 kk=i; break end end if kk>11 break end g1=circshift(g1,[0 kk-1]); end k1=0; for i=1:15 if c(i)==1 k1=k1+1; end end if k1==0 bch=data; else for i=1:4 s(i)=c(11+i); end for j=1:15 ht(j,:)=xor(s,HT(j,:)); k2=0; for i=1:4; if ht(j,i)==0 k2=k2+1; end if k2==4 k3=j; break end end end for i=1:15 e(i)=0; end e(k3)=1; bch=xor(data,e); end