循环冗余检验(CRC,Cyclic Redundancy Check)码是一种典型的循环码,又称多项式码,循环码是线性分组码的一个重要子类。其特点是:检错能力极强,开销小,易于用编码器及检测电路实现。
欲进一步了解循环冗余码CRC概念的请进入。
CRC码的检错能力很强,其检错能力表现为:
1)能检查出全部单个错。设信息位中有某一位x出错,那么只要选取G(x)为零次项等于1的多项式,就可达到此目的;
2)能检查出全部离散的二位错。设信息位序列中的第i位和第j位有错,那么,只有选取的G(x)是不能除尽二项式(x j-i +1)的多项式,且其阶(n-k)>(j-i),就能检查这样的二位错。全面考虑所有1≤i<j≤k的情形,就能检查出全部的二位错;
3)能检查出全部奇数个错,即1,3,5,…个错。因为奇数项错误多项式必不含有因式x+1,所以只要选取的G(x)含有因式x+1,即可检查全部奇数个错;
4)能检查出全部长度等于或小于n-k的突发错;
5)能以[1-(1/2)r-1]的概率检查出长度为(r+1)位的突发错以及能以[1-(1/2)r ]的概率检查出多于(r+1)位的突发错(其中r=n- k)。
例如,如果n-k=16,则该CRC校验码能全部检查出小于等于16位长度的突发错;并能以[1-(1/2)16-1]= 99. 997%的概率检查出长度为17位的突发错,漏检概率仅为0.003%。
CRC的本质是模-2除法的余数,采用的除数不同,CRC的类型也就不一样。通常,CRC的除数用生成多项式来表示。在循环码中,生成多项式的选取至关重要,它对循环码的检错性能影响很大。目前已有多种生成多项式被列入各类标准中,例如:原CCITT推荐的CRC-CCITT的生成多项式、IEEE 802.3标准的计算机局域网中采用的CRC-32生成多项式、美国二进制同步系统中采用的CRC-16或CRC-12生成多项式等,具体详见下表1。这些生成多项式结构的确定都经过了严格的数学分析与试验。
表1:相关标准中采用的CRC码生成多项式
欲进一步了解信道编码相关码型的请进入。