• 沒有找到結果。

差错检验和控制

在文檔中 第 2 章 数据通信基础 (頁 23-28)

2.6.1  差错类型

数据通信要求信息传输具有高度的可靠性,即要求误码率足够低。然而,数据信号在传

输过程中不可避免地会发生差错,即出现误码。造成误码的原因很多,但主要可归结为两个方 面:一是信道不理想造成的符号间干扰;二是噪声对信号的干扰。由于前者常可以通过均衡办 法予以改善,因此,常把信号噪声作为造成传输差错的主要原因。

危害数据传输的噪声大体上有两类:白噪声和脉冲噪声。白噪声是在较长时间内一直存 在的,并且在所有频率上的强度都一样,又称为热噪声,是一种随机的噪声信号;脉冲噪声是 由某种特定的、短暂的原因造成的,幅度可能很大,是数据传输中造成差错的主要原因。

噪声类型不同,引发的差错类型也不同,一般可分为以下两种类型的差错。

(1)随机差错。随机差错是指某一码元出错与前后码元无关,它是由信道中的热噪声引 起的。如果传输信号的信噪比较高,这种差错可以得到有效的降低。

(2)突发差错。突发差错是前后码元发生的错误有相关性,一个错误的出现往往引起前 后码元也出现错误,使错误成串密集地产生。脉冲噪声产生的差错就是突发出错。

实际的传输线路中所出现的差错是随机性错误和突发性错误的混合,如果采用有效的屏 蔽措施,改善设备,选择合理的方式、方法,可使噪声大大降低,但不能完全消除噪声的影响,

所以传输线路中要有差错控制。 

2.6.2  差错控制的方式

差错控制是指在传输数据时用某种方法来发现错误,并进行纠正以提高传输质量。主要 从两个方面采取措施:一是将信源的数据进行某种编码,使得信宿在接收到数据后,能够自动 地对错误进行检查和纠正;二是如果信宿仅能发现错误,无法具体定位和纠错时,系统采取某 种措施以纠正差错。差错控制的方式主要有下列几种。 

1.检错重发(ARQ,Automatic Repeat­reQuest)方式 检错重发又称自动反馈重发,如图 2­30 所示。

图 2­30  检错重发示意图

发送端送出的信息序列,一方面经检错码编码器编码送入信道,另一方面也把它存入存 储器,以备重传。接收端经检错码译码器对接收到的信息序列进行译码,检查有无错误,若无 错误,就发出无错误的应答信号,经反馈信道送至发送端,同时将译码后的信息序列传送至信 宿;若有错误,通过反馈信道传送给发送端一个重发指令,信宿不再接收此信息序列。

发送端如果收到重发请求后立即重传原信息序列,直到接收端返回正确接收信息为止;

发送端如果收到无错误的应答信号,就会开始下一个发送周期。

检错重发的方式中要求有反馈信道,且接收端无需纠错,实现简单,是目前广泛的差错 控制方式。但如果干扰频繁,多次重发会使连贯性较差,是其主要缺点。

在 ARQ 方式中,较常用的三种形式是:发送—等待自动检错重发、连续发送自动检错重 发和选择重传自动检错重发。 

2.前向纠错(FEC,Forward Error Correction)方式

发送端按照一定的编码规则对即将发送的信号码元附加冗余码元,构成纠错码。接收端

根据附加冗余码元按一定的译码规则进行变换, 用来检测所收到的信号中有无错误。 如有错误,

能自动地确定误码位置并加以纠正。 

FEC  方式的优点是实现简单,无需反馈信道,延时小,实时性好,适用于只能提供单向 信道的场合。 其缺点是采用的纠错码与信道的差错统计特性有关, 因此对信道的差错统计特性 必须有充分的了解。另外,冗余码元要占总发送码元的 20%~50%,从而降低了传输效率。 

3.混合纠错(HEC,Hybrid Error Correction)方式 

HEC 方式是前向纠错和检错重发方式的结合。 在发送端发送具有检错和纠错能力的码组,

接收端对所接收的码组中的差错个数在纠错能力范围以内的能自动进行纠错, 否则接收端通过 反馈重发的方法来纠正错误。

这种方式综合了 ARQ 和 FEC 的优点, 但并没能克服各自的缺点, 因而限制了它的实际应用。 

4.信息反馈(IRQ,Information Repeat reQuest)方式

信息反馈方式又称为回程校验方式(或反馈方式),接收端把接收到的数据序列全部由反 向信道送回发送端,发送端比较发送的数据序列与送回的数据序列,从而检测是否有错误,并 把有错误的数据序列的原数据再次传送,直到发送端没有发现错误为止。 

2.6.3  常用的检错纠错码

帮助发现错误并能自动纠正错误的有效手段是对数据进行抗干扰编码,可分为检错码和 纠错码。 所谓检错码是指接收端能自动发现差错的编码; 而纠错码则是指接收端不仅能发现差 错而且能自动纠正差错的编码。这两类码并没有明显的界限,纠错码也可用来检错,有的检错 码也可用来纠错。 

1.检错纠错码的基本原理

检错纠错码的基本思想是通过对信号码元序列作某种变换,使得原来彼此独立、无相关 性的信号码元之间产生某种规律性或相关性, 从而在接收端可以根据这种规律性来检测甚至纠 正传输序列中可能出现的错误。例如只传送两种状态 A 和 B,最有效的编码是采用 1bit,假设 用 1 表示 A,0 表示 B。接收端在收到数据时,无法根据 0 或 1 判断出数据传输是否有错误,

