📄 hamm_dec.m
字号:
function [out]=hamm_dec(in)
in=input('in=')
H=[1 1 1 0 1 0 0;0 1 1 1 0 1 0; 1 1 0 1 0 0 1];% H为校验矩阵,和G是相互对应的
n=length(in); %确定输入的数据的长度
out=[];
for i=1:n/7 %判断是否为7的整数倍
a=in((i-1)*7+1:i*7); %不是则截断为7的整数倍
b=a*H'; %计算伴随式
b=mod(b,2)
%在编译码中都是摸2运算,但是a*H'可能会出现大于2的数,因此需要对2取模mod(b,2)
val=b(1)*4+b(2)*2+b(3);
%求出伴随式对应的错误位置
%如果位置为0 则没有错,
if val~=0
a(val)=~a(val); %否则,将对应为取反
end
out=[out a(1:4)]; %得到译码输出
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -