ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【计算机网络】—— 差错编码(纠错编码)

2021-12-11 14:32:31  阅读:203  来源: 互联网

标签:编码 P1 二进制位 明码 校验码 计算机网络 异或 oplus 纠错


目录

海明码:发现双比特错,纠正单比特错;

一、海明码工作流程

确定校验码位数r

海明不等式:
2 r > = k + r + 1 2^r >= k+r+1 2r>=k+r+1 r为冗余信息位,k为信息位。
在这里插入图片描述

确定校验码和数据的位置

校验位按照顺序分别放在2的几次方的位置,数据按照顺序把剩余空格填满即可。
在这里插入图片描述

求出校验码的值

在这里插入图片描述
假如要求 P 1 P_1 P1​校验码的实际值, P 1 P_1 P1​对应的二进制位为0001, P 1 P_1 P1​的二进制位中最后一位为1, P 1 P_1 P1​能够校验所有二进制位中最后一位为1的数据,分别为 D 1 D_1 D1​, D 2 D_2 D2​, D 4 D_4 D4​, D 5 D_5 D5​,接着令所有要检验的位异或值为0(包括 P 1 P_1 P1​本身):
P 1 ⊕ D 1 ⊕ D 2 ⊕ D 4 ⊕ D 5 = 0 P_1\oplus D_1\oplus D_2 \oplus D_4 \oplus D_5=0 P1​⊕D1​⊕D2​⊕D4​⊕D5​=0通过上述公式可以得到 P 1 = 0 P_1=0 P1​=0。

同理,对于 P 2 P_2 P2​, P 2 P_2 P2​的二进制位0010,则 P 2 P_2 P2​能够校验在二进制中第二位为1的所有数据。

因此,可以求得101101的海明码为0010011101。

检错并纠错

假设0010011101数据在传输过程中第五位出错,则接收端接收到的数据为0010111101。

现在开始检错并纠错,令所有要校验的位进行异或运算,类似于第三步【求出校验码的值】。

&P_1&异或得到的值为1,&P_2&异或得到的值为0,&P_3&异或得到的值为1,&P_4&异或得到的值为0。将其拼接为二进制值,则该值为0101,对应的十进制数为5,这样就找到了出错的位置,即出错位是第5位。

注意,海明码只能发现双比特错但是无法纠正,海明码可以纠正单比特错。

总结

在这里插入图片描述

标签:编码,P1,二进制位,明码,校验码,计算机网络,异或,oplus,纠错
来源: https://blog.csdn.net/qq_37388085/article/details/121872320

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有