(1)奇偶校验码
奇偶校验码是一种最简单的校验码,其编码规则:先将所要要传送的数据码元分组,并在每组的数据后面附加一位冗余位即校验位,使该组包括冗余位在内的数据码元中”1″的个数保持为奇数(奇校验)或偶数(偶校验)。在接收端按照同样的规则检查,如发现不符,说明有错误发生;只有”1″的个数仍然符合原定的规律时,认为传输正确。实际数据传输中所采用的奇偶校验码分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验三种。垂直奇偶校验是一字符为单位的校验方法。例如,传输数据信息为”1010001″,采用偶校验时,附加位为”1″,则发送信息变为”10100011″;采用奇校验时,附加位为”0″,发送信息变为”10100010″;
(2)循环冗余校验码(CRC)
循环冗余校验码CRC(CyclicRedundancyCode)采用一种多项式的编码方法。把要发送的数据位串看成是系数只能为”1″或为”0″的多项式。一个k位的数据块可以看成Xk-1到X0的k项多项式的系数序列。例如,”110001″有6位,表示多项式是”X5+X4+1″。多项式的运算是模2运算。采用CRC码时,发方和收方必须事先约定一个生成多项式G(X),并且G(X)的最高位和最低必须是1。要计算m位数据块的M(X)的校验和,生成多项式必须比该多项式短。其基本思想是:将校验和附加在该数据块的末尾,使这个带校验和的多项式能被G(X)除尽。当接收方收到带校验和的数据块时,用G(X)去除它,如果有余数,则传输有错误。
纠错码与检错码相比其功能更强,它不但能检错还能纠错。海明码就是一种能够纠正一位错误的检错码。海明码是海明(H.W.Hamming)于1950年提出的一种码制。在发送数据之前将数据按照海明码制形成海明码,然后发送海明码,到达对方后根据接收到的海明码进行解释分析、判错、纠错。
当对方收到海明码后应进行以下检错和纠错:
注意:海明码只能纠正一位错,若多位出错则无能为力。
【例】已知数据”11001100″在发送前,编码后得到的海明码是”101110001100″(这里采用偶校验),经信道传输到达接收端后,设定由于噪声干扰或其它方面的原因,数据被改为”100110001100″,即第3位出错。
分析海明码检错与纠错过程。按照上述海明码检错、纠错原理与过程,分析可得:
未经允许不得转载:TacuLee » 检错码(奇偶校验与循环冗余)与纠错码(汉明码)