常用的检错码.
- 格式:ppt
- 大小:126.50 KB
- 文档页数:6
通信技术中的错误检测和纠正方法在现代高速通信领域中,信息的准确传输至关重要。
然而,在数据传输过程中,由于噪声、干扰和其他因素的存在,数据中可能会出现错误。
为了保证数据的完整性和可靠性,在通信技术中使用了错误检测和纠正方法。
本文将介绍一些常用的错误检测和纠正方法,包括奇偶校验、循环冗余校验(CRC)和海明码。
首先,奇偶校验是一种简单但有效的错误检测方法。
在奇偶校验中,每个数据字节的最后一位被用来表示该字节中1的个数是奇数还是偶数。
例如,如果一个数据字节中有奇数个1,则该字节的最后一位为1,否则为0。
在接收端,接收到的数据将被重新计算奇偶校验位,并与发送端发送的奇偶校验位进行比较。
如果两者不一致,则说明数据在传输过程中发生了错误。
然而,奇偶校验只能检测错误,而无法纠正错误。
为了解决这个问题,循环冗余校验(CRC)被广泛应用于通信技术中。
CRC使用多项式除法来生成一个校验码,该校验码与发送的数据一起传输。
在接收端,接收到的数据经过同样的多项式除法,并将生成的校验码与发送端发送的校验码进行比较。
如果两者一致,则数据传输没有错误。
如果校验码不一致,则说明数据在传输过程中发生了错误。
CRC 能够检测和纠正多个位的错误,而且具有较低的错误率。
除了CRC,海明码是另一种常用的错误检测和纠正方法。
海明码是一种有冗余位的错误检测和纠正编码技术。
在发送端,数据通过添加冗余位来构建海明码。
这些冗余位表示了数据位中的硬错误,并用于纠正错误。
在接收端,接收到的数据经过海明码检验,如果有错误被检测到,接收端将使用海明码中的冗余位来识别和纠正错误。
海明码可以纠正单个位的错误,并能检测和纠正多个位的错误。
总结来说,在通信技术中,错误检测和纠正方法起到了保证数据传输可靠性的重要作用。
奇偶校验是一种简单但有限的错误检测方法,可以检测错误但无法纠正错误。
循环冗余校验(CRC)通过生成校验码来检测和纠正多个位的错误,具有较低的错误率。
而海明码则是一种冗余编码技术,能够纠正单个位的错误,并能检测和纠正多个位的错误。
常用的纠错码纠错码(Error Correction Code)是一种用于检测和纠正数据传输过程中出现的错误的技术。
在数据传输、存储和处理中,由于噪声、干扰等原因,数据往往会发生错误。
纠错码通过在原始数据中添加冗余信息,使得接收方在接收到含有错误的数据时,能够通过冗余信息来检测和纠正这些错误,从而提高数据的可靠性和完整性。
常用的纠错码有海明码(Hamming Code)、RS码(Reed-Solomon Code)、BCH码(Bose-Chaudhuri-Hocquenghem Code)等。
下面将分别对这些纠错码进行介绍。
海明码是一种最早被广泛应用的纠错码。
它通过在原始数据中添加冗余位,使得接收方能够检测并纠正单个比特的错误。
海明码的基本思想是将原始数据划分成若干个数据块,并为每个数据块添加冗余位。
接收方在接收到数据时,通过对数据块和冗余位进行异或运算,可以检测出错误的位置,并进行纠正。
海明码的纠错能力较强,能够纠正多个比特的错误。
RS码是一种广泛应用于数字通信和存储系统中的纠错码。
RS码采用了一种更加复杂的编码方式,能够在数据中添加更多的冗余信息,从而使得接收方能够纠正更多的错误。
RS码的基本原理是将原始数据看作一个多项式,并通过计算多项式的值来生成冗余信息。
接收方在接收到数据时,通过计算多项式的值,并使用一定的算法来解码,从而可以检测和纠正错误。
BCH码是一种开发于二十世纪六十年代的纠错码。
BCH码是一种能够纠正多个错误的纠错码,同时也是一种具有较低复杂度的纠错码。
BCH码的基本原理是将原始数据看作一个多项式,并通过计算多项式的值来生成冗余信息。
接收方在接收到数据时,通过计算多项式的值,并使用一定的算法来解码,从而可以检测和纠正错误。
除了海明码、RS码和BCH码,还有很多其他的纠错码,如卷积码、Turbo码等。
这些纠错码在不同的应用场景中具有不同的优势。
卷积码是一种连续时间码,适用于通信系统中的高速数据传输。
3.2差错控制3.2.2常用的检错码- 奇偶校验码奇偶校验码是一种简单的检错码,奇偶校验码分为奇校验码和偶校验码,两者原理相同。
它通过增加冗余位来使得码字中“1”的个数保持奇数或偶数。
•无论是奇校验码还是偶校验码,其监督位只有一位;•假设信息为为I1, I2, …, I n,对于偶校验码,校验位R可以表示为:R =I1 ⊕I2⊕Λ⊕In•假设信息为为I1, I2, …, I n,对于奇校验码,校验位R可以表示为:R =I1 ⊕I2⊕Λ⊕In⊕1•无论是奇校验码还是偶校验码,都只能检测出奇数个错码,而不能检测偶数个错码。
44讨论: 从检错能力、编码效率和代价等方面来评价垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验3.2 差错控制3.2.2 常用的检错码 - 奇偶校验码 奇偶校验在实际使用时又可分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验等几种。
53.2.2常用的检错码–定比码所谓定比码,即每个码字中“1”的个数与“0”的个数之比保持恒定,故又名等比码或恒比码。
•当码字长一定,每个码字所含“1”的数目都相同,“0”的数目也都相同。
•由于若n位码字中“1”的个数恒定为m,还可称为“n中取m”码定比码(n中取m)的编码效率为:log C mR = 2 nn定比码能检测出全部奇数位错以及部分偶数位错。
实际上,除了码字中“1”变成“0”和“0”变成“1”成对出现的差错外,所有其它差错都能被检测出来64代码“1011011”对应的多项式为x 6 + x 4 + x 3 +1多项式“x 5 + x 4 + x 2 + x”所对应的代码为“110110” 3.2.2 常用的检错码 – 循环冗余检验 循环冗余码(Cyclic Redundancy Code ,简称CRC )是无线通信中用得最广泛的检错码,又被称为多项式码。
二进制序列多项式:任何一个由m 个二进制位组成的代码序列都可以和一个只含有0和1两个系数的m-1阶多项式建立一一对应的关系。
计算机网络检错码与纠错码在通信系统中广泛应用的差错控制技术是差错控制编码技术。
而差错控制编码包括检错码和纠错码两种,其中检错码是为传输的数据信号增加冗余码,以便发现数据信号中的错码,但不能纠正错码;纠错码是为传输的数据信号增加冗余码,以便发现数据信号中的错码,并自动纠正这些错码。
下面介绍几种检错码和纠错码的校验方法。
1.奇偶校验码奇偶校验码是一种最简单的无纠错能力的检错码,其编码规则是先将数据代码分组,例如,将ASCⅡ码中的一个字符或若干个字符分为一组。
在各组数据后面附加一位校验位,使该数据连校验位在内的码元中1的个数恒为偶数则为偶校验,恒为奇数则为奇校验。
奇偶校验无纠错能力,它只能检测出码元中的任意奇数个错误,若有偶数个错误必定漏检。
由于奇偶校验码容易实现,所以当信道干扰较弱,并且数据码长较短时,使用奇偶校验码效果很好,在计算机网络的数据传输中经常使用该检错码。
根据数据代码的分组方法,奇偶校验码可以分为水平奇偶校验、垂直奇偶校验和垂直水平奇偶校验。
●水平奇偶校验如表3-1所示,在水平奇偶校验中,把数据先以适当的长度划分成小组,并把码元按表中所示的顺序一列一列地排列起来,然后对水平方向的码元进行奇偶校验,得到一列校验位,附加在其他各列之后,最后按行的顺序进行传输。
水平奇偶校验能查出水平方向上奇数个错误和不大于数据代码长度的突发错误,无纠错能力,但产生校验码及校验逻辑相对复杂。
表3-1 水平奇偶校验●垂直奇偶校验如表3-2所示,在垂直奇偶校验中,把数据先以适当的长度划分成小组,并把码元按表中所示的顺序一列一列地排列起来,然后对垂直方向的码元进行奇偶校验,得到一行校验位,附加在其他各行之后,然后按列的顺序进行传输。
垂直奇偶校验能够查出列上的奇数个错误,只能查处50%的突发错误,无纠错能力,但产生校验码及校验逻辑相对简单。
表3-2 垂直奇偶校验●垂直水平奇偶校验垂直水平奇偶校验是在水平奇偶校验和垂直奇偶校验的基础上,把两者结合起来对码元进行校验,如表3-3所示。
常用校验码(奇偶校验码、海明校验码、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”的个数保持为奇数(奇校验)或偶数(偶校验)。
在接收端按照同样的规则检查,如发现不符,说明有错误发生;只有“1”的个数仍然符合原定的规律时,认为传输正确。
实际数据传输中所采用的寄偶校验码分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验三种。
垂直奇偶校验是一字符为单位的校验方法。
例如,传输数据信息为“1010001”,采用偶校验时,附加位为“1”,则发送信息变为“10100011”;采用奇校验时,附加位为“0”,发送信息变为“10100010”;(2) 循环冗余校验码(CRC)循环冗余校验码CRC(Cyclic Redundancy Code)采用一种多项式的编码方法。
把要发送的数据位串看成是系数只能为“1”或为“0”的多项式。
一个k位的数据块可以看成Xk-1到X0的k项多项式的系数序列。
例如,“110001”有6位,表示多项式是“X5 + X4+ 1”。
多项式的运算是模2运算。
采用CRC码时,发方和收方必须事先约定一个生成多项式G(X),并且G(X)的最高位和最低必须是1。
要计算m位数据块的M(X)的校验和,生成多项式必须比该多项式短。
其基本思想是:将校验和附加在该数据块的末尾,使这个带校验和的多项式能被G(X)除尽。
当接收方收到带校验和的数据块时,用G(X)去除它,如果有余数,则传输有错误。
二、纠错码纠错码与检错码相比其功能更强,它不但能检错还能纠错。
海明码就是一种能够纠正一位错误的检错码。
海明码是海明(H.W.Hamming)于1950年提出的一种码制。
在发送数据之前将数据按照海明码制形成海明码,然后发送海明码,到达对方后根据接收到的海明码进行解释分析、判错、纠错。
(1) 海明码的形成①海明码的组合规则海明码是由数据与校验位组合而成的。
差错控制的四种基本方式一、引言差错控制是计算机网络中重要的一环,它能够保证数据在传输过程中的准确性和完整性。
在网络通信中,数据传输时难免会出现差错,如传输过程中的噪声干扰、损坏或丢失等。
为了解决这些问题,差错控制技术应运而生。
本文将介绍差错控制的四种基本方式。
二、前向纠错码前向纠错码是一种通过添加冗余比特来检测和纠正错误的方法。
它通过对待发送的数据进行编码,将纠错能力内嵌在数据包中,使得一部分错误能够被自动检测和纠正。
前向纠错码常见的实现方式有海明码、纠删码等。
1. 海明码海明码是一种最常见的前向纠错码。
它通过在待发送的数据上添加冗余比特,使得接收方可以在接收到数据时检测和纠正错误。
海明码的基本原理是将数据按照规定的方式进行编码,添加校验比特,并在接收端通过计算来纠正错误。
它能够检测和纠正单一错误,但不能纠正多个错误。
2. 纠删码纠删码通过添加冗余比特来检测和纠正错误,它具有更强的纠错能力。
纠删码的基本原理是在待发送的数据中添加冗余信息,使得接收方能够根据冗余信息来检测和纠正错误。
纠删码能够在一定程度上纠正多个错误,并且还能够检测和纠正丢失的数据。
三、自动重传请求(ARQ)自动重传请求(ARQ)是一种基于确认和重传机制的差错控制方式。
它通过引入确认信号和重传机制来解决传输过程中的差错。
1. 停止-等待 ARQ停止-等待 ARQ 是一种最简单的 ARQ 协议。
发送方在发送每个数据包后停止发送并等待接收方的确认信息。
接收方在接收到数据包后发送确认信息,如果发送方在一定时间内没有收到确认,或者收到了错误的确认,就会进行重传。
2. 回退-N ARQ回退-N ARQ 是一种具有选择重传能力的 ARQ 协议。
发送方可以同时发送多个数据包,接收方接收到数据包后发送确认信息,如果发送方在一定时间内没有收到确认,或者收到了错误的确认,就会选择性地进行重传。
3. 选择重传 ARQ选择重传 ARQ 是一种能够选择性地重传丢失的数据包的 ARQ 协议。