ECC - Hamming Code 汉明码

目录

[ECC(Error Correcting Code,校验码)](#ECC(Error Correcting Code,校验码))

二分法奇偶校验

[问:如果错误数据在校验码上呢,或者说校验码发生了错误呢 能否识别出?](#问:如果错误数据在校验码上呢,或者说校验码发生了错误呢 能否识别出?)

问:如果数据中出现了两个错误呢?能否识别和纠错?

问:如果传输数据中同时出现了三个错误呢?

校验码所在位置

汉明码的硬件实现非常简单


ECC(Error Correcting Code,校验码)

ECC 是一类能够检测并纠正数据传输或存储中错误的编码技术的统称,其本质是在原始数据中增加若干校验位,通过精心设计的编码规则,使得:

  • 检错:发现数据中发生了错误

  • 纠错:定位并纠正错误位

ECC是一个广义概念,其实现方式有多种,如**:**汉明码、BCH码、RS码、LDPC码等;

汉明码是 ECC 中最经典、最基础的一种具体实现;

最常见的 ECC:SECDED(Single Error Correction, Double Error Detection)------能纠正 1 位错误,检测 2 位错误 (纠1检2);

二分法奇偶校验

找到错误最快的方法:二分法。

0号数据为不会被纳入保护范围,它的错误与否不会影响校验结果;所以让0号不储存数据,让它对整个盘面的数据做奇偶校验;

例:

1号校验位 检查第2列和第4列,6个1,偶数,没问题,错误数据不在2,4列,也就是在1或3列;

2号校验位 检查第3列和第4列,5个1,奇数,有错误,4列已在上面排除,所以错误数据在第3列;

所在行的检查 同理,得出在第2行;

问:如果错误数据在校验码上呢,或者说校验码发生了错误呢 能否识别出?

答:校验码用来保护一组数据,校验码本身也在这组数据中,所以校验码错了同样可以发现,与其他数据一样;只不过校验码不影响原始数据,所以后续可纠错也可以不处理;


问:如果数据中出现了两个错误呢?能否识别和纠错?

答:可以识别出有错误,但是不能确定哪两个数据错了 也不能纠错。

原理如下:

按照上面的检错流程走一遍,得出错误数据是:10号数据

总体盘面有六个1,偶数,判断盘面没有错误,这与上面得出的10号数据有错误冲突;

盘面结论与区域结论冲突,说明出现了两个错误,虽然无法定位到哪两个数据错误,但是可以知道数据有错误,需要重发数据;


问:如果传输数据中同时出现了三个错误呢?

答:汉明码处理不了三个错误; 但是出现三个错误的概率很低,这时需要做的是降低出现三个错误的概率,而不是靠补救手段处理;


校验码所在位置

除了0号位置的校验码,其余校验码所在位置是2的第n次方;

这是因为汉明码本质上与二分法原理接近,所以校验位正好是在数据的一半,一半的一半...;

如果要传输更多的数据 只需要在2的第n次方位置上放置一位校验码即可,但是数据量越大,同时出现好几个错误数据的几率就越高;

汉明码的硬件实现非常简单

同样4x4的数据,四个校验结果,通过的记为0;校验错误的记为1;

汉明码的纠错不需要真正的去一步一步演算排除,只需要提取出所有1的位置(二进制),然后把所有的位置数按顺序做一次异或运算,结果就是错误数据所在的位置;

内容主要来源:https://www.bilibili.com/video/BV1GF411V7sC?spm_id_from=333.788.videopod.sections&vd_source=473185c2a7a9b79ef8fcea7dce5ca501

相关推荐
Lxx_Zw2 小时前
先把轮子转稳,才不会烧心:编码器速度环 PID 怎么接回 PWM
c语言·stm32·单片机·嵌入式硬件
木子n12 小时前
车载以太网与SOME/IP服务化通信实战-05.UDP 还是 TCP:连接管理与超时账、队头阻塞的 200 ms 罚单与 198 节点重连风暴
单片机·tcp/ip·udp·车载以太网·some/ip
Yyq130208696824 小时前
紫荆M100,RISC-V开源架构,工业控制,电机驱动,国产替代
单片机·嵌入式硬件·risc-v
2501_922639584 小时前
率能半导体 SS6208L半桥MOSFET驱动器:12V/4A集成方案,覆盖电子烟、无线充电、半桥应用三大场景
单片机·嵌入式硬件·硬件工程
国科安芯15 小时前
立方星与微纳卫星综合电子微型化趋势下的抗辐射MCU选型综述
人工智能·单片机·嵌入式硬件·mcu·risc-v·抗辐射
xunyan623415 小时前
3-1 独立按键控制LED亮灭(SDCC + Notepad++ + STC-ISP/普中ISP)
单片机·嵌入式硬件·接口隔离原则
WD1372980155716 小时前
WD5030L,为充电桩、工业设备、5G 基站、车载系统、消费电子提供电源,7-30V 的宽压输入
stm32·单片机·嵌入式硬件·5g·车载系统·51单片机
创界工坊工作室18 小时前
30-基于STM32的小麦烘干塔温度控制系统设计
stm32·单片机·嵌入式硬件·proteus
Zwawa18 小时前
先把轮子转稳,才不会烧心:编码器速度环 PID 怎么接回 PWM
c语言·单片机·嵌入式