hamm_dec.m

来自「汉明窗译码功能」· M 代码 · 共 19 行

M
19
字号
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 + =
减小字号Ctrl + -
显示快捷键?