gpt4 book ai didi

crc - 是否可以使用 CRC 进行基本的纠错?

转载 作者:行者123 更新时间:2023-12-03 23:25:20 26 4
gpt4 key购买 nike

我知道使用 CRC 的全部目的是进行错误检测,但我听说有人说除了错误检测之外,它还可以用来进行基本的错误纠正。我很好奇是否是这样,如果是这样,它有多强大?我的意思是,我们通常将 CRC 称为能够执行 x 位检测,但我很好奇它是否能够执行 x 位校正。如果是这样,这是如何工作的?谢谢。

最佳答案

可以使用 CRC 进行单比特纠错。假设有一个 CRC“寄存器”,并且具有一次向前和向后运行 CRC 算法的功能,忽略传入的数据

int crc_forward(int old_value, int data_bit)
{
如果(旧值 & 0x8000)
返回 ((old_value ^ 0x8000) SHL 1) ^ 0x1021 ^ data_bit;
别的
返回 (old_value SHL 1) ^ data_bit;
}

int crc_reverse(int old_value)
{
如果(旧值和 1)
返回(旧值 SHR 1)^ 0x8810;
别的
返回 old_value SHR 1;
}

假设一个数据包经过计算,以便将 crc 初始化为某个值并为每个位(MSB 在前)运行 crc_forward 应该产生零。如果得到非零的 CRC 值,则可以反向运行算法(忽略数据位),直到计算出的 CRC 值为 1。这就是错误位的位置。

请注意,这种方法可能足以用于 NAND 闪存等软件纠错。为了有效地将其用于硬件纠错,必须能够延迟读取操作,直到可以处理 ECC,否则就需要一张“综合”值和位位置表。

关于crc - 是否可以使用 CRC 进行基本的纠错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3788570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com