关于奇偶校验与海明码

一. 奇偶效验码

1.定义:奇偶校验码是奇校验码和偶校验码的统称,是一种检错码,用于检查二进制数据的位错,并且用1个比特位来标记校验结果。所以当我们的数据有n位时,要传输给接收端的数据有n+1位。

2.运用

(1)奇校验:让原有数据序列中(包括你要加上的一位)1的个数为奇数。

如:1000110(0)原来有3个1是奇数,所以添上0之后1的个数还是奇数个。

 (2)偶校验:让原有数据序列中(包括你要加上的一位)1的个数为偶数

如:1000110(1)原来有3个1,要想1的个数为偶数就要加一个1。

3.原理:假如采用奇校验,发送端发送的一个字符编码(含校验位)中,“1”的个数一定为奇数个,在 接收端对接收字符二进制位中的“1”的个数进行统计,若统计出“1”的个数为偶数个,则意味着传输过程中有1位(或奇数位)发生差错。

4.缺点:只能发现数据发生了错误,无法确定是哪个位置发生了错误,只能要求发送方重发。且当数据发生了偶数个错误时,奇偶检验无法发现错误,也就是数据有偶数个错误时它没有纠错功能。

二. 海明码

1.定义:

  ①海明码一般指汉明码。汉明码(Hamming Code),是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM)。

  ②海明码本质上仍然是利用的奇偶校验的特性,对于奇偶校验,编码数据中只能有一个校验码,其他为数据码。海明码通过插入多个校验码的方式来扩大码距,但是仍然不能违背奇偶校验的原则,也就是说一组奇偶校验编码数据中,只能包含一个校验码。这件事情非常重要。

2.运用

  ①校验:汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。

  ②纠错:在接收端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。但这种方法比简单重传协议的成本要高。汉明码利用奇偶块机制降低了前向纠错的成本。

三. 区别:

  ①奇偶校验码不能纠错,但海明码可以。

  ②奇偶校验码功能简单,实现起来比较容易。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值