循环冗余校验码是用多项式码作为检验码的编解码,具有较强的误码检测能力,但只能纠正一位错误,因此,常被用于检测误码,然后通知发射端重发来纠错。
在循环冗余校验码中,生成多项式是一个非常重要的概念,因为二进制序列在编码过程中要转换为多项式的系数,若发送的序列为10011,将可以将其转换为G(x)=x4+x+1 ,其对应关系如下:
需指出的是,用多项式码作为检验码时,发送器和接收器必须具有相同且提前设定的生成多项式G(x),且最高、最低项系数必须为1。编码过程是将要发送的二进制序列看做是多项式的系数,除以生成多项式,然后把余数挂在原多项式之后。循环冗余校验码译码过程是接收方用同一生成多项式除以接收到的循环冗余校验码编码,若余数为零,则传输无错。
循环冗余校验码有以下特点:
1)循环性。循环冗余校验码的码组之间存在一个循环依赖关系,即循环冗余校验码中任一码组循环移位一次(各位向右移,最右端的码移至最左端)以后,仍为该码中的一个码组。
2)冗余性。将原始信息除以生成多项式所得余数,作为冗余码进行传输。
3)实现简单。编码和解码设备较一般线性码简单,易于实现。
数据信息编码过程如下:
数据信息为M(x)=1101011011
生成式为G(x)=10011
M(x)/G(x)=11010110110000/10011(补充的“0000”只是除法需要,不是传输的数据)(www.xing528.com)
余数1110
待发送的编码T(x)=11010110111110
数据信息解码过程如下:
接收的编码信息为R(x)=11010110111110
生成式为G(x)=10011
R(x)/G(x)=11010110111110/10011
余数0
则接收正确。
数据信息为M(x)=1101011011(去除后面的四位校验码)
若余数不为0,则传输有误,纠错过程较为复杂,本书不做介绍。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。