概念

检错和纠错

检错:检查出错误,但不知道错在哪里

纠错:检查出错误,而且知道错在哪里,并纠正

码距的概念

【0,1】码距1

【00,11】码距2

【000,111】码距3

【0000,0011,1100,1111】最小码距2

码距与检错、纠错有何关系?

1、在一个码组内为了检测e个误码,要求最小码距d应该满足:d≥e+1

2、在一个码组内为了纠正t 个误码,要求最小码距d应该满足:d≥2t+1

当码距为1时,无法检错和纠错

当码距为2时,可以检错,但无法纠错

当码距为3时,可以检错,也可以纠错,根据公式,可以纠正1位出错

所以,拉大码距可以实现检错和纠错

奇偶校验

检错码=信息字段+校验字段

奇校验:信息字段+校验字段中1的个数是奇数个

偶校验:信息字段+校验字段中1的个数是偶数个

如果需要传送的比特信息是C1C2C3C4C5,采用偶校验,则C1C2C3C4C5为信息字段,C6则为校验字段

计算机用模二加法对C1C2C3C4C5信息字段进行处理添加校验字段C6,经传输接收后对信息字段模二加法生成校验字段与传输过来的校验字段进行比较,如不一致,则出现误码。

奇偶校验只能作为检错码,而且只能判断1位出错,不能实现纠错功能

海明校验

在信息字段(m位)加入K位的校验码,则会产生2的K次方种校验信息,则推导出:

$$ m+k≤2^k-1 $$

所以K的取值必须满足上述不等式成立。

举例:信息码01001101,采用偶校验,那么最终生成的纠错码是什么?

首先确定K的取值,9+k≤2的k次方 ,用穷举法,则k=4 ,满足即可,如果k太大,浪费带宽

校验位的位置是2的幂次方,即1,2,4,8....

0100 110 1
121110090807060504030201

1=1(校验位)

2=2(校验位)

3=1+2(信息位)

4=4(校验位)

5=1+4(信息位)

6=2+4(信息位)

7=1+2+4(信息位)

8=8(校验位)

9=1+8(信息位)

10=2+8(信息位)

11=1+2+8(信息位)

12=4+8(信息位)

每个信息位都是由至少2个2的幂次方组成

将加法中包含1的用01位校验

将加法中包含2的用02位校验

将加法中包含4的用04位校验

将加法中包含8的用08位校验

01校验位应该检查01 03 05 07 09 11这几位,1的个数必须是偶数个,则01应该填1

02校验位应该检查02 03 06 07 10 11这几位,1的个数必须是偶数个,则02应该填0

04校验位应该检查04 05 06 07 12这几位,1的个数必须是偶数个,则04应该填0

08校验位应该检查08 09 10 11 12这几位,1的个数必须是偶数个,则08应该填1

那么添加校验字段后的编码字为010011100101

海明校验码的检错和纠错能力

可检测2位出错,但是只能对1位纠错

举例,如果06、02、04位同时翻转,则形成了一个不一样的合法编码字,就检查不出来

最小海明距离

任何两个合法的编码字之间至少有几位是不一样=最小海明距离

上述例子最小海明距离为3

CRC校验

如原始报文为11001010101,其生成多项式为:

$$ X^4+X^3+X+1 $$

生成多项式由收发双方约定。

生成多项式的最高幂次决定CRC校验码的位数。

1、将原始报文后添加4个0

2、将补0后的报文模2除以11011

3、规则:异或运算,同为0,异为1

4、算到最后,生成4为CRC码,添加到原始报文后。

5、接收方收到数据后,进行模2除法,判断是否为0

CRC只作为检错码

一旦出现错误,要求重发

以太网(802.3)、ATM等都用到CRC校验码

最后修改:2022 年 04 月 13 日
如果觉得我的文章对你有用,请随意赞赏