汉明码是怎么通过增加校验位来校验的,matlab

clear
a=[1,0,1,0,1,1,1];
k=4
n=length(a(😃);
z=1;
j=1;
h=zeros(1,n+k);
for i=1:n+k %将输入数组写入全零矩阵待用,且跳过验证
if i==2^(z-1) %在2的次幂位置上添加索引,用来填写增加的校验码作为索引的内容
z=z+1;
continue
else
h(i)=a(j) %所以h就是一个膨胀了的数组a,加入了几个校验码
j=j+1;
end
end

h =

 0     0     1     0     0     1     0     0     1     1     1

再进行校验

if k==4
h(1)=rem(h(3)+h(5)+h(7)+h(9)+h(11),2);
h(2)=rem(h(3)+h(6)+h(7)+h(10)+h(11),2);
h(4)=rem(h(5)+h(6)+h(7),2);
h(8)=rem(h(9)+h(10)+h(11),2);

else if k==3
    h(1)=rem(h(3)+h(5)+h(7),2);
    h(2)=rem(h(3)+h(6)+h(7),2);
    h(4)=rem(h(5)+h(6)+h(7),2);

else if k==2
    h(1)=rem(h(3),2);
    h(2)=rem(h(3),2);
    end
    end

end
h

输出:

h =

 1     0     1     1     0     1     0     1     1     1     1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值