软考考点笔记 之校验码

1、奇偶校验:

码距的概念:而整个编码系统中任意两个码字的的最小距离就是该编码系统的码距。用二进制来说,就是最近两个数间,几个位不同。

注:如何计算码距?

计算码距的一种方法,就是对两个位串进行异或(xor)运算,并计算出异或运算结果中1的个数。

例如110和011这两个位串,对它们进行异或运算,其结果是:

110⊕011=101;

异或结果中含有两个1,因此110和011之间的码距就等于2。

 

然而,如果用四个二进数字来编8个码字,那么在码字间的最小距离可以增加到2,如图2的表中所示。

 

 

 

信息序号

二进码字
a2a1a0
0000
1001
2010
3011
4100
5101
6110
7111

 

图 1

 

 

 

信息序号

二进码字
a3a2a1a0
00000
11001
21010
30011
41100
50101
60110
71111

 

图 2

注意,图8-2(所示其实是一个偶校验a3位就是校验位)的8个码字相互间最少有两bit的差异。因此,如果任何信息的一个数位被颠倒,就成为一个不用的码字,接收机能检查出来。例如信息是1001,误收为1011,接收机知道发生了一个差错,因为1011不是一个码字(表中没有)。然而,差错不能被纠正。假定只有一个数位是错的,正确码字可以是1001,1111,0011或1010。接收者不能确定原来到底是这4个码字中的那一个。也可看到, 在这个系统中,偶数个(2或4)差错也无法发现。

为了使一个系统能检查和纠正一个差错,码间最小距离必须至少是“3”。最小距离为3时,或能纠正一个错,或能检二个错,但不能同时纠一个错和检二个错。编码信息纠错和检错能力的进一步提高需要进一步增加码字间的最小距离。 图8-3的表概括了最小距离为1至7的码的纠错和检错能力。

 

 

 

码距

码 能 力
检错  纠错

 

1

2

3

4

5

6

7

 

0    0

1    0

2 或 1

2 加 1

2 加 2

3 加 2

3 加 3

 

图3

 奇偶校验可描述为:给每一个码字加一个校验位,用它来构成奇性或偶性校验。例如,在图8-2中,就是这样做的。可以看出,附加码元d3,是简单地用来使每个字成为偶性的。因此,若有一个码元是错的,就可以分辨得出,因为奇偶校验将成为奇性。奇偶校验编码通过增加一位校验位来使编码中1个个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。因为其利用的是编码中1的个数的奇偶性作为依据,所以不能发现偶数位错误。

奇偶校验位可由硬件电路(异或门)或软件产生:

偶校验位 an =a0⊕a1⊕a2⊕…⊕an-1, 奇校验位 an =NOT(a0⊕a1⊕a2⊕…⊕an-1)。

2、海明码:参见笔记本2018-5-11晚20部分记录也可参照如下记录

海明码校验公式:

                     假设K个数据位设置R个校验位

                     2^R-1 ≥ K+R

虽然研究过很多次了,但只是当时记得,在模拟2017年上半年试题时,第5题还是记错公式了…………!还得多看看,想不起来就看。尽管当时可能是理解了。

 

3、CRC码

1、已知多项式和原报文,求CRC编码,如:使用多项式G(x)=x^5 + x^4 + x +1,对报文10100110进行CRC编码,则编码后的报文是什么?
方法与步骤:

步骤1:对报文10100110,在末尾添加所给多项式的最高次阶个0,如本题为x^5,则添加5个0,变为:1010011000000。

步骤2:由多项式G(x)=x^5 + x^4 + x +1,得其阶数为1的二进制编码为:110011。

步骤3:步骤1中求得的1010011000000对步骤2中求得的110011进行模二除法,所得到的余数即为校验码,把校验码添加在原报文尾部即为所求的编码报文1010011011000,具体如下:

注意: 

余数的位数一定要是比除数位数只能少一位,哪怕前面位是0,甚至是全为0(附带好整除时)也都不能省略。 

2.已知道接收到的CRC编码,求原编码或判断是否出错,如:已知G(x)=x^5 + x^4 + x +1,接收的为1010011011001,问是否出错?

步骤一:由多项式G(x)=x^5 + x^4 + x +1,得其阶数为1的二进制编码为:110011。

步骤二:用接收的报文1010011011001对步骤一的110011进行模二除法,看余数是否为0,如为0则正确,如不为0,则出错,计算余数为1,则出错。如下图:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值