智能弱电工程设计与应用
上QQ阅读APP看书,第一时间看更新

3.6 检错与纠错

造成数据传输中出现差错的原因有内部因素和外部因素两部分。内部因素有设备内部的热噪声、系统传输的信号衰减和延时失真等。外部因素有电磁波干扰、工业设备干扰和太阳噪声等。为了确保无差错地传输,通信系统必须具有检错和纠错功能。

检错方法是指在传输过程中能使接收端检测出差错的附加位,如果接收端检测到了一个差错,那么就可请求发送端再重新发送一次信息。纠错法是指在发送每组信息时,发送足够的供检测使用的附加位,使接收端能以很高的概率检测出差错并纠正大多数错误信息。但是发送大量附加位,将会降低传输系统的效率。

3.6.1 检错法

数据在信道中传输受到各种干扰引起的差错可分为两种形式:①随机错误。即数据序列中前后码元之间是否发生错误是彼此无关的,产生这种错误的信道称为随机信道。②突发性错误。即序列中一个错误出现会影响其他码元的错误,即错误之间有相关性。

在数字信号信息位之外再加上附加的检验位,以便在误码产生时能够找到它,称为检错(Code error detection)。数据传输系统常用的检错方法有:

1.奇偶校验码

奇偶校验码是一种最简单的检错码,它的编码规则是先将需要发送的数据码元分组,一般按字符进行分组,即一个字符或若干个字符构成一组。然后在各组的数据后面附加一位校验位,使该组码与校验位在内的码字中的“1”的个数总为偶数(称为偶数校验)或奇数(称为奇数校验)。

奇偶校验仅仅校验一个字符中的各个位,如果信息字符中只有一位误码,奇偶校验法肯定能把它检测出来。但当几个偶数位同时出错时,此时就无法检错了,因此最简单的奇偶校验法可以校验查出大多数随机误差,它可以把10-4的出错率改善到10-7左右,但对于突发性错误(相关性错误)的漏检率可接近50%。它只能用于以随机错误为主的计算机通信系统,极少用于数字音视频设备中。

2.CRC循环冗余检错码

CRC是Cyclic Redundancy Code(循环冗余码)的缩写,是一种可检测多位差错、最精确、最常用的检错技术。主要用于数字光盘CD和软磁盘存储系统。CRC采用任意码长(mbit)的检验位,如图3-17所示。CRC的检验能力与字组长度(n)无关,但与m有关,m越大,检测能力越强。当冗余度(=m/n)一定时,字组长度n(=信息位k+检验位m)越长,检测能力也越强。试验表明,如果以16bit数作冗余校验码,传输速度为9600bit/s的数据传输,那么可达到3000年才会有一个差错检测不出来。

3.RS线性分组循环码

RS是Reed-Solomon(里佳-所罗门码)的缩写。RS码对随机错误和突发性错误具有极强的纠正能力,它可纠正连续8bit的误码(m=8时)。由于RS码性能优良以及近年来VLSI(超大规模集成电路)技术的快速发展,使得原来非常复杂、难以实现的解码电路集成化,目前,功能强大、长RS码的解码器芯片已商业化了,因此RS码获得了广泛应用。CD光盘存储系统中采用的RS(32,38)码,可纠正500B的连续误码。

4.交织技术

交织技术(Interleaving)主要是将突发性错误转为随机错误,以便充分发挥纠错码的作用。因为许多信道中的错误大都是突发性的,由于错误集中在一起,常常超出了纠错码的纠错能力。所以在发送端加上数据交织器,在接收端加上解交织器,使信道的突发性错误分散开来,这样可以充分发挥纠错编码的作用。加上交织后,系统的纠错性能可以提高好几个数量级。这是因为,对纠错来说,分散的错误比较容易得到纠正,而长串的连续错误,比较麻烦。如我们读一段文字,若文中在个别地方出错,可根据前后文容易猜出错误字的原意。若连续出错,就很难判断原文的含义了。

交织技术在实用中经常与其他纠错码结合使用。

978-7-111-43240-1-Chapter03-21.jpg

图3-17 CRC循环冗余检错码

检错能力

注:1.mbit以下的群误码可百分之百地检出。

2.(m+1)bit以上的群误码不能检出的概率约为2-m

3.假定各种形式误码产生概率都相同,则不能检出的概率为2-m

4.上述1~3各项特性与字组长度n无关。

3.6.2 纠错法

把接收到的错误码矫正到原来正确的码叫做误码校正(Code error correction),简称“纠错”。常用的纠错法是接收端检测到误码后,自动向发送端发出重发请求(Automatic Repeat Request,ARQ)。当发送端向接收端发送的一个数据块无差错时,接收端回送一个肯定应答(Acknowledge-ment,ACK),即ACK指令;如果接收端检测出差错则回送否定应答(No Acknowledgement,NAK),即NAK指令,发送端重新发送存储在缓存器中已发送数据块的副本,直到确认接收到的数据正确无误为止。

另一种纠错法称正向纠错,发送端发送的是能使接收端检错和纠错的冗余位。一种经典的正向纠错法是汉明纠错法。

汉明码(Hamming code)是一种具有自我纠正能力的加权平均码。奇偶校验方法可以检测出差错码,但不能判断错误发生在哪一位,甚至大致的位置也不知道。因此,为了校正错误,必须请求再发送。如果能够使码本身具有判断错误发生在码的哪一位的能力,那么错误的改正仅限于把0变成1或者把1变成0,就可以把位置出错的码反转过来纠正错误。这就是汉明码技术的基本点。