当数据传输被篡改1位或2位时,接收器能否自动校正?
答案 0 :(得分:6)
不,CRC是一个错误检测代码,而不是纠错码。
了解更多here
答案 1 :(得分:0)
CRC主要用作错误检测代码。但是,如果总位数(包括CRC中的位数)小于CRC的周期,则可以通过计算校正子(xor计算和接收的CRC)来校正单位错误。如果单独翻转,每个位将产生唯一的综合症。可以迭代CRC算法以找到与每个比特相关联的综合症;如果找到与每个位相关的校正子,可以将其翻转并纠正单个位错误。
但是,这样做的一个主要危险是CRC对拒绝虚假数据的作用要小得多。如果在具有15个字节数据的数据包上使用8位CRC,则256个随机数据包中只有一个会通过有效性,但是通过翻转单个位可以“纠正”所有随机数据包的一半。