error-correction - 纠正所有 2 位错误所需的最少位数是多少?

标签 error-correction error-code hamming-code

我了解了汉明码以及如何使用它们来纠正 1 位错误并检测所有 2 位错误,但是如何将其扩展到纠正 2 位,甚至更多?

纠正所有 2 位错误所需的最少位数是多少?

最佳答案

我想我想通了。

N=数据位数,
k=纠错位数(例如汉明奇偶校验)

在任何 ECC 方案中,您都有 2^(N+k) 个可能的位串。

对于单位错误:

对于给定的字符串,您必须找到 k 使得可能的位串总数大于最多具有 1 个位错误的可能串数。

最多有 1 位错误的可能字符串总数为 2^N(n+k+1)

1 个字符串没有错误,N+k 个字符串有 1 位错误

2^(N+k)>=(2^N)*(N+k+1)

您只需插入 k 的值,直到找到满足上述条件的值(或者您希望解决的问题)

同样对于 2 位错误,它是

1个字符串没有错误,N+k个字符串有1位错误,N+k选择2个有2位错误的字符串。

2^(N+k)>=(2^N)*(N+k+1 + (N+k 选2))

关于error-correction - 纠正所有 2 位错误所需的最少位数是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5631871/

相关文章:

c++ - 在 C++ 中定义错误代码常量的位置

http - 微服务应如何处理409响应?

communication - 汉明码是如何工作的?

c++ - CRC/Parity/Hamming 保护 16 位并行总线

algorithm - 有效但易于编码的纠错算法

c++ - 使用 reed solomon 完全恢复数据

cocoa - IOBluetoothDevice openConnection 失败 - 识别错误代码

c# - 将Gridview导出到Excel文件-错误

编码可以最大限度地减少误读/打错/误读?