水平垂直奇偶校验的原理
- 格式:doc
- 大小:10.82 KB
- 文档页数:2
奇偶校验电路的工作原理
奇偶校验是一种简单的校验码技术,用于检测和纠正数据传输错误。
奇偶校验电路的工作原理是:
1. 在数据的末尾添加一个额外的二进制位作为奇偶校验位。
2. 根据数据位中1的个数是奇数还是偶数,来设置校验位的状态。
3. 如果1的个数为奇数,则设置校验位为1;如果1的个数为偶数,则设置校验位为0。
4. 发送端对要传输的数据添加校验位后发送出去。
5. 接收端收到数据后,重新计算1的个数,与校验位对比。
6. 如果计算结果与校验位一致,则表示传输正确。
7. 如果计算结果与校验位不一致,则表示传输出错。
8. 通过简单的逻辑运算即可检测和纠正单位错误。
通过添加少量冗余码并简单地重复发送端的运算,奇偶校验可以有效地检测代码在传输过程中单位发生翻转的错误,从而提高数据传输的可靠性。
计算机网络原理简单差错控制编码奇偶校验码是一种最简单的无纠错能力的检错码,其编码规则是先将数据休码分组,如ASCLL码中的一个字符或者若干个字符分为一组。
在各组数据后面附加一位校验位,使该数据连校验位在内的码元中“1”的个数恒为偶数则为偶校验,恒为奇数则为奇校验,奇偶校验的纠错能力不强,它只能检测出码元中的任意奇数个错误。
若有偶数个错误必定漏检。
由于奇偶校验码容易实现,所以当信道干扰不太严重以及码长n不很长时很有用,特别是在计算机通信网的数据传输中经常用到这种检错码。
根据数据代码的分组方法,奇偶校验码可分为水平奇偶校验、垂直奇偶校验和垂直水平奇偶校验。
1.水平奇偶校验如表所示,在水平奇偶校验中,把数据先以适当的长度划分成小组,并把码元按表中所示的顺序一列一列地排列起来,然后对水平方向的码元进行奇偶校验,得到一列校验位,附加在其他各列之后,最后按行的顺序进行传输。
水平奇偶校验能查出水平方向上奇数个错误和不大于数据代码长度的突发错误,无纠错能力,但产生校验码及校验逻辑相对复杂。
水平奇偶校验2.垂直奇偶校验如表所示,在垂直奇偶校验中,把数据先以适当的长度划分成小组,并把码元按表中所示的顺序一列一列地排列起来,然后对重直方向的码元进行奇偶校验,得到一行校验位,附加在其他各行之后,然后按列的顺序进行传输。
重直奇偶校验能查出列上的奇数个错误,只能查出50%的突发错误,无纠错能力,但产生校验码及校验逻辑相对简单。
垂直奇偶校验3.垂直水平奇偶校验这种方法是在水平奇偶校验和垂直奇偶校验的基础上,把两者结合起来对码元进行校验,如表所示。
传送时先传第1列,然后传第2列……最后传第11列。
因此在信道中传送的二进制信号序列为101011011011010111101101…111001。
这种方法按列传输时能发现所有长度小于或者等于n+1(n为列的码元数)个突发性错误和其他错误。
这种方法也可按行传输,它能发现所有长度小于或者等于每一行码元数m+1个突发性或者其他错误。
水平垂直奇偶校验水平垂直奇偶校验是数据中最基本的一种检查方法,它可以帮助确保数据的有效性和完整性。
它的最初的应用是用于磁带和磁盘的读写保护,但如今它也被广泛应用于数据传输、存储和处理中。
水平垂直奇偶校验又被称为CRC校验,是一种推理技术,它可以帮助检查数据传输或存储过程中经常发生的数据错误。
它通过计算一组数据的相关系数,来确定数据的完整性或完整性。
它的工作原理是:首先,把数据分割成一行行的数据,然后从数据的最后一列开始检查,把每一行数据中各列的值加起来,比如,如果每行有三个数据,则可以将它们加起来,如果总和可以被2整除,则表明没有数据发生错误,数据完整,如果不能被2整除,则表明有数据丢失或出错,因此可以相应地进行修复或更正。
水平垂直奇偶校验的主要优点不仅在于它可以确定发生的错误,而且它的计算效率也很高。
水平垂直奇偶校验的另一个优点是可以检测出一组连续数据中的一个错误,这种错误称为“突变”,它可以成功地发现一组数据中的某些错误,而不会因为某个字节的错误而把整个文件都抛弃。
此外,不管是传输还是存储,都可以使用水平垂直奇偶校验,它可以在这两种情况下都发挥重要作用。
比如,它可以用于在磁盘中存储大量数据的情况,以帮助排除读写错误,甚至帮助恢复丢失的数据;它还可以用于数据传输,帮助发现错误并及时恢复,以避免数据传输出现故障。
此外,水平垂直奇偶校验还可以用于网络数据传输中,它可以有效地发现和消除网络传输中可能出现的错误,从而减少网络故障的发生率,而且它的计算速度比其他类型的校验更快,使得它具有更高的性能和效率。
总之,水平垂直奇偶校验是一种重要的信息安全技术,它可以有效地确保数据的完整性和准确性,而且具有计算高效性,因此被广泛应用于数据传输、存储和处理中。
奇偶校验原理
奇偶校验是一种数据校验方式,用于检测数据传输过程中可能出现的错误。
在奇偶校验中,一个额外的比特位被添加到数据位中,称为校验位。
校验位的值取决于数据位中1的个数,以此来保证发送和接收的数据在传输过程中的完整性。
具体的奇偶校验原理如下:
1. 奇校验:发送方在发送数据之前,统计数据位中的1的个数,如果1的个数是奇数,则设置校验位为0,否则设置为1。
接
收方在接收到数据后,再次统计数据位中的1的个数,如果1
的个数是奇数,说明数据在传输过程中没有出现错误。
如果1
的个数是偶数,说明数据在传输过程中出现了错误。
2. 偶校验:发送方在发送数据之前,统计数据位中的1的个数,如果1的个数是奇数,则设置校验位为1,否则设置为0。
接
收方在接收到数据后,再次统计数据位中的1的个数,如果1
的个数是偶数,说明数据在传输过程中没有出现错误。
如果1
的个数是奇数,说明数据在传输过程中出现了错误。
奇偶校验通过统计数据位中1的个数来检测错误,因为在传输过程中如果发生了一个位的错误,那么1的个数一定会改变,从而可以通过校验位的不匹配来判断是否出现了错误。
虽然奇偶校验可以检测出某些错误,但它并不能纠正错误,只能检测错误的存在。
因此,在实际应用中,常常会有其他更复杂的校验机制来提高数据传输的可靠性。
1.垂直奇偶校验码: 编码原理:(1)将整个发送的数据块分为定长为m 的n 个组,一般m 为字符位数或位数的倍数,一组称为一个码字。
(2)每组末位按“1”的个数位奇数或者偶数的规律加一个校验位jr (n j ,3,2,1=),使得每组包括校验位在内“1”的个数为奇数或偶数。
为偶数的称为偶校验,为奇数的称为奇校验。
(ijb 为一个比特位,运算为二进制运算)校验位计算为: 偶校验 mj j j j b b b r +++= 21nj ,3,2,1= 奇校验121++++=mj j j j b b b r nj ,3,2,1=举例说明:每一列代表一个码字:1011111001101偶校验计算的校验位为:0111 奇校验计算的校验位为:1000校验能力:只能检测每列码字中的奇数个错误,所有偶数个错误全部漏检。
实现方法:用硬件和软件均可,可以边发送边产生冗余位,接收时可以边接收边去掉冗余位。
2.水平奇偶校验码 编码原理:(1)将整个发送的数据块分为定长为m 的n 个组,一般m 为字符位数或位数的倍数,一组称为一个码字。
(2)将n 个码字排成一个矩阵,对各个码字相应横向位进行奇偶校验。
(校验位的生成与垂直奇偶校验码生成方式一致)。
偶校验 in i i i b b b r +++= 21m i ,3,2,1= 奇校验 121++++=in i i i b b b r m i ,3,2,1=(3)发送时将所有码字发送完后发送校验位。
举例说明: 奇 偶每一列代表一个码字:1011111001101010 1101校验能力:可以检测各个码字同一位上的奇数位错,对于长度小于或等于m 的突发错误,由于分布在不同行中,可以检测到。
实现方式:用硬件和软件均可,需要借助存储器。
3.水平垂直奇偶校验编码原理:同时进行垂直和奇偶校验。
(过程略)校验能力:冗余度大,具有更强检错能力。
可检验3位以下的全部错误,所有奇数位错,突发长度小于或等于m+1的突发错误以及绝大多数偶数位错。
奇偶校验码的工作原理
嘿!今天咱们来聊聊奇偶校验码的工作原理呀!哎呀呀,这可真是个有趣又重要的话题呢!
首先呢,咱们得搞清楚啥是奇偶校验码?简单来说呀,它就是一种用来检查数据传输过程中有没有出错的方法!哇!是不是觉得很神奇?
在奇偶校验码中呀,分为奇校验和偶校验两种。
奇校验的时候呢,如果数据位中1 的个数是奇数,那校验位就是0 ;反之,如果1 的个数是偶数,校验位就是1 。
偶校验呢,则正好相反!
比如说呀,有一组数据1010 ,如果是奇校验,因为 1 的个数是2 ,是偶数,所以校验位就得是1 ,最终变成10101 。
如果是偶校验呢,因为1 的个数是偶数,校验位就是0 ,最终就是10100 。
哎呀呀,是不是有点绕?
那奇偶校验码是怎么工作的呢?当数据传输的时候,接收方会按照相同的校验规则来计算,如果计算出来的校验位和接收到的校验位不一样,那就说明数据出错啦!哇,这可太重要了,能及时发现错误,避免很多麻烦呢!
不过呀,奇偶校验码也有它的局限性哟!它只能检测出奇数个错误,但如果是偶数个错误,它可能就发现不了啦!哎呀,这是不是有点小遗憾?
但是呢,尽管有这样的不足,奇偶校验码在很多简单的系统中还是发挥了很大的作用哟!它简单易懂,实现起来也不复杂,对于一些
对错误检测要求不是特别高的情况,那可是相当实用的呀!
怎么样?现在是不是对奇偶校验码的工作原理清楚一些啦?哎呀呀,希望这能让你对这个神奇的东西有更深入的了解呢!。
常用校验码(奇偶校验码、海明校验码、CRC校验码)计算机系统运行时,各个部之间要进行数据交换. 为确保数据在传送过程正确无误,常使用检验码. 我们常使用的检验码有三种. 分别是奇偶校验码、海明校验码和循环冗余校验码(CRC)。
奇偶校验码奇偶校验码最简单,但只能检测出奇数位出错. 如果发生偶数位错误就无法检测. 但经研究是奇数位发生错误的概率大很多. 而且奇偶校验码无法检测出哪位出错.所以属于无法矫正错误的校验码。
奇偶校验码是奇校验码和偶校验码的统称. 它们都是通过在要校验的编码上加一位校验位组成. 如果是奇校验加上校验位后,编码中1的个数为奇数个。
如果是偶校验加上校验位后,编码中1的个数为偶数个。
例:原编码奇校验偶校验0000 0000 1 0000 00010 0010 0 0010 11100 1100 1 1100 01010 1010 1 1010 0如果发生奇数个位传输出错,那么编码中1的个数就会发生变化. 从而校验出错误,要求从新传输数据。
目前应用的奇偶校验码有3种.水平奇偶校验码对每一个数据的编码添加校验位,使信息位与校验位处于同一行.垂直奇偶校验码把数据分成若干组,一组数据排成一行,再加一行校验码. 针对每一行列采用奇校验或偶校验例: 有32位数据10100101 00110110 11001100 10101011垂直奇校验垂直偶校验数据10100101 1010010100110110 0011011011001100 1100110010101011 10101011校验00001011 11110100水平垂直奇偶校验码就是同时用水平校验和垂直校验例:奇校验奇水平偶校验偶水平数据 10100101 1 10100101 000110110 1 00110110 011001100 1 11001100 010101011 0 10101011 1校验 00001011 0 11110100 1海明校验码海明码也是利用奇偶性来校验数据的. 它是一种多重奇偶校验检错系统,它通过在数据位之间插入k 个校验位,来扩大码距,从而实现检错和纠错.设原来数据有n位,要加入k位校验码.怎么确定k的大小呢? k个校验位可以有pow(2,k) (代表2的k次方) 个编码,其中有一个代表是否出错. 剩下pow(2,k)-1个编码则用来表示到底是哪一位出错. 因为n个数据位和k个校验位都可能出错,所以k满足pow(2,k)-1 >= n+k。
概述奇偶校验法常用于识别数据是否发生传输错误,并且可以启动校正措施,或者舍弃传输发生错误的数据,要求重新传输有错误的数据块。
编辑本段奇偶校验法奇偶校验法是一种很简朴并且广泛使用的校验方法。
这种方法是在每一字节中加上一个奇偶校验位,并被传输,即每个字节发送九位数据。
数据传输以前通常会确定是奇校验还是偶校验,以保证发送端和接收端采用相同的校验方法进行数据校验。
假如校验位不符,则认为传输出错。
奇校验是在每个字节后增加一个附加位,使得“1”的总数为奇数。
奇校验时,校验位按如下规则设定:假如每字节的数据位中“1”的个数为奇数,则校验位为“0”若为偶数,则校验位为“1”。
奇校验通常用于同步传输。
而偶校验是在每个字节后增加一个附加位,使得“1”的总数为偶数。
偶校验时,校验位按如下规则设定:假如每字节的数据位中“1”的个数为奇数,则校验位为“1”;若为偶数,则校验位为“0”。
偶校验常用于异步传输或低速传输。
校验的原理是:假如采用奇校验,发送端发送的一个字符编码(含校验位)中,“1”的个数一定为奇数个,在接收端对接收字符二进制位中的“1”的个数进行统计,若统计出“1”的个数为偶数个,则意味着传输过程中有1位(或奇数位)发生差错。
事实上,在传输中偶尔—位出错的机会最多,故奇偶校验法常常采用。
然而,奇偶校验法并不是一种安全的检错方法,其识别错误的能力较低。
假如发生错误的位数为奇数,那么错误可以被识别,而当发生错误的位数为偶数时,错误就无法被识别了,这是因为错误互相抵消了。
数位的错误,以及大多数涉及偶数个位的错误都有可能检测不出来。
它的缺点在于:当某一数据分段中的一个或者多位被破坏时,并且在下一个数据分段中具有相反值的对应位也被破坏,那么这些列的和将不变,因此接收方不可能检测到错误。
常用的奇偶校验法为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验。
编辑本段垂直奇偶校验垂直奇偶校验是在垂直方向上以列的形式附加上校验位。
假设数据格式及其发送顺序如图1所示,则垂直奇偶校验的编码规则如图2所示。
我们知道,数字数据在其传输线路上会受到各种干扰的影响,有时候会产生误码,因此必须引入数据校验技术来验证数据传输的正确性和有效性。
目前,最为普通的两种校验技术就是循环冗余校验和奇偶校验技术。
下面将依次说明两种校验技术的原理。
奇偶校验在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。
奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。
接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。
注意,奇校验或偶校验由通信双方提前约定。
循环冗余校验奇偶校验码作为一种检错码虽然简单,但是漏检率太高。
在计算机网络和数据通信中用的最广泛的检错码,是一种漏检率低得多也便于实现的循环冗余码CRC (Cyclic Redundancy Code),CRC码又称为多项式码。
首先说明一个概念:生成多项式G(x),目前国际上生成多项式有下面几类标准:CRC-12码: G(x)=X12+X11+X3+X2+X+1(X后数字表示X的幂次,下同)CRC-16码: G(x)=X16+X15+X2+1CRC-CCITT码: G(x)=X16+X12+X5+1CRC-32码: G(x)=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+X+1 针对不同的数据传输类型(数据位不同,同步or异步传输)可选择不同的传输标准。
此外,不同国家也采用不同生成多项式标准。
下面先给两个个例子(纯数学运算),大家先体会一下运算过程:例1.已知:信息码:110011 信息多项式:K(X)=X5+X4+X+1生成码:11001 生成多项式:G(X)=X4+X3+1(r=4,表示冗余码位数)求:循环冗余码和码字。
解:1)(X5+X4+X+1)*X4的积是 X9+X8+X5+X4 对应的码是1100110000。
奇偶校验的工作原理嘿,朋友们!今天咱来唠唠奇偶校验的工作原理。
你说奇偶校验就像是个特别细心的小管家。
咱平时发个信息啊,传个数据啥的,就跟送快递一样。
奇偶校验呢,就在旁边盯着,生怕这个“快递包裹”在路上出啥岔子。
想象一下,信息就像是一群排好队的小人儿,一个一个地往前走。
奇偶校验呢,就负责看看这排小人儿的数量是奇数个还是偶数个。
如果规定是奇数个,那它就会一直盯着,要是中间突然多了一个或者少了一个小人儿,它马上就能察觉,“哎呀,不对劲啊!”然后赶紧告诉咱们,这里出问题啦。
这就好比咱出门前总要照照镜子,看看衣服穿得整齐不整齐。
奇偶校验就是那面镜子,能帮咱们发现数据这个“衣服”有没有穿好。
要是没有它,说不定咱发出去的信息就变得乱七八糟,对方收到了都不知道是啥意思。
比如说,你给朋友发了一串数字,本来应该是 12345,结果中间丢了个3,变成了 1245,那朋友收到肯定就糊涂啦。
但有了奇偶校验在,它就能发现这个错误,让你知道得重新发一次。
奇偶校验还有个厉害的地方,它不只是能发现错误哦,有时候还能帮忙修正一些小错误呢!就像一个会魔法的小精灵,轻轻挥动魔法棒,就能让数据变得正确。
你说这奇偶校验是不是特别神奇?它虽然看起来不起眼,但在数据传输的世界里,那可是起着至关重要的作用呢!没有它,那数据传输可就乱套啦,就像没有交通规则的马路一样,到处都是混乱。
咱生活中很多地方都离不开奇偶校验呢。
你想想,你在网上购物的时候,你的订单信息要是传错了,那可不得了。
或者你和朋友视频聊天,画面和声音的数据要是出了问题,那得多别扭啊。
所以啊,奇偶校验这个小管家可得好好感谢它。
它默默地工作着,为咱们的数据传输保驾护航。
下次你再享受着快速、准确的数据传输时,别忘了在心里给奇偶校验点个赞呀!它可真是个大功臣呢!这就是奇偶校验的工作原理啦,是不是挺有意思的?原创不易,请尊重原创,谢谢!。
校验之:海明码校验、奇偶校验1、奇偶校验码奇偶校验通过在编码中增加⼀个校验位来使编码中的1的个数为奇数(奇校验)或者偶数(偶校验),从⽽使码距变为2.对于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况。
既当合法编码中奇数位出现错误。
也就是1变成0或者0变成1,其编码的奇偶性就发⽣了变化,从⽽发现错误。
但是这种校验只能发现出现了错误但是不知道具体是哪⼀位发⽣了错误。
8421码的奇偶校验码⼗进制数 8421 BCD码带奇校验位的8421码带偶校验位的8421码000000000 10000 0100010001 00001 1200100010 00010 1300110011 00011 0401000100 10100 1501010101 00101 0601100110 10110 0701110111 00111 1810001000 01000 1910011001 11001 0常⽤的奇偶校验有三种:⽔平奇偶校验,垂直奇偶校验校验和⽔平垂直奇偶校验。
⽔平奇偶校验:对每⼀种数据的编码添加校验位,使信息位与校验位处于同⼀⾏垂直奇偶校验:这种校验将数据分为若⼲组,⼀组⼀⾏,整齐排列,再加上⼀⾏校验位,针对每⼀列采样奇校验或偶校验。
对32位数据:10100101 00110110 11001100 10101011 进⾏校验:编码分类垂直奇校验垂直偶校验数据1010010100110110110011001010101110100101001101101100110010101011校验位0000101111110100就是这个意思:--------------------------------------------------------------------------------------------------------------⽔平校验与垂直⽔平校验都类似。
关于奇偶校验232&485 2009-08-01 09:23:13 阅读365 评论0 字号:大中小Ø奇偶校验原理:通过计算数据中“1”的个数是奇数还是偶数来判断数据的正确性。
在被校验的数据后加一位校验位或校验字符用作校验码实现校验。
Ø校验位的生成方法Ø奇校验:确保整个被传输的数据中“1”的个数是奇数个,即载荷数据中“1”的个数是奇数个时校验位填“0”,否则填“1”;偶校验:确保整个被传输的数据中“1”的个数是偶数个,即载荷数据中“1”的个数是奇数个时校验位填“1”,否则填“0”。
Ø使用奇偶校验码校验的特点:Ø校验处理过程简单,但如果数据中发生多位数据错误就可能检测不出来,更检测不到错误发生在哪一位;主要应用于低速数字通信系统中,一般异步传输模式选用偶校验,同步传输模式选用奇校验。
Ø按校验的数据量和生成校验码的方式分三类Ø垂直奇偶校验码:以一个字符作为校验单位纵向生成校验码位;Ø水平奇偶校验码:以多个字符作为校验单位横向生成校验码位;Ø水平垂直冗余校验码(方阵校验码):以多个字符作为校验单位水平垂直两个方向共同生成校验字符。
Ø垂直奇偶校验码是以单个字符为校验单位生成的一种校验码。
——如何理解垂直?Ø例如使用ASCII编码的一个字符由8bit组成,其中低7bit为信息位,最高1bit作为校验位。
Ø假设某一字符的标准ASCII编码为0011000,根据奇偶校验规则,如果采用奇校验,则校验位应为1(这样字符中1的个数才能为奇数),即00110001;如果采用偶校验,校验位应为0,即00110000。
垂直奇偶校验码的特点:校验处理过程简单,但如果字符中发生偶数位的错误就检测不出来,也检测不到错误发生在哪一位。
水平奇偶校验码是以字符组为校验单位而生成,对一组字符中的相同位进行校验。
存储器RO M的水平垂直奇偶校验法奇偶校验原理:通过计算数据中“1”的个数是奇数还是偶数来判断数据的正确性。
在被校验的数据后加一位校验位或校验字符用作校验码实现校验。
校验位的生成方法
奇校验:确保整个被传输的数据中“1”的个数是奇数个,即载荷数据中“1”的个数是奇数个时校验位填“0”,否则填“1”;
偶校验:确保整个被传输的数据中“1”的个数是偶数个,即载荷数据中“1”的个数是奇数个时校验位填“1”,否则填“0”。
使用奇偶校验码校验的特点:
校验处理过程简单,但如果数据中发生多位数据错误就可能检测不出来,更检测不到错误发生在哪一位;主要应用于低速数字通信系统中,一般异步传输模式选用偶校验,同步传输模式选用奇校验。
按校验的数据量和生成校验码的方式分三类
垂直奇偶校验码:以一个字符作为校验单位纵向生成校验码位;
水平奇偶校验码:以多个字符作为校验单位横向生成校验码位;
水平垂直冗余校验码(方阵校验码):以多个字符作为校验单位水平垂直两个方向共同生成校验字符。
垂直奇偶校验码是以单个字符为校验单位生成的一种校验码。
——如何理解垂直?
例如使用ASCII编码的一个字符由8bit组成,其中低7bit为信息位,最高1bit作为校验位。
假设某一字符的标准ASCII编码为0011000,根据奇偶校验规则,如果采用奇校验,则校验位应为1(这样字符中1的个数才能为奇数),即00110001;如果采用偶校验,校验位应为0,即00110000。
垂直奇偶校验码的特点:校验处理过程简单,但如果字符中发生偶数位的错误就检测不出来,也检测不到错误发生在哪一位。
计算机⽹络奇偶校验法,计算机⽹络基础知识之奇偶校验码$2.5.2 奇偶校验码奇偶校验码是⼀种通过增加冗余位使得码字中"1"的个数恒为奇数或偶数的编码⽅法,它是⼀种检错码。
在实际使⽤时⼜可分为垂直奇偶校验、⽔平奇偶校验和⽔平垂直奇偶校验等⼏种。
1.垂直奇偶校验垂直奇偶校验⼜称为纵向奇偶校验,它是将要发送的整个信息块分为定长p位的若⼲段(⽐如说q段),每段后⾯按"1"的个数为奇数或偶数的规律加上⼀位奇偶位,如图2.19所⽰。
问位信息(I11,I21,…,Ipl,I12,…,Ipq)中,每p位构成⼀段(即图中的⼀列),共有q段(即共有q列〉。
每段加上⼀位奇偶校验冗余位,即图中的rio编码规则为注意:此间的"+"指的是模⼆加,也即异或运算。
图中箭头给出了串⾏发送的顺序,即逐位先后次序为I11,I21,…,Ip1,r1,I12,…,Ipa,r2,…,⼉,…,I间,rq。
在编码和校验过程中,⽤硬件⽅法或软件⽅法很容易实现上述连续半加运算,⽽且可以边发送边产⽣冗余位;同样,在接收端也可边接收边进⾏校验后去掉校验位。
垂直奇偶校验⽅法的编码效率为R=p/(p+1)。
通常,取⼀个字符的代码为⼀个信息段,这种垂直奇偶校验有时也称为字符奇偶校验。
例如,在8位字符代码(即⽤8位⼆进制数位表⽰⼀个字符)中,p=8,编码效率便为8/9。
垂直奇偶校验⽅法能检测出每列中的所有奇数位错,但检测不出偶数位的错。
对于突发错误来说,奇数位错与偶数位错的发⽣概率接近于相等,因⽽对差错的漏检率接近于1/20。
2.⽔平奇偶校验为了降低对突发错误的漏检率,可以采⽤⽔平奇偶校验⽅法。
⽔平奇偶校验⼜称为横向奇偶校验,它是对各个信息段的相应位横向进⾏编码,产⽣⼀个奇偶校验冗余位,如图2.20所⽰,编码规则为若每个信息段就是⼀个字符的话,这⾥的q就是发送的信息块中的字符数。
⽔平奇偶校验的编码效率为R=q/(q+1)。
一、实验目的1. 理解偶校验的基本原理和作用。
2. 掌握偶校验的实现方法。
3. 通过实验验证偶校验在数据传输中的有效性。
二、实验原理偶校验是一种常用的数据校验方法,其基本原理是:在数据位的基础上增加一个校验位,使得整个数据(包括校验位)中1的个数为偶数。
当数据在传输过程中发生错误时,接收端可以通过校验位检测出错误,从而保证数据的正确性。
偶校验分为两种类型:水平偶校验和垂直偶校验。
1. 水平偶校验:在每个数据位之后增加一个校验位,使得该数据位及其后的所有数据位中1的个数为偶数。
2. 垂直偶校验:在每个数据字之前增加一个校验位,使得该数据字中1的个数为偶数。
三、实验器材1. 计算机一台2. 编程软件(如C语言、Python等)3. 调试工具(如示波器、逻辑分析仪等)四、实验步骤1. 设计一个简单的数据传输程序,发送端负责生成数据,并添加偶校验位;接收端负责接收数据,并验证偶校验位。
2. 在发送端,将数据与校验位组合成一个新的数据字,其中校验位根据数据字中1的个数计算得出。
3. 在接收端,将接收到的数据字拆分为数据位和校验位,然后计算校验位,判断数据字是否正确。
4. 使用调试工具观察数据在发送端和接收端的传输过程,验证偶校验的有效性。
五、实验结果与分析1. 实验结果(1)发送端生成一个数据字,如:01010101。
(2)计算偶校验位,发现数据字中1的个数为4,为偶数,校验位为0。
(3)将数据字与校验位组合,得到新的数据字:010101010。
(4)接收端接收数据字,拆分为数据位和校验位,计算校验位,发现数据字中1的个数为5,为奇数,说明数据在传输过程中发生了错误。
2. 实验分析通过实验验证,偶校验在数据传输过程中具有以下作用:(1)检测数据在传输过程中的错误。
(2)提高数据传输的可靠性。
(3)降低误码率。
然而,偶校验也存在一定的局限性:(1)当数据字中1的个数为偶数时,偶校验无法检测出错误。
(2)偶校验只能检测出奇数个错误,无法检测出偶数个错误。
水平垂直奇偶校验的原理
水平奇偶校验和垂直奇偶校验是在通信中常用的纠错方式,其原理如下:
1. 奇偶校验:
假设要传输一个字节的数据,使用奇偶校验就是在数据的最后添加一位校验位,使得整个数据中包含的1的个数为偶数或奇数,具体有以下两种方式:
1.1. 奇校验:使得整个数据中包含的1的个数为奇数,校验位是检验数据中1的个数,如果数据中1的个数是奇数,则校验位为0,否则为1。
例如,对ASCII码为1011 0001的字符'B'进行奇校验,则在其最后添加一个校验位1,使得整个数据中包含的1的个数为奇数,即1011 0001 1。
1.2. 偶校验:使得整个数据中包含的1的个数为偶数,校验位是检验数据中1的个数,如果数据中1的个数是奇数,则校验位为1,否则为0。
例如,对ASCII码为1011 0001的字符'B'进行偶校验,则在其最后添加一个校验位0,使得整个数据中包含的1的个数为偶数,即1011 0001 0。
2. 水平奇偶校验和垂直奇偶校验:
假设要传输的数据是一个矩阵,水平奇偶校验和垂直奇偶校验分别对每一行和每一列进行奇偶校验,将校验结果添加到该行或该列的末尾。
例如,对以下4\times4 的矩阵进行水平和垂直奇偶校验:
\begin{matrix}1 & 0 & 0 & 1\\ 0 & 1 & 1 & 0\\ 0 & 1 & 1 & 0\\ 1 & 0 & 0 & 1\end{matrix}
水平奇偶校验:对每一行进行奇偶校验,得到校验结果为1、0、1、1,将它们分别添加到末尾得到:
\begin{matrix}1 & 0 & 0 & 1 & 1\\ 0 & 1 & 1 & 0 & 0\\ 0 & 1 & 1 & 0 & 1\\ 1 & 0 & 0 & 1 & 1\end{matrix}
垂直奇偶校验:对每一列进行奇偶校验,得到校验结果为0、0、1、0、1,将它们分别添加到末尾得到:
\begin{matrix}1 & 0 & 0 & 1 & 1 & 0\\ 0 & 1 & 1 & 0 & 0 & 0\\ 0 & 1 & 1 & 0 & 1 & 1\\ 1 & 0 & 0 & 1 & 1 & 0\\ 0 & 0 & 1 & 0 & 1 & 1\end{matrix}
在接收端,对每一行和每一列重新进行奇偶校验,如果出现错误的位,则根据奇偶校验位进行纠正。