奇偶校验码是谁发明的(奇偶校验码的经典例子)
今天给各位分享奇偶校验码是谁发明的的知识,其中也会对奇偶校验码的经典例子进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
文章目录:
关于奇偶校验码
奇偶校验:是一种通过增加冗余位使得字符中“ 1 ” 的个数恒为奇数或恒为偶数的编码方法。
如:奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数恒为奇数,如:
1 0110,0101
0 0110,0001
偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数恒为偶数,如:
1 0100,0101
0 0100,0001
另外,奇偶校验的编码方法只能检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),在发现错误后,只能要求重发,而不能对该错误进行纠正。
奇偶检验码的工作原理和具体流程
一、工作原理
奇偶校验码由n-1位信息元和1位校验元组成,可以表示成为(n,n-1)。如果是奇校验码,在附加上一个校验元以后,码长为n的码字中“1”的个数为奇数个;如果是偶校验码,在附加上一个校验元以后,码长为n的码字中“1”的个数为偶数个。
设:如果一个偶校验码的码字用A=[an-1,an-2,…,a1,a0]表示,则:(1)式中 为校验元,“+”为模二和(以后也这样表示,请注意)。
式(1)通常被称为校验方程。利用式(1),由信息元即可求出校验元。另外,如果发生单个(或奇数个)错误,就会破坏这个关系式,因此通过该式能检测码字中是否发生了单个或奇数个错误。
二、流程
1、奇校验:就是让原有数据序列中(包括你要加上的一位)1的个数为奇数
1000110(0)必须添0。原来有3个1已经是奇数了所以添上0之后1的个数还是奇数个。
2、偶校验:就是让原有数据序列中(包括你要加上的一位)1的个数为偶数
1000110(1)必须加1。原来有3个1要想1的个数为偶数就只能再添加1。
扩展资料
校验码的存在:
计算机系统运行时,各个部之间要进行数据交换.交换的过程中,会有发生误码的可能(即0变成1或1变成0),由于计算机的储存是通过二进制代码来实现的的,误码会导致储存的内容发生改变。为确保数据在传送过程正确无误,常使用检验码。
优点:简单,易于硬件实现
缺点:如上述,只能检测出奇数个错误。
因为在某些场合,发生错误的情况下,绝大多数都是出现一个错误,所以奇偶校验码有着很大的实用性。
参考资料来源:百度百科-奇偶校验码
在工程应用中应用的最多的误差检验码和误差纠错码分别是哪两种?
在工程应用中,应用的最多的误差检验码和误差纠错码分别是奇偶校验码和汉明码。
由于存在干扰,二进制信息在传输过程中会出现错误。为发现并纠正错误,提高数字设备的抗干扰能力,必须使代码具有发现错误并纠正的能力,这种代码称为误差检验码(Error-detectingCodes)。最常用的误差检验码为奇偶校验码。它的编码方法是在信息码组外增加一位监督码元,增加监督码元后,使得整个码组中“1”码元的数目为奇数或为偶数。若为奇数,称为奇校验码(Oddparity);若为偶数,称为偶校验码(Evenparity)。
奇偶校验码的特点:
1、奇偶校验码可以检测单向单错。
2、奇偶校验码中,信息码和校验码是可以分离的,故称为可分离码。
3、无需任何附加电路可以从收到的奇偶校验码中取得信息码,从而简化了译码过程。
误差纠错码又称误差信道编码,它与信源编码是信息传输的两个方面。它们之间存在对偶的关系。应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。在计算、电信、信息论和编码理论中,纠错码用于控制不可靠或嘈杂的通信信道上的数据错误。中心思想是发送者以ECC的形式用冗余信息对消息进行编码。冗余允许接收器检测在消息中任何地方可能发生的有限数量的错误,并且通常无需重传即可纠正这些错误。美国数学家RichardHamming在1940年代开创了这一领域,并于1950年发明了纠错码:Hamming(7,4)码。
最常用的误差纠错码为汉明码,汉明码是一种能纠一位错的线性分组码,由于它的编译码简单,在数据通信和计算机存储系统中广泛应用,如在蓝牙技术和硬盘阵列中。它的最小码距为3,可以纠正一位错误,但对于两位错不能检测,还可能会造成误纠。尽管发生一位错的概率相对最高,但在一些要求较高的应用中汉明码不能满足要求。合理地用k位数据位形成r个校验位的值,即保证用k个数据位中不同的数据位组合来形成每个校验位的值,使任何一个数据位出错时,蒋影响r个校验位中不同的校验位组合起变化。换言之,通过检查是哪种校验位组合起了变化,就能确定是哪个数据位错,对该位求反则实现纠错。有时两位错与某种情况的一位错对校验位组合的影响相同,必须加以区分与解决。
奇偶校验码的特点是什么?为什么说它是可靠性代码
奇偶校验码是一种用来检验代码在传送过程中是否产生错误的代码。二进制信息在传送时,可能由于外界干扰或者其他原因而发生错误,即可能由1变为0或者0变为1,它能够检验这类错误。
奇偶校验码由两部分组成,一是信息位,即要传递的信息本身,可能是一组位不限的二进制代码;二是奇偶检验位,仅一位。奇偶校验位的编码方式有两种,一是使信息位和校验位的“1”的个数为奇数,称为奇校验;二是使信息位和校验位的“1”的个数为偶数,称为偶校验。
采用奇偶校验码进行检测错误时,在发送端由编码器根据信息位编码产生奇偶校验位,形成奇偶校验码发往接收端;接收端通过检测器检查代码中含“1”的个数的奇偶,判断信息是否出错。列如,当采用偶检验时,若收到的代码含有奇数个数的“1”,则说明发生了错误。
所以它的特点:
简单,容易实现。
只有检查错误的能力,但不知道是哪里出错。
只能发现单错,无法发现双错,但由于数据中单错的概率远远大于双错的概率,所以这中编码是具有实用价值的
什么是奇偶校验
奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中"1"的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中"1"的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验"1"的个数是否为奇数,从而确定传输代码的正确性。
奇偶校验需要一位校验位,即使用串口通信的方式2或方式3(8位数据位+1位校验位)。奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。即:如果传输字节中1的个数是偶数,则校验位为“1”,奇数相反。以发送字符:10101010为例
偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。即:如果传输字节中1的个数是偶数,则校验位为“0”,奇数相反。还是以发送字符:10101010为例
数据和校验位发送给接受方后,接收方再次对数据中1的个数进行计算,如果为奇数则校验通过,表示此次传输过程未发生错误。如果不是奇数,则表示有错误发生,此时接收方可以向发送方发送请求,要求重新发送一遍数据。
优缺点:
奇偶校验的检错率只有50%,因为只有奇数个数据位发生变化能检测到,如果偶数个数据位发生变化则无能为力了╮(╯﹏╰)╭
奇偶校验每传输一个字节都需要加一位校验位,对传输效率影响很大。
奇偶校验只能发现错误,但不能纠正错误,也就是说它只能告诉你出错了,但不能告诉你怎么出错了,一旦发现错误,只好重发。
虽然奇偶校验有很多缺点,但因为其使用起来十分简单,故目前仍被广泛使用。
应用:
如何用编程确定一个字节中“1”个数的奇偶性?我们可以利用二进制数相加的特点:
0+0=0、1+0=1、1+1=0
可以看出,如果我们将一个字节的所有位相加
有奇数个“1”的字节的和为1
有偶数个“1”的字节的和为0
由此即可通过编程完成判断。实际应用中,实现方法很多,但这是相对简单的一种,这里不再赘述。
关于奇偶校验码是谁发明的和奇偶校验码的经典例子的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。
评论