打印本文 关闭窗口 | ||||||||||||||||||||||||||||||||||||||||||||||||
CRC的译码与纠错来源于瑞达科技网 | ||||||||||||||||||||||||||||||||||||||||||||||||
作者:佚名 文章来源:网络 点击数 更新时间:2011/1/18 文章录入:瑞达 责任编辑:瑞达科技 | ||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
将收到的循环校验码用约定的生成多项式G(x)去除,如果码字无误则余数应为0,如有某一位出错,则余数不为0,且不同数位出错余数会不同。我们通过上例求出其出错模式,如表2-4所示。更换不同的待测码字可以证明:余数与出错位的对应关系是不变的,只与码制和生成多项式有关。因此表2.4给出的关系可作为系统线性(7,4)分组码的出错判别依据。对于其他码制或选用其他生成多项式,出错模式将发生变化。 表2.4 (7,4)循环码的出错模式 ( 生成多项式G(x)=1011 )
如果循环码有一位出错,用G(x)作模2除将得到一个不为0的余数。如果对余数补0继续除下去,我们将发现一个有趣的结果:各次余数将按表2.4中的内容顺序循环。例如第七位出错,余数将为001,补0后再除,第二次余数为010,以后依次为100,011,…,反复循环。这是一个有价值的特点。如果我们在求出余数不为0之后,一边对余数补0继续做模2除,同时让被检测的校验码字循环左移。表2.4说明,当出现余数(101)时,出错位也移到A1位置。可通过异或门将它纠正后在下一次移位时送回A7。继续移满一个循环(对7,4码共移七次),就得到一个纠正后的码字。这样我们就不必像海明校验那样用译码电路对每一位提供纠正条件。当数据位数增多时,循环码校验能有效地降低硬件代价,这是它得以广泛应用的主要原因。 将这些要求反映为数学关系是比较复杂的,对一个(n,k)码来说,可将(xn -1)分解为若干质因子式(注意是模2运算),根据编码所要求的码距,选取合适的r值,选其中的一个因式或若干因式的乘积作为生成多项式,为r次多项式,且最高、最低位系数均为1。
|
||||||||||||||||||||||||||||||||||||||||||||||||
打印本文 关闭窗口 |