1.错误产生原因
通信过程中出现的差错大致分为两类:一类是由热噪声引起的随机错误;一类是由冲击噪声引起的突发错误。
热噪声是由电子的热运动产生的,热噪声随时存在,具有很宽的频谱,且幅度较小。通信线路的信噪比越高,热噪声引起的差错越少。这种差错具有随机性,一次只影响个别比特,且错误之间没有关联。
冲击噪声通常是由瞬间的脉冲噪声引起的,如雷电等。虽然持续的时间短,但由于线路上数据速率高,影响面比较大,例如速率为9600bps时,10ms的噪声将影响96比特,因而冲击噪声一般会影响连续的许多比特。
2.差错控制方法
最常用的差错控制方法是差错控制编码。差错控制编码是指发送端在发送数据信息之前,先向数据块中加入一些冗余信息,使数据块中的数据建立某种形式的关联,接收端通过验证这种关联关系是否存在,来判断数据在传输过程中是否出错,这种在数据块中加入冗余信息的过程称为差错编码。
最常用的差错控制编码有两种,一种是使码字只具有检错的功能,即接收方只能判断数据块有错,但不能准确判断错误位置,从而也不能纠正错误,这种编码称为检错码;另一种是使码字具有一定的纠错功能,即接收方不仅能够知道数据块有错,还知道错误的准确位置,这时只需将错误位取反即能获得正确的数据,这种码字称为纠错码。
奇偶校验
奇偶校验通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或偶数(偶校验),从而使码距变为2。对于奇校验,它可以检测代码中奇数位出错的情况,但不能发现偶数位出错的情况,即当合法编码中有奇数位发生了错误(编码中的1变成0或0变成1)时,该编码中1的个数的奇偶性就会发生变化,从而可以发现错误。目前常的奇偶校验码有三种:水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。
循环冗余码CRC
CRC是一种较为复杂的校验方法,它先将要发送的信息数据与一个通信双方共同约定的数据进行除法运算,并根据余数得出一个校验码,然后将这个校验码附加在信息数据帧之后发送出去。接收端接收数据后,将包括校验码在内的数据帧再与约定的数据进行除法运算,若余数为“0”,就表示接收的数据正确,若余数不为“0”,则表明数据在传输的过程中出错。