即这种编码不具备检纠错的能力。

如果系统采用 2bit 进行编码,并假设用 11 表示 A,00 表示 B。如果接收端收到 10 或 01  时, 知道数据发生了错误, 但无法纠正这些错误。 也就是说只具有检错能力, 不具备纠错能力。

在检纠错码中,编码效率是指传输的码组中信息位和整个码组总位数的比值。如果系统 采用 2bit 进行编码,编码效率将由 100%降低到 50%。

如果系统采用 3bit 进行编码,并假设用 111 表示 A,000 表示 B。如果接收端收到非 111  或 000 的数据时,就会知道数据发生了错误,并可纠正 1 位错误(例如将 110、011 或 101 纠 正为 111)。这时的编码效率已经降低到了 33.3%。

由上例可以看出,对原有的数据需要附加冗余位才能达到检纠错的功能,同时也牺牲了 编码效率。目前,按照编码的构成可将检纠错码分为分组码和卷积码两种。

分组码是将  k 个二进制位划分为一组,然后将这  k 个二进制位(又称为信息位)按照一 定的规则产生 r 个二进制冗余位(又称为监督位),最后组成长度为 n=k+r 的二进制序列(又 称为码组),其编码效率为 k/n。通常称这种结构的码为(n,k)码,如图 2­31 所示。

图 2­31  分组码结构

在分组码中,监督位是由信息位根据某种算法得到的。在所有的码组集合中,按照通信 双方的协议能够出现的码组称为许用码组, 不应该出现的称为禁用码组。 当接收端收到了禁用 码组,一定说明通信过程中出现了错误,这是分组码能够检纠错的基础。分组码在计算机网络 中经常被采用,常见的有奇偶校验码、循环冗余校验码等。

在分组码中,监督位仅仅是监督本组的二进制位。在卷积码中,每组的监督码元不仅与 本组的数据有关, 还与前面若干组的数据有关, 也就是说每个监督位对它前面的若干位进行监 督。卷积码需要的运算较大,实现复杂,在前向纠错中应用比较广泛。

限于篇幅,本书只介绍常见的分组码。 

2.奇偶校验码

奇偶校验码是一种最简单的检错码。其编码规则是:首先将要传送的信息分组,各组信 息后面附加一位校验位,校验位的取值使得整个码字(包含校验位)中“1”的个数为奇数个 或偶数个,若为奇数个“1” ,则称为奇校验,为偶数个“1”则称为偶校验。

例如,要传输的信息位为 7 位:1010110,现要在信息位末尾增加一个奇校验位,则编码 后的二进制串序列为:10101101。

奇偶校验的基本思想是:数据在传输过程中发生错误,只能是“1”变成“0” ,或者“0”

变成“1” ,若有奇数个码元发生错误,就使得整个码组中“1”的个数的奇偶数发生变化。如 果在每组信息位后各插入一个冗余位使整个码组中“1”的个数固定为偶数或奇数,这样,在 传输中发生一位或奇数位错误,在接收端检测中将因“l”的个数不符合偶数或奇数规律而发 现有错。所以奇偶校验码只能发现奇数个错误,不能发现偶数个错误。

奇偶校验又可分为垂直和水平奇偶校验。

(1)垂直奇偶校验。首先,把数据先以适当的长度划分成数据块(一个数据块包括若干 个码组),并把每个码组按顺序一列一列地排列起来,然后对垂直方向的码元进行奇偶校验,

得到一行校验位,附加在其他各行之后,然后按列的顺序进行传输,如表 2­1 所示。

表 2­1  垂直奇偶校验 位  码组

1  2  3  4  5  6  7  8  9  10 

1  1  0  0  1  1  1  0  0  0  1 

2  0  1  1  0  1  0  1  0  1  0 

3  1  1  0  1  1  0  0  0  0  1 

4  0  0  1  1  1  0  0  0  1  0 

5  1  1  1  0  1  1  1  1  0  1 

偶校验位  1  1  1  1  1  0  0  1  0  1 

信息位(k 位) 监督位(r 位)

码组(n 位)

待传输数据块共有 10 个码组,每个码组 5 个信息位和 1 个校验位,传输时按列顺序传输

(每列包括 5 位信息位和 1 位校验位)。

这种校验方法能检测出传输中的任意奇数个错误,但不能检测出偶数个错误。

(2)水平奇偶校验。在水平奇偶校验中,把数据先以适当的长度划分成数据块(一个数 据块包括若干个码组),并把每个码组按顺序一列一列地排列起来,然后对每个码组相同位的 码元进行奇偶校验,得到一列校验位,附加在其他各列之后,然后按列的顺序进行传输,如表  2­2 所示。

表 2­2  水平奇偶校验 位  码组

1  2  3  4  5  6  7  8  9  10 

偶校验位 

1  1  0  0  1  1  1  0  0  0  1  1 

2  0  1  1  0  1  0  1  0  1  0  1 

3  1  1  0  1  1  0  0  0  0  1  1 

4  0  0  1  1  1  0  0  0  1  0  0 

5  1  1  1  0  1  1  1  1  0  1  0 

数据块共有 10 个码组, 每个码组共有 5 个信息位。 传输时即按列的顺序先传送第 1 码组,

数据块共有 10 个码组, 每个码组共有 5 个信息位。 传输时即按列的顺序先传送第 1 码组,

在文檔中 第 2 章 数据通信基础 (頁 23-28)

相關文件