yima.m

来自「自己编写的线性分组码编码器和解码器的 matlab程序」· M 代码 · 共 30 行

M
30
字号
%扩展(8,4)汉明码,实现一位纠错,两位检错    --向赛辉
clear
  H = [1,1,0,1,1,0,0,0; %扩展汉明码的一致校验矩证
      1,0,1,1,0,1,0,0;
      0,1,1,1,0,0,1,0;
      1,1,1,1,1,1,1,1];
disp('请输入信息序列');
for i = 1:8;
   R(i) = input('');
end;
if(( mod((H*R'),2)) == [0,0,0,0]')
    disp('码字正确!');
else
    S=mod(H*R',2); %接收矢量R的伴随式的转置
   E=eye(8);
    for i=1:8
       if S==H(:,i)  % 如果等于H的某列,则某位发生错误
          e=E(i,:);   %错误位
          W=mod(R+e,2);
           disp('码字错误!');
         disp('正确码字是');
         disp(W);
       end    
    end  
    for i=1:8
        if S~=H(:,i)  %因为H每列不同,若两位错误,则不等于H中任何一列
             disp('码字有两位错误');
        end
    end
  end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?