首页 > 编程知识 正文

海明校验码是如何校验的,海明校验码公式

时间:2023-05-05 13:12:55 阅读:154522 作者:3800

文章目录:什么是校验码? 为什么需要支票? 1 .奇偶校验码如何通过奇偶校验码确定数据正确还是错误? (1)奇偶校验:2)为什么不能检测到偶数个错误? 2.ctdzxc (魔术铅笔)校验码什么是ctdzxc校验码? 问题是理解ctdzxc代码,在信息位n=4、奇偶校验位k=3时,求出1010的ctdzxc代码。 (1)确定ctdzxc码位数)2)确定ctdzxc码中的奇偶校验位P~i~的位置)3)分组形成检查关系)4)取奇偶校验位P~i~的值)5) ctdzxc码的检查原理3 ) 源代码怎么编码生成CRC代码? 问题是CRC码的生成和校验(1)信息码的左移r比特)2)模式2的除法剩余)3)如何检测和校正错误?

什么是校验码? 校验码是能够发现或自动纠正错误的数据码,也称为纠错码。 实现原理:通过增加冗余码来检查或纠错码的码距。 简单地说,比较两个二进制数,发现在相同位数处,位数不同的个数,即码距离也被称为ctdzxc距离。 用两种方法计算距离。 例如0100和1111

直接观察法:由于3个数字值不同,可见码间隔为3。

异或运算法: 01001111=1011,结果为1011,其中有多少个1表示多少位的值不同,即符号间距离是多少,其中符号间距离为3。 为什么需要支票? 其实,从什么是校验码就可以知道为什么需要校验码。 在计算机的运算过程中,所有的数据都是用二进制存储的。 当数据由计算机运算处理并传递时,我们对数据进行加工。 为什么要加工呢? 这是为了防止数据在传输过程中因硬件等因素而发生变化。 在数据中添加冗馀位后,原始数据代码将变为校验码。 可以通过相应校验码的几种方法来检测和纠正错误,保证数据的准确性。 1 .奇偶校验码的实现原理:在原码中增加奇偶校验位后,原码即为校验码。 其符号距离为2,可以检查奇数位的错误,但不能检查偶数位的错误。 增加的冗馀位是奇偶校验位,典型的奇偶校验位设置在原始码的最左边或最右边。 校验码:整个校验码(信息位奇偶校验位)中一位的奇数校验码)整个校验码中一位的偶数是如何通过奇偶校验判断数据正确还是错误的呢? 首先,在计算机中,必须约定数据是奇检查还是偶检查。 其次,分为奇校验和偶校验,说明奇偶校验如何在计算机传输数据的过程中检查数据是否正确。 (1)奇偶校验假设我们的原始代码为10110111。 因为我们规定计算机采用奇偶校验,所以如果在原始代码的最左边增加奇偶校验位,放在1,原始代码就是奇数)就是一个有1的奇偶校验码。 传输过程中奇数个数据发生了变化:如果传输过程中奇数个位的值发生了变化,通过奇检查运算可知现在为6个1。 与奇校验码相比,3个位数的值发生了变化。 奇校验码不是奇数个的1,而是偶数个的1。 可以判断我们的数据发生了变化,可以检测出错误。 传输过程中偶数个数据已更改。 如果在传输过程中偶数个位的值发生了变化,通过奇校验运算可知,现在为7个1,是与原奇校验码的7个1相同的奇数。 在这种情况下,无法判断奇检查运算是否变更了数据。 也就是说,无法检测到偶数个错误。

)偶数检查假设我们的原始代码是10110111。 因为我们决定在计算机上采用偶数检验,所以如果在原始代码的最左边增加奇偶校验位使其为0,原始代码就是偶数)个具有1的偶数检验代码。 传输过程中奇数个数据已更改。 传输过程中奇数位数的值已更改。 那样的话,通过偶检运算,可以知道现在是5个的1。 与偶校验码相比,3个位数的值发生了变更。 偶校验码不是偶数个的1,而是奇数个的1。 可以判断出我们的数据发生了变化,可以检测出错误。 传输过程中偶数个数据已更改。 如果在传输过程中偶数位的值发生了更改,奇偶校验运算将显示当前为6个1。 和原始奇偶校验代码的6个1一样是偶数。 在这种情况下,无法确定奇偶校验运算是否更改了数据。 也就是说,无法检测到偶数个错误。

