首页 > 编程知识 正文

校验码长度,校验码的设计

时间:2023-05-06 15:48:18 阅读:190018 作者:2397

相关文章:

       校验码——奇偶校验码   https://blog.csdn.net/weixin_44330072/article/details/106859838

       校验码——海明码及码距   https://blog.csdn.net/weixin_44330072/article/details/106695425

       校验码——CRC循环冗余校验码   https://blog.csdn.net/weixin_44330072/article/details/106859961

 

       其实校验码就是在码距的原理上产生的,码距越大校验能力,纠错能力越强,所以奇偶校验码、海明码、CRC码究其原理都是利用一系列规则提升一段码字的码距而已。

 

一、码距

       一个编码系统中任意两个合法编码(码字)之间不同的二进数位(bit)数叫这两个码字的码距,而整个编码系统中任意两个码字的的最小距离就是该编码系统的码距。
       如图1所示的一个编码系统,用三个bit来表示八个不同信息中。在这个系统中,两个码字之间不同的bit数从1到3不等,但最小值为1,故这个系统的码距为1。如果任何码字中一位或多位被颠倒了,结果这个码字就不能与其它有效信息区分开。例如,如果传送信息001,而被误收为011,因011仍是表中的合法码字,接收机仍将认为011是正确的信息。
       然而,如果用四个二进数字来编8个码字,那么在码字间的最小距离可以增加到2,如图2的表中所示。

信息序号
       二进码字 ,,:

 00001001201030114100510161107111

                                                                                                  图 1                                                                                                  
信息序号
       二进码字 ,,,:

 0000011001210103001141100501016011071111

                                                                                                  图 2

       注意,图2的8个码字相互间最少有两bit的差异。因此,如果任何信息的一个数位被颠倒,就成为一个不用的码字,接收机能检查出来。例如信息是1001,误收为1011,接收机知道发生了一个差错,因为1011不是一个码字(表中没有)。然而,差错不能被纠正。假定只有一个数位是错的,正确码字可以是1001,1111,0011或1010。接收者不能确定原来到底是这4个码字中的那一个。也可看到, 在这个系统中,偶数个(2或4)差错也无法发现。
       为了使一个系统能检查和纠正一个差错,码间最小距离必须至少是“3”。最小距离为3时,或能纠正一个错,或能检二个错,但不能同时纠一个错和检二个错。编码信息纠错和检错能力的进一步提高需要进一步增加码字间的最小距离。图8-3的表概括了最小距离为1至7的码的纠错和检错能力。

码距码检错能力码纠错能力10021032或142加152加263加273加3

                                                                                                  图3

       码距越大,纠错能力越强,但数据冗余也越大,即编码效率低了。所以,选择码距要取决于特定系统的参数。数字系统的设计者必须考虑信息发生差错的概率和该系统能容许的最小差错率等因素。要有专门的研究来解决这些问题。

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