700 likes | 827 Views
第十章 信道编码和差错控制. 10.1 概述 信道编码: 目的:提高信号传输的可靠性。 方法:增加多余比特,以发现或纠正错误。 差错控制:包括信道编码在内的一切纠正错误手段。 产生错码的原因: 乘性干扰引起的码间串扰 加性干扰引起的信噪比降低 信道分类:按照加性干扰造成错码的统计特性不同划分 随机信道:错码随机出现,例如由白噪声引起的错码 突发信道:错码相对集中出现,例如由脉冲干扰引起的错码。 混合信道. 差错控制技术的种类: 检错重发: 能发现错码,但是不能确定错码的位置。 通信系统需要有双向信道。
E N D
第十章 信道编码和差错控制 10.1概述 • 信道编码: • 目的:提高信号传输的可靠性。 • 方法:增加多余比特,以发现或纠正错误。 • 差错控制:包括信道编码在内的一切纠正错误手段。 • 产生错码的原因: • 乘性干扰引起的码间串扰 • 加性干扰引起的信噪比降低 • 信道分类:按照加性干扰造成错码的统计特性不同划分 • 随机信道:错码随机出现,例如由白噪声引起的错码 • 突发信道:错码相对集中出现,例如由脉冲干扰引起的错码。 • 混合信道
差错控制技术的种类: • 检错重发: • 能发现错码,但是不能确定错码的位置。 • 通信系统需要有双向信道。 • 前向纠错(FEC):利用加入的差错控制码元,不但能够发现错码,还能纠正错码。 • 反馈校验: • 将收到的码元转发回发送端,将它和原发送码元比较。 • 缺点:需要双向信道,传输效率也较低。 • 检错删除: • 在接收端发现错码后,立即将其删除。 • 适用在发送码元中有大量多余度,删除部分接收码元不影响应用之处。
编码序列的参数 • n - 编码序列中总码元数量 • k - 编码序列中信息码元数量 • r- 编码序列中差错控制码元数量 (差错控制码元,以后称为监督码元或监督位 ) • k/n - 码率 • (n - k) / k = r / k - 冗余度
发送数据 3 4 5 2 3 5 1 6 t ACK ACK NAK ACK ACK NAK ACK 接收数据 2 3 3 4 5 5 1 t 有错码组 有错码组 停止等待ARQ系统 重发码组 重发码组 ACK1 ACK5 NAK9 NAK5 10 12 10 11 11 发送数据 5 6 1 2 3 4 5 6 7 7 8 9 9 11 12 10 10 接收数据 11 1 2 3 4 5 6 7 5 6 7 8 9 9 有错码组 有错码组 拉后ARQ系统 • 自动要求重发(ARQ)系统 • 停止等待ARQ系统 • 拉后ARQ系统
ACK9 NAK5 NAK9 ACK5 重发码组 重发码组 1 2 3 4 5 6 7 10 11 12 13 14 ACK1 接收数据 10 11 12 13 14 1 2 3 4 5 6 7 5 8 9 9 有错码组 有错码组 发送数据 9 9 5 8 选择重发ARQ系统 • 选择重发ARQ系统 • ARQ和前向纠错比较: • 优点 • 监督码元较少,即码率较高 • 检错的计算复杂度较低 • 能适应不同特性的信道 • 缺点 • 需要双向信道。 • 不适用于一点到多点的通信系统或广播系统。 • 传输效率降低,可能因反复重发而造成事实上的通信中断。
10.2 纠错编码的基本原理 • 分组码举例 • 设:有一种由3个二进制码元构成的编码,它共有23 = 8种 不同的可能码组: 000 – 晴 001 – 云 010 – 阴 011 – 雨 100 – 雪 101 – 霜 110 – 雾 111 – 雹 这时,若一个码组中发生错码,则将收到错误信息。 • 若在此8种码组中仅允许使用4种来传送天气,例如:令 000 – 晴 011 – 云 101 – 阴 110 – 雨 为许用码组,其他4种不允许使用,称为禁用码组。 这时,接收端有可能发现(检测到)码组中的一个错码。 • 这种编码只能检测错码,不能纠正错码。 • 若规定只许用两个码组:例如 000 – 晴 111 – 雨 就能检测两个以下错码,或纠正一个错码。
an-1 ... ar-1 ... an-2 ar an-2 a0 t k个信息位 r个监督位 码长 n = k + r 分组码的结构 • 分组码概念 • 分组码 = 信息位 + 监督位 • 分组码符号:(n, k) 其中,n - 码组总长度, k - 信息码元数目。 r = n – k- 监督码元数目。 右表中的码组为(3, 2)码。 • 分组码的一般结构: • 分组码的参数: • 码重:码组内“1”的个数 • 码距:两码组中对应位取值不同的位数,又称汉明距离 • 最小码距(d0) :各码组间的最小距离
a1 (0,1,0) (1,1,0) (0,1,1) (1,1,1) (0,0,0) (1,0,0) a2 (0,0,1) (1,0,1) a0 • 码距的几何意义:以n = 3的编码为例 • 一般而言,码距是 n 维空间中单位正多面体顶点之间的汉明距离。
码距等于3的两个码组 0 1 2 3 4 5 0 1 2 3 B A A B 汉明距离 汉明距离 t e t d0 d0 码距等于5的两个码组 • 一种编码的纠检错能力:决定于最小码距d0的值。 • 为了能检测e个错码,要求最小码距 • 为了能纠正 t 个错码,要求最小码距
A B t t 汉明距离 e 1 码距等于(e+t+1)的两个码组 • 为了能纠正t个错码,同时检测e个错码,要求最小码距 纠检结合工作方式: • 当错码数量少时,系统按前向纠错方式工作,以节省重发时间,提高传输效率; • 当错码数量多时,系统按反馈重发的纠错方式工作,以降低系统的总误码率。
2PSK 10-1 10-2 10-3 Pe A E 10-4 编码后 B C 10-5 D 10-6 Eb/n0 (dB) 编码和误码率关系 10.3 纠错编码系统的性能 10.3.1 误码率性能和带宽的关系 采用编码降低误码率 所付出的代价是带宽的增大。
2PSK 10-1 10-2 10-3 Pe A E 10-4 编码后 B C 10-5 D 10-6 Eb/n0 (dB) 编码和误码率关系 10.3.2 功率和带宽的关系 采用编码以节省功率,并保持 误码率不变,付出的代价也是 带宽增大。
2PSK 10-1 10-2 10-3 Pe A E 10-4 编码后 B C 10-5 D 10-6 Eb/n0 (dB) 编码和误码率关系 10.3.3 传输速率和带宽的关系 对于给定的传输系统,其传输速率和Eb/n0的关系: 式中,RB- 码元速率。 提高传输速率,采用编 码以保持误码率不变;付出 的代价仍是带宽增大。
10.3.4 编码增益 定义:在保持误码率恒定条件下,采用纠错编码所节省的信 噪比Eb/n0称为编码增益: 式中,(Eb/n0)u- 未编码时的信噪比(dB); (Eb/n0)c- 编码后所需的信噪比(dB)。
10.4 奇偶监督码 10.4.1 一维奇偶监督码 • 奇偶监督码 - 分为奇数监督码和偶数监督码两类。 • 在奇偶监督码中,监督位只有1位,故码率等于k/(k+1)。 • 偶数监督码中,此监督位使码组中“1”的个数为偶数: 式中,a0为监督位,其他位为信息位。 • 奇数监督码中,此监督位使码组中“1”的个数为奇数:
检错能力 - 能够检测奇数个错码。 • 设:码组长度为n, 码组中各个错码的发生是独立的和等概率的, 则在一个码组中出现 j 个错码的概率为 式中, — 为在n个码元中有j个错码的组合数。 • 奇偶监督码不能检测码组中出现的偶数个错码,所以在一个码组中有错码而不能检测的概率等于: - 当n为偶数时 - 当n为奇数时
[例] 右表中的编码是偶数监督码。 设信道的误码率为10-4,错码的出 现是独立的。试计算其不能检测 的误码率。 将给定条件代入式 计算得出 由计算结果可见,此编码可以将误码率从10-4降低到10-8量级。效果非常明显。
10.4.2 二维奇偶监督码 • 码率等于 • 有可能检测偶数个错码 • 适合检测突发错码 • 能够纠正部分错码
10.5 线性分组码 • 基本概念 • 代数码 - 利用代数关系式产生监督位的编码 • 线性分组码 - 代数码的一种,其 监督位和信息位的关系由线性代数方程决定 • 汉明码 - 一种能够纠正一个错码的线性分组码 • 校正子: 在偶数监督码中,计算 实际上就是计算 并检验S是否等于0。 S称为校正子。 • 监督关系式:
纠错基本原理 • 中,S只有两种取值,故只能表示有错和无错,而不能进一步指明错码的位置。 • 若此码组长度增加一位,则能增加一个监督关系式。这样,就能得到两个校正子。两个校正子的可能取值有4种组合,即00,01,10,11,故能表示4种不同的信息。若用其中一种组合表示无错码,则还有其他3种组合可以用于指明一个错码的3种不同位置。 从而可以有纠错能力。 • 一般而言,若有 r 个监督关系式,则 r 个校正子可以指明一个错码的 (2r – 1) 个不同位置。 • 当校正子可以指明的错码位置数目等于或大于码组长度n时,才能够纠正码组中任何一个位置上的错码,即要求
汉明码 • 例:要求设计一个能够纠正1个错码的分组码(n, k),给定的码组中有4个信息位,即k = 4。 • 由 这时要求监督位数r 3。若取r = 3,则n = k + r = 7。现在用a6a5a4a3a2a1a0表示这7个码元,用S1 S2S3表示校正子,则这3个校正子恰好能够指明23 – 1 = 7个错码的位置。 • 若规定校正子和错码位置的关系如下表,则仅当在a6a5a4a2位置上有错码时,校正子S1的值才等于1;否则S1的值为零。这就意味着a6a5a4a2四个码元构成偶数监督关系: • 同理,有
在编码时,信息位a6a5a4a3的值决定于输入信号,它们是随机的。监督位a2a1a0是按监督关系确定的,应该保证上列3式中的校正子等于0,即有在编码时,信息位a6a5a4a3的值决定于输入信号,它们是随机的。监督位a2a1a0是按监督关系确定的,应该保证上列3式中的校正子等于0,即有 给定信息位后,为了 计算监督位,上式可 以改写为 按照上式计算结果为
在接收端解码时,对于每个接收码组,先按式 计算出校正子S1,S2和S3,然后按照表 判断错码的位置。 例:若接收码组为0000011,则按上三式计算得到:S1 = 0,S2 = 1,S3 = 1。这样,由上表可知,错码位置在a3。
上例中的汉明码是(7, 4)码,其最小码距d0 = 3。 • 由式 • 可知,此码能够检测2个错码,或纠正1个错码。 • 汉明码的码率: 当r (或n)很大时,上式趋近于1。所以汉明码是一种高效编码。
分组码的一般原理 • 线性分组码的监督位和信息位的关系 可以改写为 上式中,已经将“”简写成“+”。
监督矩阵 上式可以写成矩阵形式: (模2) 将上式简写为 HAT = 0T或 AHT = 0
A = [a6a5a4a3a2a1a0] 0 = [000] HAT = 0T 式中, - 称为监督矩阵 • 监督矩阵的性质 • 监督矩阵H确定码组中的信息位和监督位的关系。 • H 的行数就是监督关系式的数目,即监督位数 r。 • H 的每行中“1”的位置表示相应的码元参与监督关系。 • H 可以分成两部分,例如 -典型监督矩阵 式中,P 为r k阶矩阵,Ir为 rr 阶单位方阵。
H 矩阵的各行应该是线性无关的,否则将得不到 r 个线性无关的监督关系式。 • 若一个矩阵能写成典型阵形式[P Ir],则其各行一定是线性无关的。 • 生成矩阵 • 例: 可以写为 上式两端分别转置后,可以变成 式中,Q为k r 阶矩阵,是P的转置,即 Q = PT
将Q的左边加上一个k阶单位方阵,称为生成矩阵:将Q的左边加上一个k阶单位方阵,称为生成矩阵: - 生成矩阵 G称为生成矩阵,因为可以用它产生整个码组A,即有 • 生成矩阵的性质 • 具有[IkQ]形式的生成矩阵称为典型生成矩阵。 • 由典型生成矩阵得出的码组A中,信息位的位置不变,监督位附加于其后。这种形式的码组称为系统码。 • 矩阵G的各行也必须是线性无关的。 • 如果已有k个线性无关的码组,则可以将其用来作为生成矩阵G,并由它生成其余码组。
B – A = E (模2) • 错误图样 设:发送码组A是一个n列的行矩阵: 接收码组是一个n列的行矩阵B: 令接收码组和发送码组之差为 E就是错码的行矩阵 -称为错误图样 式中, (i = 0, 1, …, n-1) 若ei= 0,表示该码元未错;若ei = 1,表示该码元为错码。
校正子矩阵 B – A = E 可以改写成 B = A + E 上式表示发送码组A与错码矩阵E之和等于接收码组B。 例如, 若发送码组A = [1 0 0 0 1 1 1], 错码矩阵E = [0 0 0 0 1 0 0], 则 接收码组B = [1 0 0 0 0 1 1]。 在接收端解码时,将接收码组B代入式 AHT = 0 中A的位置进行计算。若接收码组中无错码,则B = A。代入后,该式仍成立,即有 BH T = 0 只有当错码未超出检测能力时,上式才不成立。 假设,这时该式的右端等于S,即有 BH T = S 将B = A + E 代入上式,得到:S = (A + E) H T = AH T + EH T
S = (A + E) H T = AH T + EH T 上式右端第一项等于0,所以 S = EH T- 校正子矩阵 当H 确定后,上式中S只与E 有关,而与A 无关。 这意味着,S 和错码E 之间有确定的线性变换关系。 若S 和E 有一一对应关系,则S 将能代表错码位置。 • 线性码的封闭性:若A1和A2是一种线性码中的两个码组,则(A1+A2)仍是其中一个码组。 『证』若A1和A2是两个码组,则有:A1HT = 0, A2HT = 0 将上两式相加,得出 A1HT + A2HT = (A1 + A2 ) HT = 0 所以(A1 + A2)也是一个码组。 由于线性码具有封闭性,所以两个码组(A1和A2)之间的距离(即对应位不同的数目)必定是另一个码组(A1 + A2)的重量(即“1”的数目)。因此,码的最小距离就是码的最小重量(除全“0”码组外)。
10.6 循环码 10.6.1 循环码的概念: 循环性是指任一码组循环一位后仍然是该编码中的一个码组。 • 例:一种(7, 3)循环码的全部码组如下 表中第2码组向右移一位即得到第5码组;第5码组向右移一位即得到第7码组。
一般情况 若(an-1an-2 …a0)是循环码的一个码组,则循环移位后的码组: (an-2an-3 … a0an-1) (an-3an-4 … an-1an-2) … … (a0an-1 …a2a1) 仍然是该编码中的码组。 • 多项式表示法 一个长度为n的码组(an-1an-2 …a0)可以表示成 上式中x 的值没有任何意义,仅用它的幂代表码元的位置。 例:码组1 1 0 0 1 0 1可以表示为
10.6.2 循环码的运算 • 整数的按模运算 在整数运算中,有模n运算。例如,在模2运算中,有 1 + 1 = 2 0 (模2), 1 + 2 = 3 1 (模2), 2 3 = 6 0 (模2) 等等。 一般说来,若一个整数m可以表示为 式中,Q为整数,则在模n运算下,有 mp (模n) 所以,在模n运算下,一个整数m等于它被n除得的余数。
码多项式的按模运算 若任意一个多项式F(x)被一个n次多项式N(x)除,得到商式Q(x)和一个次数小于n的余式R(x),即 则在按模N(x)运算下,有 这时,码多项式系数仍按模2运算。 例1:x3被(x3 + 1)除,得到余项1,即 例2: 因为 x x3 + 1 x4 +x2 + 1 x4 + x x2 +x +1 在模2运算中加法和减法一样。
循环码的数学表示法 在循环码中,设T(x)是一个长度为n的码组,若 则T (x)也是该编码中的一个码组。 [证] 设一循环码为 则有 上式中的T (x) 正是码组T (x)向左循环移位 i 次的结果。 例: 一循环码为1100101,即 若给定 i = 3,则有 上式对应的码组为0101110,它正是T(x)向左移3位的结果。 结论:一个长为n的循环码必定为按模(xn + 1)运算的一个余式。
循环码的生成 • 有了生成矩阵G,就可以由k个信息位得出整个码组: 例: 式中, 生成矩阵G的每一行都是一个码组。 • 因此,若能找到 k 个已知的码组,就能构成矩阵G。如前所述,这k个已知码组必须是线性不相关的。 • 在循环码中,一个(n, k)码有2k个不同的码组。若用g(x)表示其中前(k-1)位皆为“0”的码组,则g(x),x g(x),x2 g(x),,xk-1 g(x)都是码组,而且这k个码组是线性无关的。因此它们可以用来构成此循环码的生成矩阵G。
在循环码中除全“0”码组外,再没有连续k位均为“0”的码组。否则,在经过若干次循环移位后将得到k位信息位全为“0”,但监督位不全为“0”的一个码组。这在线性码中显然是不可能的。在循环码中除全“0”码组外,再没有连续k位均为“0”的码组。否则,在经过若干次循环移位后将得到k位信息位全为“0”,但监督位不全为“0”的一个码组。这在线性码中显然是不可能的。 • 因此,g(x)必须是一个常数项不为“0”的(n - k)次多项式,而且这个g(x)还是这种(n, k)码中次数为(n – k)的唯一一个多项式。因为如果有两个,则由码的封闭性,把这两个相加也应该是一个码组,且此码组多项式的次数将小于(n – k),即连续“0”的个数多于(k – 1)。显然,这是与前面的结论矛盾的。 • 我们称这唯一的(n – k)次多项式g(x)为码的生成多项式。一旦确定了g(x),则整个(n, k)循环码就被确定了。
因此,循环码的生成矩阵G可以写成 • 例: 上表中的编码为(7, 3)循环码,n = 7, k = 3, n – k = 4,其中唯一的一个(n – k) = 4次码多项式代表的码组是第二码组0010111,与它对应的码多项式,即生成多项式,为 g(x) = x4 + x2 + x + 1。
g(x) = x4 + x2 + x + 1 即 “1 0 1 1 1” 将此g(x)代入上矩阵,得到 或 上式不符合G = [IkQ]形式,所以它不是典型生成矩阵。但它经过线性变换后,不难化成典型阵。 此循环码组的多项式表示式T(x): 上式表明,所有码多项式T(x)都能够被g(x)整除,而且任意一个次数不大于(k – 1)的多项式乘g(x)都是码多项式。
寻求码生成多项式 因为任意一个循环码T(x)都是g(x)的倍式,故它可以写成 T(x) = h(x)g(x) 而生成多项式g(x)本身也是一个码组,即有 T(x) = g(x) 由于码组T(x)是一个(n – k)次多项式,故xk T(x)是一个n次多项式。由 可知,xkT(x)在模(xn + 1)运算下也是一个码组,所以有 上式左端分子和分母都是n次多项式,故相除的商式Q(x) = 1。因此,上式可以写成
将 T(x) = h(x)g(x) 和 T(x) = g(x) 代入 化简后,得到 上式表明,生成多项式g(x)应该是(xn + 1)的一个因子。 例:(x7 + 1)可以分解为 为了求出(7, 3)循环码的生成多项式 g(x),需要从上式中找到一个(n – k) = 4次的因子。这样的因子有两个,即 以上两式都可以作为生成多项式。 选用的生成多项式不同,产生出的循环码码组也不同。
10.6.3 循环码的编码方法 • 用xn-k乘m(x)。这一运算实际上是在信息码后附加上(n – k)个“0”。例如,信息码为110,它写成多项式为m(x) = x2 + x。当n – k = 7 – 3 =4时,xn-k m(x) = x4 (x2 +x) = x6 +x5,它表示码组1100000。 • 用g(x)除xn-k m(x),得到商Q(x)和余式r(x),即有 例:若选定g(x) = x4 + x2 + x + 1,则有 上式是用码多项式表示的运算。它和下式等效: • 编出的码组T(x)为:T(x) = xn-k m(x) +r(x) 在上例中,T(x) = 1100000 + 101 = 1100101
10.6.4 循环码的解码方法 • 在检错时:当接收码组没有错码时,接收码组R(x)必定能被g(x)整除,即下式 中余项r(x)应为零;否则,有误码。 • 当接收码组中的错码数量过多,超出了编码的检错能力时,有错码的接收码组也可能被g(x)整除。这时,错码就不能检出了。 • 在纠错时: • 用生成多项式g(x)除接收码组R(x),得出余式r(x)。 • 按照余式r(x),用查表的方法或计算方法得出错误图样E(x)。 • 从R(x)中减去E(x),便得到已经纠正错码的原发送码组T(x)。
10.6.5 截短循环码 • 截短目的: 在设计时,通常信息位数k、码长n和纠错能力都是预先给定的。但是,并不一定有恰好满足这些条件的循环码存在。故采用截短码长截短,得出满足要求的编码。 • 截短方法: 设给定一个(n, k)循环码,它共有2k种码组,现使其前i (0 < i < k)个信息位全为“0”,于是它变成仅有2k-i种码组。然后从中删去这 i 位全“0”的信息位,最终得到一个 (n – i,k – i)的线性码。将这种码称为截短循环码。 • 截短循环码与截短前的循环码至少具有相同的纠错能力,并且截短循环码的编解码方法仍和截短前的方法一样。 • 例:要求构造一个能够纠正1位错码的(13, 9)码。 这时可以由(15, 11)循环码的11种码组中选出前两信息位均为“0”的码组,构成一个新的码组集合。然后在发送时不发送这两位“0”。于是发送码组成为(13, 9)截短循环码。
10.6.6 BCH码 • BCH码是能够纠正多个随机错码的循环码。 • BCH码分为两类:本原BCH码和非本原BCH码。 • 本原BCH码:码长n = 2m – 1 (m 3,任意正整数),它的生成多项式g(x)中含有最高次数为m次的本原多项式; • 非本原BCH码:码长n是(2m – 1)的一个因子,它的生成多项式g(x)中不含有最高次数为m的本原多项式。 • BCH码的工程设计:可以用查表法找到所需的生成多项式。 例:二进制非本原BCH码的生成多项式系数 表中g(x)是用8进制数字表示的;t 为纠错能力。
常用BCH码: • 戈莱(Golay)码: (23, 12)非本原BCH码,它能纠正3个随机错码,并且容易解码 。 • 扩展BCH码(n + 1, k) : • BCH码的长度为奇数。在应用中,为了得到偶数长度的码,并增大检错能力,可以在BCH码生成多项式中乘上一个因式(x + 1),从而得到扩展BCH码(n + 1, k)。 • 扩展BCH码已经不再具有循环性。 • 扩展戈莱码(24, 12):其最小码距为8,码率为1/2,能够纠正3个错码和检测4个错码。
2PSK 汉明码(7, 4) t=1 汉明码(31, 26) t=1 扩展戈莱码(24, 12) t=3 Pe BCH码(127, 64) t=10 Eb / n0 (dB) • 几种二进制分组码的性能比较
10.6.7 RS码 • RS码:是q进制BCH码的一个特殊子类,并且具有很强的纠错能力。 • RS码的参数:码长n = q – 1,监督位数目r = 2t,其中t是能够纠正的错码数目;其生成多项式为 g(x) = (x + )(x +2) … (x +2t) 式中,为伽罗华域GF(2m)中的本原元。 • RS码的主要优点: • 它是多进制纠错编码,所以特别适合用于多进制调制的场合; • 它能够纠正t个q位二进制错码,即能够纠正不超过q个连续的二进制错码,所以适合在衰落信道中纠正突发性错码。