为什么不能检测到偶数个错误? 通过使用奇偶校验的两种方法检查数据,奇偶校验可以检测奇数个错误,因为不能检测偶数个错误,所以不能校正错误,并且不能确定错误的位置。 2.ctdzxc (魔术铅笔)校验码什么是ctdzxc校验码? 一种多重奇偶校验码。 实现原理:在有效信息比特中加入几个奇偶校验位以形成ctdzxc码,并将ctdzxc码的每个二进制比特分配给几个奇偶校验组。 当某个位出错时,相关联的一些奇偶校验位的值会发生变化。 特点:能发现错误,定位错误,自动纠正错误。 虽然可以检测2位错误,但只能纠正1位错误。

纠错理论: L-1=D C且dc

最小码距离l越大,其检测出错误的位数d越大,纠错的位数c也越大,纠错能力总是小于检错能力

问题是理解ctdzxc代码,在信息位n=4、奇偶校验位k=3时,求出1010的ctdzxc代码。 )1) ctdzxc码位数基于http://www.Sina.com/(2(为了检测2位的错误,需要追加奇偶校验位、即k 1位)式来决定

记住这个公式就可以了。 就像你不知道爱因斯坦相对论的公式E=mc2一样。

ctdzxc码的位数n k=7,公式2k n+k+1成立,n,k有效。 设置表示信息位、奇偶校验位和ctdzxc代码的变量。 如图所示。

(2)确认奇偶校验位Pi位于ctdzxc

码中的位置 规定校验位 pi 在ctdzxc位号位 2 i-1 的位置上,所以:
(3)分组形成校验关系 每个数据位用多个校验位来检验。必须满足条件:被校验数据位的ctdzxc码位号 = 校验该数据位的各校验位ctdzxc位号之和,比如校验D3,它的ctdzxc位号H6为6,那么校验它的校验位为P3和P2,因为他们的ctdzxc位号H4和H2加起来等于6。校验位不需要再被校验分组关系如图:
(4)校验位 Pi 取值 Pi的值 = 第 i 组所有数据位求异或⨁P1=D1⨁D2⨁D4=0P2=D1⨁D3⨁D4=1P3=D2⨁D3⨁D4=0所以 1010 的ctdzxc码为:
(5)ctdzxc码的校验原理 每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查,即异或运算⨁,构成k个校验方程。S1=P1⨁D1⨁D2⨁D4S2=P2⨁D1⨁D3⨁D4S3=P3⨁D2⨁D3⨁D4若S1S2S3=000,则说明无错,否则说明出错。这个数的值就是出错的位置,如S1S2S3=001,表示第1位出错,即H1出错,直接将该位取反就可以达到纠错的目的。 3.循环冗余校验(CRC)码 什么是CRC码? 基本思想:校验码中的一种。在K位信息位后拼接R位检验位,组成CRC码,这种编码也称(N,R)码特点:可以发现错误,定位错误位置,自动纠正错误。可检测出所有奇数位错,所有双比特的错和所有小于、等于校验位长度的突发错结构:
原码如何编码生成CRC码? 首先,发送端和接受端会有一个生成多项式G(x)约定,生成多项式G(x)的最高次幂为R。任意一个二进制数码都可用一个系数为0或1的多项式与之对应。比如:二进制数码 1101 对应的G(x)=1*X3+1*X2+0*X1+1*X0= X3+X2+1在发送端,将要传送的K位二进制信息码左移R位,将它与生成多项式G(x)所对应的的二进制数码进行模2除法,产生余数,生成一个R位检验码,并附在信息码后,构成一个新的二进制码(CRC)码,共K+R位。

模2运算:分为模2加、模2减、模2乘、模2除,不考虑进位和借位。

一题搞懂CRC码生成与校验

例题: 设生成多项式G(x)=X3+X2+1 ,信息码为 101001 ,求对应的CRC码 。

分析:校验位长度:R=3 , 信息码长度:K=6 , CRC码长度:N=R+K= 9生成多项式对应二进制码:1101 (1)信息码左移R位 发送端将原信息码左移R位,低位补0:101001 000 (2)模2除法得余数 方法:发送端用移位后的信息码 101001000 除以G(x)所对应的二进制数码 1101 求余数,余数除得够就写1,不够就写0,直到余数小于 1101 ,余数即为校验位的数值。图中即为具体计算步骤,得到最后的结果CRC码为:101001 001,然后发送端将CRC码101001 001发送给接收端。
(3)如何检错和纠正错误? 接收端收到CRC码后,用生成的CRC码除以生成多项式G(x)所对应的的二进制数码,若余数为0,则信息码在传输过程中没有产生错误,数据正确。若接受到的CRC码为C9C8C7C6C5C4C3C2C1= 101001011,除以G(x)所对应的二进制码1101得到余数为010,不为0,说明数据在传输过程中产生错误。010=2(10)说明C2出错,将C2取反即可纠正错误。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。