在检错重发方式中,发送端经编码后发出能够发现错误的码,接收端收到后经检验如果发现传输中有错误,则通过反向信道把这一判断结果反馈给发送端,然后,发送端把前面发出的信息重新传送一次,直到接收端认为已正确地收到信息为止。常用的检错重发系统有三种,即停发等候重发、返回重发和选择重发。图7.2中画出了这三种系统的工作原理图。
图7.2(a)表示停发等候重发系统的发送端、接收端的信号传递过程。发送端在TW时间内送出一个码组给接收端,接收端收到后经检测若未发现错误,则发回一个认可信号(ACK)给发送端,发送端收到ACK信号后再发出下一个码组。返回重发系统如图7.2(b)所示。
在前向纠错系统中,发送端经编码发出能够纠正错误的码,接收端收到这些码组后,通过译码能自动发现并纠正传输中的错误。前向纠错方式不需要反馈信道,特别适合于只能提供单向信道的场合。由于该系统能自动纠错,不要求检错重发,因而具有延时小,实时性好等特点。
混合纠错方式是前向纠错方式和检错重发方式的结合。在这种系统中,发送端不但有纠正错误的能力,而且对超出纠错能力的错误有检测能力。遇到后一种情况时,通过反馈信道要求发送端重发一遍。混合纠错方式在实时性和译码复杂性方面是前向纠错和检错重发方式的折衷。
现在我们来讨论纠错编码的基本原理。为了便于理解,先通过一个例子来说明。一个由三位二进制数字构成的码组,共有八种不同的可能组合。若将其全部利用来表示天气,则可以表示八种不同的天气,譬如:000(晴),001(云),010(雨),011(阴),100(雪),101(霜),110(雾),111(雹)。其中,任意码组在传输中若发生1个或多个错码,则该码组将变成另一信息码组。这时接收端将无法发现错误。
分组码一般用符号(n,k)表示,其中k是每组二进制信息码元的数目,n是编码组的总位数,又称为码组长度(码长),n-k=r为每个码组中的监督码元数目或称监督位数目。通常,将分组码规定为具有如图7.3所示的结构。图中前面k位(an-1…ar)为信息位,后面附加r个监督位(ar-1…a0)。在式(7.1)的分组码中,n=3,k=2,r=1。
在分组码中,我们把“1”的数目称为码组的重量,而把两个码组对应位上数字不同的位数称为码组的距离,简称码距,又称汉明(Hamming)距离。式(7.1)中四个码组之间任何两个的距离均为2。我们把某种编码中各个码组间距离的最小值称为最小码距(d0),例如,按式(7.1)编码的最小码距d0=2。
一种编码的最小码距d0的大小直接关系到这种编码的检错和纠错能力。下面我们将具体对此加以说明。
这可以用图7.5(a)简单证明如下:设一码组A位于0点。若码组A中发生一位错码,则可以认为A的位置将移动至以0点为圆心、以1为半径的圆上某点,但其位置不会超出此圆。
上式可用图7.5(b)来加以说明。图中画出码组A和B的距离为5。码组A或B若不发生多于2位的错码,则其位置均不会超出以原位置为圆心,以2为半径的圆。由于这两个圆的面积是不重叠的,故可以这样判决:若接收码组落于以A为圆心的圆上,就判决收到的是码组A;若落于以B为圆心的圆上,就判决为码组B。
在解释此式之前,先来说明什么是“纠正t个错码,同时检测e个错码”(简称纠、检结合)。在某些情况下,要求对于出现较频繁但错码很少的码组,按前向纠错方式工作,以节省反馈重发时间;同时又希望对一些错码数较多的码组,在超过该码的纠错能力后,能自动按检错重发方式工作,以降低系统的总误码率。这种工作方式就是“纠、检结合”。BG大游官方网站
假设在随机信道中发送“0”时的错误概率和发送“1”时的相等,都等于p,且p1,容易证明,在码长为n的码组中恰好发生r个错码的概率为
奇偶监督码是一种最简单的检错码,又称奇偶校验码,在计算机数据传输中得到了广泛的应用。在ISO和CCITT提出的七单位国际5层字母表、美国信息交换码ASCII字母表及我国的七单位字符编码标准中都采用7比特码组表示128种字符, 如字符A的编码表示为1000001(在第8章将较详细地介绍)。
一般情况下奇偶监督码的编码规则是: 首先将要传输的信息分成组, 然后将各位二元信息及附加监督位用模2和相加, 选择正确的监督位, 保证模2和的结果为0(偶校验)或1(奇校验)。 这种监督关系可以用公式表示。 设码组长度为n, 表示为(an-1 an-2
an-3 …a0), 其中前n-1位为信息, 第n位为校验位, 则偶校验时有
针对上述奇偶监督码检错能力不高, 特别是不能检测突发错误的缺点, 可以将经过奇偶监督编码的码元序列按行排列成方阵, 每行为一组奇偶监督码(如表7.2所示), 但发送时则按列的顺序传输: …1001011, 接收端仍然将码元排成发送时的方阵形式, 然后按行进行奇偶校验。 由于按横行进行奇偶校验, 因此称其为水平奇偶监督码或行奇偶监督码。
在群计数码中, 信息码元分组后计算其“1”的个数, 然后将这个数目的二进制表示作为监督码元附加在信息码元之后送往信道。 例如一组信息码元为11100101, 其中有5个“1”,用二进制数字表示为“101”, 传输的码组即为。 这种码的检错能力很强, 除了发生1变0和0变1成对的错误之外, 它能检测出所有形式的错误。
前面介绍的奇偶监督码其编码原理利用了代数关系式, 我们把这类建立在代数基础上的编码称为代数码。 在代数码中, 常见的是线性码。 线性码中的信息位和监督位是由一些线性代数方程联系着的, 或者说, 线性码是按一组线性方程构成的。 这里将以汉明码为例引入线性分组码的一般原理。
按式(7.6a)条件构成的偶数监督码由于使用了1位监督位a0, 因此它就能和信息位an-1 …a1一起构成一个代数式, 如式(7.6a)所示。 在接收端解码时, 实际上就是计算
一般说来, 若码长为n, 信息位数为k, 则监督位数r=n-k。 如果希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置, 则要求
由表中规定可见, 仅当1个错码位置在a2、 a4、 a5或a6时, 校正子S1为1; 否则S1为0。 这就意味着a2、 a4、 a5和a64个码元构成的偶数监督关系为
在发端编码时, 信息位a6、 a5、 a4和a3的值决定于输入信号, 因此它们是随机的。 监督位a2、 a1和a0应根据信息位的取值按监督关系来确定, 监督位应使上式中S1、 S2和S3的值为零(表示编成的码组中应无错码), 即
接收端收到每个码组后, 先按式(7.9)~式(7.11)计算出S1、 S2和S3, 再按表7.3判断错误情况。 例如, 若接收码组为0000011, 则按式(7.9)~式(7.11)计算可得S1=0, S2=1 , S3=1。 由于S1S2S3等于011, 故根据表7.3可知在a3位有一错码。
现在我们再来讨论线性分组码的一般原理。 上面已经提到, 线性码是指信息位和监督位满足一组线)就是这样一组线性方程的例子。 现在将它改写成
注: 上式中将“⊕”简写为“+”。 在本章后面, 除非另加说明, 这类式中的“+”都指模2加。 式(7.14)又可以表示成
类似于式(7.12)改变成式(7.15)中矩阵形式那样, 式(7.13)也可以改写成以下形式:
式(7.19)表明, 信息位给定后, 用信息位的行矩阵乘矩阵 Q 就能产生出监督位。
一般来说, 式(7.23)中A为一n列的行矩阵。 此矩阵的n个元素就是码组中的n个码元, 所以发送的码组就是A。 此码组在传输中可能由于干扰而引入差错, 故接收码组与A不一定相同。 若设接收码组为一n列的行矩阵 B , 即
因此, 若en = 0, 则表示该位接收码元无错; 若en = 1, 则表示该位接收码元有错。 式(7.25) 也可以改写成
接收端译码时, 可将接收码组 B 代入式(7.16)中计算。 若接收码组中无错码, 即 E = 0 , 则 B = A + E = A, 把它代入式(7.16)后, 该式仍成立, 即有
当接收码组有错时, E ≠0, 将 B 代入式(7.16)不一定成立。 在错码较多, 已超过这种编码的检错能力时, B 变为另一许用码组, 则式(7.28)仍能成立。 这样的错码是不可检测的。 在未超过检错能力时, 式(7.28)不成立, 即其右端不等于零。 假设这时式(7.28)的右端为S, 即
卷积码编码器的一般形式如图7.6所示, 它包括: 一个由N段组成的输入移位寄存器, 每段有k级, 共nN位寄存器; 一组n个模2和相加器; 一个由n级组成的输出移位寄存器。
描述卷积码的方法有两类: 图解表示和解析表示。 这里我们以图7.7所示的(2, 1, 3)卷积码为例介绍图解法。
现若按(2, 1, 3)卷积码编码器进行编码, 当M=[11010]时, 由式(7.31)可知:
如图7.7所示, 在(2, 1, 3)卷积码编码器中, 输出移位寄存器用转换开关代替, 每输入一个信息比特, 经编码产生2个输出比特。 假设移位寄存器的起始状态为全0, 则当第一个输入比特为0时, 输出比特为00; 当第一个输入比特为1时, 输出比特为11。 随着第二个比特的输入, 第一个比特右移1位, 此时输出比特同时受当前输入比特和前一个输入比特的影响。 第三个比特输入时, 第一、 二个比特分别右移1位, 同时输出两个由这3位移位寄存器存储内容所共同决定的比特。
卷积码编码器输出的码对应码树中的每个分支的上支, 用图7.8中上支所示的虚线]
解 为使最后一位信息码被充分利用, 应在信息码流尾部添加三个“0”, 即
按照码树中观察到的重复性, 得到一种更为紧凑的图形表示, 即网格图, 如图7.9所示。
在网格图中, 把码树中具有相同状态的节点合并在一起。 码树中的上支路(对应于输入比特0)用实线表示, 下支路(对应于输入比特1)用虚线表示。 网格图中支路上标注的码元为输出比特, 自上而下四行节点分别表示a、b、 c、 d四种状态。 一般情况下应有2 N-1 种状态, 从第N节(从左向右计数)开始, 网格图的图形开始重复。
取出已达到稳定状态的一节网格, 便得到图7.10(a)所示的状态图。 再把目前状态与下行状态重叠起来, 即可得到图7.10(b)所示的反映状态转移图。 图中两个自闭合圆环分别表示a-a和d-d状态转移。 当给定输入信息序列和起始状态时, 可以用上述三种图解表示法的任何一种, 找到输出序列和状态变化路径。
例7.2 设M=[1], 试分别用码树图、 理论公式直接计算和码状态图三种方法进行卷积编码, 再对结果进行比较。
例7.3 图7.7所示的卷积码编码器若起始状态为a, 输入序列为0,BG大游官方网站 求输出序列和状态变化路径。
解 由卷积码的网格图表示, 找出编码时网格图中的路径, 如图7.11所示, 由此可得到输出序列和状态变化路径, 示于同一图中。
卷积码的译码方式有三种: 维特比译码、 序列译码和门限译码。 其中维特比译码和序列译码都是以最大似然译码的原理为基础的, 由于篇幅的限制, 这里只初步介绍一下维特比译码的原理和方法。