汉明码纠错编码原理

本文详细介绍了汉明码的纠错编码原理,包括如何确定校验码位数,设置校验码位置,计算校验码值,以及在接收端进行错误检测和纠正的过程。通过一个具体的例子展示了如何使用汉明码确保数据在传输过程中的准确性。
摘要由CSDN通过智能技术生成

 汉明码:能检测2位比特错误,能纠正1位比特错误。

纠错流程(重点是求出校验码):

1.确认校验码位数r

2.确认校验码和数据的位置

3.求出校验码的值

4.在接收端检错并纠错


1.确认校验码位数r

汉明不等式 2^{r}\geqslant k+r+1

解释:k为原信息码的码长,编码后作为信息位的位数;r为编码后添加的监督位。r个监督位共有2^{r}种情况,选择其中一种表示正确,那么其余2^{r}-1能够表示编码后传输过程中出现的(k+r)种错误(在传输过程中假设只能出现1位错误,并且每位出现概率均等),故得此汉明不等式。

假设发送方要发送的数据为101101,满足不等式的最小r为4,故发送的汉明码为10位。


2.确认校验码和数据的位置

假设这4位校验码为s1、s2、s3、s4,把它们放在2的次方的位置,数据从左到右为d1、d2、d3、d4、d5、d6,把它们按序填满空缺位置。

二进制0001001000110100010101100111100010011010
数据位12345678910
代表位s1s2d1s3d2d3d4s4d5d6
实际值0010011101


3.求出校验码的值

将所有要检验的位(将二进制位用不同的颜色区分开)异或,令其为0。

s1\oplus d1\oplus d2\oplus d4\oplus d5=0

s2\oplus d1\oplus d3\oplus d4\oplus d6=0

s3\oplus d2\oplus d3\oplus d4=0

s4\oplus d5\oplus d6=0

代入实际值,由以上4个式子得出s1s2s3s4=0001。

故发送的汉明码为0010011101。


4.在接收端检错并纠错

假设在传输过程中第5位发生错误,即0变1,那么在接收端接收的数据为0010111101,此时接收端并不知道哪一位出错,纠错方法是将所有要检验的位异或,得出的数倒着写。

s1\oplus d1\oplus d2\oplus d4\oplus d5=1

s2\oplus d1\oplus d3\oplus d4\oplus d6=0

s3\oplus d2\oplus d3\oplus d4=1

s4\oplus d5\oplus d6=0

二进制序列为0101,对应的十进制数为5,即出错位为第5位,将其改正即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值