⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled.asv

📁 程序可以实现所有的汉明码的要求
💻 ASV
字号:
M=textread('M1.txt')   %从文件中读取信息元序列M
H=textread('H1.txt')   %从文件中读取一致校验矩阵H
m=length(H(:,1))       %求解校验位m
k=length(M)      %求解信息位数k
n=k+m            %求解码长n

%生成发送码字C
G=[eye(k),H(:,[1:k])']   %计算生成矩阵G
C=M*G;           %产生码字,该码字为发送码字C
C=mod(C,2)          %求模2运算,即变成二进制数

%生成接收码字R
E=randint(1,n)  %产生只错一位的随机错误图样E
sum=0;
for i=1:n
      sum=sum+E(i)
end
R=xor(C,E);      %由发送码字C和错误图样E进行异或运算 
R=mod(R,2)          %求模2运算,即变成二进制数

%计算伴随式S
S=R*H';    %计算伴随式S,H'为H的转置
S=mod(S,2)      %求模2运算,即变成二进制数

%纠错译码,根据伴随式S查找错误图样,然后纠错译码
for i=1:n
     if S==H(:,i)'     %判断S与H矩阵的哪一列相同
            b=zeros(1,n);
            b(:,i)=1 
            X=xor(R,b)    %Y为纠错后的码字
     end
end

if sum==1
      fprintf('错一位,可以纠正得到正确码字');
elseif sum==0
      fprintf('码字无错');
elseif sum>=2
     fprintf('错误位大于1,纠错后仍然得不到');
end
 

⌨️ 快捷键说明

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