1、1,通信原理,第11章差错控制编码,2,第11章 差错控制编码,概述纠错编码原理与性能常用的简单编码线性分组码循环码卷积码,3,第11章 差错控制编码,差错控制编码目的 降低误码率 信道分类:随机信道 突发信道 混合信道 差错控制技术的种类检错重发 前向纠错 反馈校验 检错删除 差错控制编码的基本方法 发送端 信息序列 附加 监督码元 接收端 检验 信息码元与 监督码元 之间的关系.,4,概述,差错控制编码:常称为纠错编码 监督码元:在发送端在信息码元序列中增加一些差错控制码元 多余度:就是指增加的监督码元多少。 编码效率(简称码率) : 设编码序列中信息码元数量为k, 总码元数量为 n, 则
2、比值 k/n 就是码率。 冗余度:监督码元数(n-k) 和信息码元数 k 之比。,5,概述,常用差错控制方法,检错重发前向纠错混合纠错,发,收,检错码,应答信号,发,收,纠错码,发,收,纠检错,应答信号,6,概述,ARQ系统: 停发等候重发 返回重发 选择重发,7,概述,ARQ的主要优点:和前向纠错方法相比 监督码元较少即能使误码率降到很低; 检错的计算复杂度较低; 检错编码方法和加性干扰基本无关,适应不同信道。 ARQ的主要缺点: 不能用于单向信道,不能用于广播型通信系统。 因为重发而使ARQ系统的传输效率降低。 干扰严重时,因不断反复重发而造成事实上通信中断。 实时性能较差,8,概述,AR
3、Q系统的原理方框图在发送端,除立即发送外,还暂存于缓冲存储器中。 接收端仅当解码器认为接收信息码元正确时,才将信息码元送给收信者,否则在输出中删除接收码元。 未发现错码时,发送端收到不需重发指令,继续发送后一码组,发送端的缓冲存储器中的内容也随之更新。,9,11.2 纠错编码的基本原理,例:3位 二进制数构成的码组表示天气,不能检错、不能纠错,能检1位错、不能纠错,能检测2个错,可纠1位错。,10,11.2 纠错编码的基本原理,分组码 每组信息码附加若干监督码的编码称为分组码 。 如不用检错,传输4种信息,用两位码就够了,这两位码称为信息位,多增加的称为监督位。在分组码中,监督码元 仅监督本码
4、组中的信息码元。,11,11.2 纠错编码的基本原理,分组码的一般结构分组码的符号:(n, k) N 码组的总位数,又称为码组的长度(码长), k 码组中信息码元的数目, n k r 码组中的监督码元数目,或称监督位数,12,11.2 纠错编码的基本原理,分组码的 码重 和 码距 最小码距 “000”晴,“011”云,“101”阴,“110”雨,13,11.2 纠错编码的基本原理,码距和检纠错能力的关系 编码的最小码距 d0 的大小直接关系着这种编码的检错和纠错能力 为检测e个错码,要求最小码距 d0 e + 1,若码组A 中发生两位错码, 则其位置不会超出以O点为圆心,以 e 为半径的圆。
5、因此,只要最小码距不小于e +1,14,11.2 纠错编码的基本原理,为纠正 t 个错码,要求最小码距d0 2t + 1 A和B的距离为5。码组A或B若发生不多于两位错码,则其位置均不会超出半径为2以原位置为圆心的圆。这两个圆是不重叠的。,15,11.2 纠错编码的基本原理,为纠正 t 个错码,同时检测e个错码,要求最小码距检错 e = d0 1 = 5 1 = 4,纠 2个错码 不能同时满足,这种纠错和检错结合的工作方式简称纠检结合。,16,11.3 纠错编码的性能,系统带宽和信噪比的矛盾: 举例 未编码,误码率A点,编码后,误码率B点。 保持误码率10-5,C点,未编码时,D点, 编码后。
6、,17,11.3 纠错编码的性能,传输速率和 Eb/n0 关系若提高传输速率, 信噪比下降 误码率增大。 C点 E点 D点。付出的代价仍是带宽增大。,18,11.4简单的实用编码,奇偶监督码 奇偶监督码分奇数监督码和偶数监督码两种 偶监督码中, 1位监督位,使码组中“1” 为偶数这种编码能够检测 奇数个 错码。 在接收端,按照上式求“ 模2和 ” 结果为“1”就说明有错码,结果为“0”认为无错码。,19,11.4简单的实用编码,二维奇偶监督码(方阵码)a01 a02 a0m 为 m 行奇偶监督码中的 m 个监督位。 cn-1 cn-2 c1 c0为按列进行第二次编码所增加的监督位,它们构成了一
7、监督位行。,可能检测 偶数个 错码构成矩形四角的错码无法检测还可以用来纠正一些错码,20,11.4简单的实用编码,恒比码 “1”的数目与“0”的数目之比保持恒定 这种码在检测时,只要计算接收码组中“1”的数目是否对,就知道有无错码。 正反码能够纠正错码的编码。其中的监督位数目与信息位数目相同 其编码规则为: 信息位有奇数个“1”,监督位是信息位的重复; 信息位有偶数个“1” ,监督位是信息位的反码。,21,11.4简单的实用编码,正反码的解码 在接收码组中 信息位 监督位 = 合成码组 校验码组接收码组信息位有奇数个“1”,合成码组就是 校验码组;接收码组信息位有偶数个“1”,取合成码组的反
8、码作为校验码组。,0000100001=00000,22,11.4简单的实用编码,校验码组和错码的关系若发送码组 11001 11001,接收码组 10001 11001 则合成码组应为 1000111001=01000。校验码组就是10111。,23,11.5 线性分组码,基本概念 代数码:建立在代数学基础上的编码。 线性码:按照一组线性方程构成的代数码。在线性码中信息位和监督位是由一些线性代数方程联系着的。 线性分组码:按照一组线性方程构成的分组码 。本节将以 汉明码 为例引入线性分组码一般原理。,24,11.5 线性分组码,汉明码 构造原理 在偶数监督码中,一位监督位a0,和 信息位构成
9、代数式:在接收端解码时,实际上就是在计算S = 0,认为无错码; S = 1,就认为有错码。,监督关系式,校正子,25,11.5 线性分组码,若监督位增加一位,两个校正子的可能值有4中组合: 00,01,10,11,故能表示4种不同信息。 1种表示无错 其余3种能指示1位错码(2r 1)个可能位置。 码长为 n ,信息位数为 k,则监督位 rnk。 指示1位错码的 n 种可能位置,要求设分组码 (n, k) 中k = 4,为了纠正1位错码, 要求监督位数 r 3。若取 r = 3,则n = k + r = 7。,26,11.5 线性分组码,仅当一位错码在a2 、a4、a5或a6时,校正子S1为
10、1,偶数监督关系 a1、a3、a5和a6构成偶数监督关系:a0、a3、a4 和a6构成偶数监督关系,27,11.5 线性分组码,监督位a2、a1和a0应根据信息位的取值按监督关系来确定,即监督位应使S1、S2和S3的值为0:上式经过移项运算,解出监督位,28,11.5 线性分组码,给定信息位后,可以直接按上式算出监督位,29,11.5 线性分组码,接收端收到每个码组后,先计算出S1、S2和S3,再查表判断错码情况。 例如 若接收码组为1101100按监督式计算可得:S1 = 1,S2 = 1,S3 = 0。查表可知在a5位有1错码。 按照上述方法构造的码称为汉明码。表中所列的(7, 4)汉明码
11、的最小码距d0 = 3。这种码能够纠正1个错码或检测2个错码。码效率: k/n = (n - r) /n =1 r/n,当n很大和r很小时,码率接近1。汉明码是一种高效码。,30,11.5 线性分组码,线性分组码的一般原理 线性分组码的构造H矩阵上面(7, 4)汉明码的例子有改写为上式中已经将“”简写成“+”。,31,11.5 线性分组码,矩阵形式简记为H AT = 0T 或 A HT = 0H称为监督矩阵。 只要监督矩阵 H 给定,编码时 监督位 和 信息位 的关系就完全确定了。,32,11.5 线性分组码,H矩阵的性质:1) H 的行数 就是 监督关系式 数,等于 监督位数 r。 每行中“
12、1”的位置表示监督关系。H 矩阵可以分成两部分P 为 r k 阶矩阵,Ir为r r阶单位方阵。我们将具有P Ir形式的H矩阵称为典型阵。,33,11.5 线性分组码,2) H 矩阵各行线性无关,才有 r个独立监督位。 若矩阵能写成形式P Ir,各行一定线性无关G矩阵:汉明码例子中的监督位公式为可以改写成或,Q = PT 信息位的行矩阵乘矩阵Q 就产生出监督位,34,11.5 线性分组码,生成矩阵G由它可以产生整个码组具有IkQ形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组 A中,信息位的位置不变 监督位附加于其后。这种形式的码称 系统码。,35,11.5 线性分组码,G矩阵的性质:
13、1) G矩阵的各行是线性无关的。任一码组 A 都是 G 的各行的线性组合。G 的 k 行线性无关 2k 种不同的码组 A,恰是有 k 位信息位的全部码组。 2) 实际上,G的各行本身就是一个码组。如果已有k个线性无关的码组,则可以用其作为生成矩阵G,并由它生成其余码组。,36,11.5 线性分组码,错码矩阵和错误图样 A为一个 n 列的行矩阵。 发送的码组就是A。 设接收码组为 n列的行矩阵 B,即发送码组和接收码组之差为B A = E (模2) E 就是传输中产生的 错码 行矩阵 式中错码矩阵有时也称为错误图样。,37,11.5 线性分组码,校正子S当接收码组有错时,E 0,将 B 代入 (
14、A H T = 0),不一定成立。即 B H T = S将 B = A + E 代入S = (A + E) H T = A H T + E H T= E H TS 称为校正子。它能用来指示错码的位置。S 和E 之间有确定的线性变换关系。,38,11.5 线性分组码,线性分组码的性质封闭性:是指一种线性码中的任意两个码组之和 仍为这种码中的一个码组。若 A1和A2是一种线性码中的两个许用码组,则 (A1+A2)仍为其中的一个码组。 A1 和A2之间的距离 = (A1 + A2)的重量。 码的最小距离就是码的最小重量(除全“0”码组外),39,11.6 循环码,循环码原理 循环性:任一码组循环一位
15、以后,仍为 该码中的码组。(7, 3)循环码的全部码组,40,11.6 循环码,码多项式 码组的多项式表示法一个长度为 n 的码组表示成(7,3)循环码 第7个码组可以表示为这种多项式中,x仅是码元位置的标记我们并不关心x的取值。,41,11.6 循环码,码多项式的按模运算 一般说来,若一个整数m可以表示为式中,Q 整数,则在模 n 运算下,有m p (模n)在模 n 运算下,一个整数 m 等于它被 n 除得的余数。,42,11.6 循环码,码多项式运算多项式 F(x) 被 n 次多项式N (x)除 = 商式 Q(x) + 余式R(x)按模2 运算,即系数只取 0 和1。,应当注意,由于在模2
16、运算中,用加法代替了减法,故余项不是x2 x + 1,而是x2 + x + 1。,43,11.6 循环码,循环码的生成矩阵G码组生成公式G 是 k 行 n 列的矩阵,若能找到 k 个已知码组,就能构成矩阵 且这 k个已知码组必须是线性在循环码中,一个 (n, k) 码有 2k 个不同的码组。若用g(x) 表示其中前 (k 1) 位皆为 “0” 的码组, 则 g(x), x g(x),x2 g(x),xk-1 g(x) 都是码组,而且这k个码组是线性无关的。 因此它们可以用来构成此循环码的生成矩阵G。,44,11.6 循环码,在循环码中除全“0”码组外,再没有连续k位均为“0”的码组,即连“0”
17、的长度最多只能有(k - 1)位。 g(x)必须是一个常数项不为“0”的(n - k)次多项式, 且此g(x)还是这种(n, k)码中次数为(n k)的唯一多项式。 我们称这唯一的(n k)次多项式g(x)为码的生成多项式。确定了g(x),则整个(n, k)循环码就被确定了。 循环码的生成矩阵 G 可以写成,45,11.6 循环码,(7, 3)循环码中,n = 7, k = 3, n k = 4。唯一 (n k) = 4次 码多项式代表的码组是第二码组0010111,对应码多项式 g(x) = x4 + x2 + x + 1。将此g(x)代入上式,得到不符合G = IkQ的形式,所以它不是典型
18、阵。 不过,将它作线性变换,不难化成典型阵,46,11.6 循环码,写出此循环码组,即所有码多项式T(x)都可被g(x)整除,而且任意一个次数不大于(k 1)的多项式乘g(x)都是码多项式。两个矩阵相乘的结果应该仍是一个矩阵。 上式中两个矩阵相乘的乘积是只有一个元素的一阶矩阵,这个元素就是T(x)。,47,11.6 循环码,寻找 (n, k)循环码 的生成多项式 任一循环码多项式 T(x) 都是 g(x) 的 倍式,可以写成T(x) = h(x)g(x) 而生成多项式g(x)本身也是一个码组,即有T (x) = g(x) 码组T (x)是一个(n k)次多项式,xk T (x)是一个n次多项式
19、。xk T (x)在模 (xn + 1)运算下也是一个码组上式左端分子和分母都是 n 次多项式,故商式Q(x) = 1。,48,11.6 循环码,可以化成将T(x)和T(x) 代入得g(x) 是 (xn + 1) 的一个因子。且为 (n k)次因式。 例 (x7 + 1)可以分解成 (7, 3)循环码的生成多项式g(x) 需要从上式中找到一个(n k) = 4次的因子,都可作为生成多项式,49,11.6 循环码,循环码的编码方法 选定生成多项式g(x)-从(xn + 1)的因子中选一个(n - k)次多项式作为g(x)。 用 xn - k乘m(x),得到 xn-k m(x) ,其次数小于n。
20、g(x)/xn - k m(x),得余式r(x),其次数必小于g(x) 即小于(n k)。 r(x)加于信息位之后作为监督位 将r(x)和xn - k m(x)相加得到码多项式。,50,11.6 循环码,编码步骤: 用xn - k乘m(x)。在信息码后附加上(n k)个“0”。信息码为110,它相当于m(x) = x2 + x 用g(x)除xn - k m(x),得到商Q(x)和余式r(x),即例如,若选定g(x) = x4 + x2 + x + 1,则 上式相当于,51,11.6 循环码,编出的码组T(x)为T(x) = xn - k m(x) + r(x) T(x) = 1100000 +
21、 101 = 1100101,是表中的第7码组。 循环码的解码方法 解码要求:检错和纠错。 检错解码原理:在接收端将接收R(x)用g(x)去除。若码组在传输中发生错误, 则 R(x) T(x),R(x)被g(x)除时可能除不尽而有余项,即有,52,11.6 循环码,纠错解码原理:要求每个可纠正的错误图样必须与一个特定余式有一一对应关系。 纠错可按下述步骤进行: 用生成多项式g(x)除接收码组R(x),得出余式r(x)。 按余式r(x),用 查表 或 计算 得到错误图样E(x);例如,通过计算校正子S和查表,可以确定错码的位置。 R(x) - E(x),便得到已经纠正错码的原发送码组T(x)。
22、一种编码可以有几种纠错解码方法,上述解码方法为捕错解码 目前多采用软件运算实现上述编解码运算。,53,11.6 循环码,截短循环码 截短目的:在设计纠错编码时,纠错能力预先给定的。 不一定有恰好满足这些条件的循环码存在。 截短方法:一个(n, k)循环码,使前i (0 i k)个信息位全为“0”,于是它变成仅有 2k-i 种码组。 删去这i位全“0”的信息位,得到(n i, k i)的线性码。将这种码称为截短循环码。 截短循环码性能:循环码截短前后至少具有相同的纠错能力,并且编解码方法仍和截短前的方法一样。 例:要求构造一个能够纠正1位错码的(13, 9)码。由(15, 11)循环码的11种码
23、组中选出前两信息位均为“0”的码组,构成一个新的码组集合。然后在发送时不发送这两位“0”。于是发送码组成为(13, 9)截短循环码。,54,11.7 卷积码,卷积码是一种非分组码。 更适用于前向纠错,性能优于分组码,运算简单。 一个码组中的监督码元监督着N个信息段本码组 k bit信息段,前 m = (N 1)个码组的信息段。N称为编码约束度, nN称为编码约束长度。 卷积码记作(n, k, N) 码率则仍定义为k / n,55,11.7 卷积码,卷积码的基本原理 编码器原理方框图,56,11.7 卷积码,例: (n, k, N) = (3, 1, 3)卷积码编码器设输入信息比特序列是bi-2
24、 bi-1 bi bi+1,则当输入bi时,此编码器输出3比特ci di ei,输入和输出,57,11.7 卷积码,虚线示出了信息位 bi 的监督位和各信息位之间的约束关系。约束度N = 3 约束长度 nN = 9,58,11.7 卷积码,卷积码的几何表述(3, 1, 3) 码树图,第4级支路开始,码树上半部和下半部相同。从第4个输入信息位开始,输出码元与第1位输入信息位无关,此编码器约束度N = 3。,59,11.7 卷积码,状态图由编码器结构可知,输出码元ci di ei决定于当前输入信息位bi和前两位信息位bi-1和bi-2(即移存器M2和M3的状态)。,60,11.7 卷积码,虚线表示
25、输入信息位为“0”时状态转变的路线; 实线表示输入信息位为“1”时状态转变的路线。-线条旁的3位数字是编码输出比特。,a,b,c,d,111,000,110,101,100,001,011,010,61,11.7 卷积码,网格图将状态图在时间上展开,网格图:图中画出了5个时隙。在第4时隙以后的网格图形完全是重复第3时隙的图形。这也反映了此(3, 1, 3)卷积码的约束长度为3。,62,11.7 卷积码,输入信息位为11010时,在网格图中的编码路径。有了上面的状态图和网格图,就可以讨论维特比解码算法了。,63,11.7 卷积码,卷积码的解码 代数解码: 利用代数结构进行解码,不考虑信道的统计特
26、性。 大数逻辑解码,又称门限解码,对于约束长度较短的卷积码最为有效,而且设备较简单。 概率解码:又称 最大似然解码。它基于信道的统计特性和卷积码的特点进行计算。另一种概率解码方法是 维特比算法。,64,11.7 卷积码,维特比解码算法 基本原理将接收到的序列和所有可能的发送序列比较,选择其中汉明距离最小的序列认为是当前发送信号序列。 若发送一个k位序列,则有2k种可能的发送序列。 当k较大时,存储量太大,使实用受到限制。 维特比算法对此作了简化,使之能够实用。,65,11.7 卷积码,(3, 1, 3)卷积码设现在的发送信息位为1101,为使移存器的信息位全部移出,在信息位后面加入3个“0”,
27、故编码后的发送序列为111 110 010 100 001 011 000。并且假设接收序列为111 010 010 110 001 011 000由于这是一个(n, k, N) = (3, 1, 3)卷积码,发送序列的约束度N = 3,所以首先需考察nN 9比特。 第1步考察接收序列前9位“111 010 010”。由此码的网格图可见,沿路径每一级有4种状态a, b, c和d。每种状态只有两条路径可以到达。故4种状态共有8条到达路径。,66,11.7 卷积码,由出发点状态a经过3级路径后到达状态a的两条路径中上面一条为“000 000 000”。和接收序列“111 010 010”的汉明距离
28、等于5; 下面一条为“111 001 011”,它和接收序列的汉明距离等于3。同样,由出发点a经过3级到达状态b、c和d的路径分别都有两条,故总共有8条路径。,67,11.7 卷积码,将到达每个状态的两条路径比较,将距离小的一条路径保留,称为幸存路径。这样就剩下4条路径了,即表中第2, 4, 6和8条路径。,68,第一次比较后的幸存路径。,111 010 010 110 001,5,3,69,11.7 卷积码,第2步考察后继3个比特“110”。计算4条幸存路径上增加1级后的8条可能路径的汉明距离。最小的总距离等于2,其路径abdc+b,相应序列为111 110 010 100。和发送序列相同,故对应发送信息位1101。,70,11.7 卷积码,路径是汉明距离最小(等于2)的路径。,71,第11章差错控制编码,若把这3个“0”仍然看作是信息位,则可以按照上述算法继续解码。这样得到的幸存路径网格若已知这3个码元是(结尾补充)“0”,则在解码计算时就预先知道在接收这3个“0”码元后,路径必然应该回到状态a。而由图可见,只有两条路径可以回a状态,72,第11章差错控制编码,卷积码的约束度N = 3,需要存储和计算8条路径的参量。 维特比解码算法的复杂度随约束长度N按指数形式2N增长。,