各种校验码校验算法分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

各种校验码校验算法分析二进制数据经过传送、存取等环节会发生误码1变成0或0变成1这就有如何发现及纠正误码的问题。所有解决此类问题的方法就是在原始数据数码位基础上增加几位校验冗余位。

一、码距一个编码系统中任意两个合法编码码字之间不同的二进数位bit数叫这两个码字的码距而整个编码系统中任意两个码字的的最小距离就是该编码系统的码距。如图1

所示的一个编码系统用三个bit来表示八个不同信息中。在这个系统中两个码字之间不同的bit数从1到3不等但最小值为1故这个系统的码距为1。如果任何码字中一位或多位被颠倒了结果这个码字就不能与其它有效信息区分开。例如如果传送信息001而被误收为011因011仍是表中的合法码字接收机仍将认为011是正确的信息。然而如果用四个二进数字来编8个码字那么在码字间的最小距离可以增加到2如图2的表中所示。信息序号二进码字 a2 a1 a0 0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 图 1 信息序号二进码字 a3 a2 a1 a0 0 0 0 0 0 1 1 0 0 1 2 1 0 1 0 3 0 0 1 1 4 1 1 0 0 5 0 1 0 1 6 0 1 1 0 7 1 1 1 1 图 2 注意图8-2的8个码字相互间最少有两bit 的差异。因此如果任何信息的一个数位被颠倒就成为一个不用的码字接收机能检查出来。例如信息是1001误收为1011接收机知道发生了一个差错因为1011不是一个码字表中没

有。然而差错不能被纠正。假定只有一个数位是错的正确码字可以是100111110011或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 码距越大纠错能力越强但数据冗余也越大即编码效率低了。所以选择码距要取决于特定系统的参数。数字系统的设计者必须考虑信息发生差错的概率和该系统能容许的最小差错

率等因素。要有专门的研究来解决这些问题。

二、奇偶校验奇偶校验码是一种增加二进制传输系统最小距离的简单和广泛采用的方法。例如单个的奇偶校验将使码的最小距离由一增加到二。一个二进制码字如果它的码元有奇数个1就称为具有奇性。例如码字“10110101”有五个1因此这个码字具有奇性。同样偶性码字具有偶数个1。注意奇性检测等效于所有码元的模二加并能够由所有码元的

异或运算来确定。对于一个n位字奇性由下式给出奇性a0⊕a1⊕a2⊕…⊕an 奇偶校验可描述为给每一个码字加一个

校验位用它来构成奇性或偶性校验。例如在图8-2中就是这样做的。可以看出附加码元d2是简单地用来使每个字成为偶性的。因此若有一个码元是错的就可以分辨得出因为奇偶校验将成为奇性。奇偶校验编码通过增加一位校验位来使编码中1个个数为奇数奇校验或者为偶数偶校验从而使码距变为2。因为其利用的是编码中1的个数的奇偶性作为依据所以不能发现偶数位错误。再以数字0的七位ASCII码0110000为例如果传送后右边第一位出错0变成1。接收端还认为是一个合法的代码0110001数字1的ASCII码。若在最左边加一位奇校验位编码变为10110000如果传送后右边第一位出错则变成101100011的个数变成偶数就不是合法的奇校验码了。但若有两位假设是第1、2位出错就变成101100111的个数为5还是奇数。接收端还认为是一个合法的代码数字3的ASCII码。所以奇偶校验不能发现。奇偶校验位可由硬件电路异或门或软件产生偶校验位 an a0⊕a1⊕a2⊕…⊕an-1 奇校验位 an NOTa0⊕a1⊕a2⊕…⊕an-1。在一个典型系统里在传输以前由奇偶发生器把奇偶校验位

加到每个字中。原有信息中的数字在接收机中被检测如果没有出现正确的奇、偶性这个信息标定为错误的这个系统将把错误的字抛掉或者请求重发。在实际工作中还经常采用纵横都加校验奇偶校验位的编码系统--分组奇偶校验码。

现在考虑一个系统它传输若干个长度为m位的信息。如果

把这些信息都编成每组n个信息的分组则在这些不同的信息间也如对单个信息一样能够作奇偶校验。图4中n个信息的一个分组排列成矩形式样并以横向奇偶HP及纵向奇偶VP的形式编出奇偶校验位。 m位数字横向奇偶位 n 个码字

a1 a2 … am-1 am HP1 b1 b2 … bm-1 bm HP2 c1 c2 … cm-1 c m HP3 … … … … … … n1 n2 … nm-1 nm HPn VP1 VP2 … VPm-1 VPm HPn1 纵向奇偶位图 4 用综横奇偶校验的分组奇偶校验码研究图4可知分组奇偶校验码不仅能检测许多形式的错误。并且在给定的行或列中产生孤立的错误时还可对该错误进行纠正。在初级程序员试题中早期也出现在程序员试题中经常有综横奇偶校验的题目。一般解法应该是这样先找一行或一列已知数据完整的确定出该行或列是奇校

验还是偶校验。并假设行与列都采用同一种校验这个假设是否正确在全部做完后可以得到验证。然后找只有一个未知数的行或列根据校验性质确定该未知数这样不断做下去就能

求出所有未知数。【例】2001年初级程序员试题由 6 个字符的 7 位 ASCII 编码排列再加上水平垂直奇偶校验位

构成下列矩阵最后一列为水平奇偶校验位最后一行为垂直

奇偶校验位: 字符 7 位 ASCII 码 HP 3 0 X1 X2 0 0 1 1 0 Y1 1 0 0 1 0 0 X3 1 X4 1 0 1 0 1 1 0 Y2 0 1 X5 X6 1 1 1 1 D 1 0 0 X7 1 0 X8 0 0 X9 1 1 1 X10 1 1 VP 0 0 1 1 1 X11 1 X12 则 X1 X2 X3 X4 处的比特分别为 __36__ X5 X6

相关文档
最新文档