CRC纠错库?

Gil*_*ili 5 c++ java crc error-correction

是否有CRC库,使用户不仅可以检测错误,还可以纠正错误?我正在寻找一个C/C++或Java库,理想情况下是开源的.

rme*_*dor 6

我相信CRC只能检测错误,而不能纠正错误.对于最常见的实现来说,这当然是正确的.你想要某种纠错技术,而不是CRC.我不知道这样做的任何库,但一旦你知道你在寻找什么,它们必须很容易找到.

  • 这听起来不对.根据http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/ecc.html:"任何始终检测到两位错误的错误检查代码始终可以纠正任何一位错误" .http://www.dsprelated.com/showmessage/107079/1.php:"为了能够进行单一纠错,ECC位的字长必须小于或等于2**N其中N是数字ECC位" (4认同)
  • 这在一般水平上是正确的,但CRC算法不做校正. (3认同)
  • 你当然可以使用CRC进行纠错.使用CRC(A XOR B)= CRC(A)XOR CRC(B)...令B为错误,A发送消息,A XOR B为接收消息的事实.然后CRC(B)= CRC(A XOR B)XOR CRC(A).确实,汉明距离证明并不特别适用于所有错误检查代码(例如,安全哈希代码不能毫不费力地保留),但CRC没有这样的困难.然后,您需要一个查找表,从CRC(B)返回到B(对于单个错误纠正,查找表将包含单个错误位的索引). (3认同)

flo*_*rin 6

您不需要CRC,而是FEC(前向纠错).您可以在libfec中找到一个开源实现.