当前位置:网站首页>海明校验码纠错设计原理
海明校验码纠错设计原理
2022-08-02 14:01:00 【qq_37124411】
本文不阐述海明码计算方式,为了节省您的时间,请先学习海明码/奇偶校验是如何计算的,如果好奇其海明码的纠错设计思路再来看此文章!
信息为位数为n,校验位数为k,正确状态占1位,所以总位数:n+k+1。
要想用校验位校验出所有的位置应满足2^k>=n+k+1
通过奇偶校验就能判断是否出错,但是如何唯一定位到某一个的出错的位置呢?要想通过校验码体现这样的内在信息,校验码本身的位置和含义就至关重要。
海明校验码P1,P2,P3,...,Pi位置分别位于:1,2,4,8,2^k-1。
其的内在含义分别代表权值:2^0,2^1,2^2,...,2^k 在二进制中的作用相当于十进制中的"个十百千万...",基于这些权值可以组合出任意一位数x∈[0,2^k]
当某一个纠正码Si(基于检测码Pi和所维护的小组gi异或计算得出,具体请参考教材)计算出的结果与预计不符,则可以断定该校验Pi码或所负责检测的小组gi中肯定出现了异常数据。(海明码计算方法具体参考计算机组成原理教材,本文意在加深理解)
每一个校验码所负责检测的小组的所包含位置是确定的,配偶规则如下:
P1 检测的小组g1包含:1,3,5,7,9,11... 位。
P2 检测的小组g2包含:2,3,6,7,10,11,14 ... 位。
P3 检测的小组g3包含:4,5,6,7,12,13,14,15 ... 位。
为什么要这样设计呢?
教材此处给的解释理解起来较为困难。此处可以按照另一种通俗易懂方式解释:
把对应位置换成二进制
P1 检测的小组g1包含:1(00001),3(00011),5(00101),7(01001),9(10001) ... 位。
P2检测的小组g2包含:2(00010),3(00011),6(00110),7(0111),10(01010) ... 位。
P3检测的小组g3包含:4(00100),5(00101),6(00110),7(00111),12(01100) ... 位。
可一看到校验码和所负责检测的小组元素的规律为:每个元素对应的二进制在表示过程中一定用到Pi所代表的的权值(之前说过Pi在二进制中相当于权值,地位类似十进制的中的个十百千万)。比如5对应的二进制(000101)的第2位是0,,而P2代表2^1,所以P2没有能力表示5这个位置,自然也不能负责检测并纠正5这个位置。而P1代表2^0、P3代表2^2,且5(000101)的第1、3位是1,所以P1和P3可以都可以负责检测5这个位置。
7 | 6 | 5 | 4 | 3 | 2 | 1 |
D4 | D3 | D2 | P3 | D1 | P2 | P1 |
例如某次传送的正确汉明码为0100101,若传送后接受到的汉明码为0100111,其出错位可按照下述步骤确定:
二进制编号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
正确汉明码 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
接收到的汉明码 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
则新的检测位为
S3=4⊕5⊕6⊕7,即S3=0⊕1⊕1⊕1 = 1
S2=2⊕3⊕6⊕7,即S2=1⊕0⊕1⊕1 = 1
S1=1⊕3⊕5⊕7,即S1=0⊕0⊕1⊕1 = 0
可以看到S3和S2出现异常,而S1未出现异常,可以分析:
一定是P3和P2共同所检测的数据出现了异常且这个数据一定不在P1所维护的数据中,
根据配偶规则,上述本质为:这个异常数据的二进制表示用肯定到了2^2、2^1,且没有用到2^0次方。其实这个数据就是S3 S2 S1本身的组合,即:110 ,也就是第6个数据位出现了异常。
此时不得不佩服海明码设计的巧妙之处,将位置和其二进制本身的特性利用的淋漓尽致。
边栏推荐
- 大而全的pom文件示例
- 【Tensorflow】AttributeError: ‘_TfDeviceCaptureOp‘ object has no attribute ‘_set_device_from_string‘
- Detailed explanation of ORACLE expdp/impdp
- 腾讯安全游戏行业研讨会:生态共建,护航游戏产业健康发展
- 史上最全!47个“数字化转型”常见术语合集,看完秒懂~
- idea社区版下载安装教程_安装天然气管道的流程
- 无序数组排序并得到最大间隔
- About the development forecast of the market outlook?2021-05-23
- MySQL - ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
- Geoffery Hinton:深度学习的下一个大事件
猜你喜欢
如何选择正规的期货交易平台开户?
【Tensorflow】AttributeError: ‘_TfDeviceCaptureOp‘ object has no attribute ‘_set_device_from_string‘
专访|带着问题去学习,Apache DolphinScheduler 王福政
第二届中国Rust开发者大会(RustChinaConf 2021~2022)线上大会正式开启报名
mysql的case when如何用
The future of financial services will never stop, and the bull market will continue 2021-05-28
多个驻外使领馆发提醒 事关赴华出行、人身财产安全
Sentinel源码(三)slot解析
动态刷新日志级别
C language improvement (3)
随机推荐
大而全的pom文件示例
Gstreamer Plugin注册流程详解
els long block deformation conditions, boundary collision judgment
Word | 关于删除分节符(下一页)前面的版式就乱了解决方案
微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)「建议收藏」
web测试和app测试的区别?
音频处理:浮点型数据流转PCM文件
Image retrieval method based on deep learning!
ttl电平与rs232电平转换电路(232电平定义)
vim复制粘贴_vim如何复制粘贴
专访|带着问题去学习,Apache DolphinScheduler 王福政
Interview | with questions to learn, Apache DolphinScheduler Wang Fuzheng
FFmpeg 的AVCodecContext结构体详解
WiFi Association & Omnipeek Packet Capture Analysis
Configure zabbix auto-discovery and auto-registration.
deal!It's July 30th!
Sentinel源码(六)ParamFlowSlot热点参数限流
网络安全第一次作业
一维卷积神经网络_卷积神经网络的基础知识「建议收藏」
The bad policy has no long-term impact on the market, and the bull market will continue 2021-05-19