📄 untitled.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 + -