关于数据校验纠错算法
最近对于数据传输的噪音损耗问题的解决方案查了些资料 就此做一个总结: 数据损坏 因为网线被老鼠啃了或者硬盘摔地上了导致数据错了 关于数据损坏的问题其实不限于网络传输方面,可以涉及到所有和数据相关的方面,比如文件解压,网络通讯,保密数据的校验(数据签名)等等 错误校验 即检验某一段数据是否有误。 因为是不是有误光凭数据本身不可能知道,所以必须加上附加的认证方法 当然最简单的认证方法就是再传一次数据,拿着数据一个个对着原本的数据对照一下。。。不过这样不说太麻烦,如果要实现这个方法,第二次传输这个数据的时候,难以保证这个数据是不是也出现了错误 另一方面,显然数据越短,这段数据出现错误的概率越小,因为比特出错概率(BER)是不变的。所以如果可以把这个认证的数据(校验码)压缩成一段很短的数据就可以减少校验码出错的情况了 比如奇偶校验(Parity Check) 或者说,数1校验 奇偶校验制定了一个协议,规定数据中1的个数只能是偶数 如果原始数据1是奇数,则加一个1在最前面;反之则加一个0在前面。 如 0 110101 和 1 1010010 都是符合规定的。 很显然这个第一位就是校验码。 那么如果数据出了错误,某个0变成1或者1变成0,那么接收者数一遍1发现不是偶数个