Top Banner
1 第第第 第第第第第第第第第 第第第 第第第第第第第第第 9.1 9.1 第第 第第 第第第第 第第 第第第第 第第第第第 第第 第第第第第第第 第第第第第第第第第 :,。 第第第第 第第第第第第第第第第 第第第第第第第第 :一。 第第第第第第第 第第第第第第第第第第第 第第第第第第第第第第第第 第第第第 第第第第第第第第第第第 第第第第第第第 第第第第 第第第第第第第 第第第第第第第第第第第 :, 第第第第 第第第第第第第第第 第第第第第第第第第第第第第 :,。 第第第第
57

第九章 信道编码和差错控制

Jan 21, 2016

Download

Documents

lottie

第九章 信道编码和差错控制. 9.1 概述 信道编码: 目的:提高信号传输的可靠性。 方法:增加多余比特,以发现或纠正错误。 差错控制:包括信道编码在内的一切纠正错误手段。 产生错码的原因: 乘性干扰引起的码间串扰 加性干扰引起的信噪比降低 信道分类:按照加性干扰造成错码的统计特性不同划分 随机信道:错码随机出现,例如由白噪声引起的错码 突发信道:错码相对集中出现,例如由脉冲干扰引起的错码。 混合信道. 差错控制技术的种类: 检错重发: 能发现错码,但是不能确定错码的位置。 通信系统需要有双向信道。 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 第九章 信道编码和差错控制

1

第九章 信道编码和差错控制第九章 信道编码和差错控制9.19.1 概述概述

信道编码: 目的:提高信号传输的可靠性。 方法:增加多余比特,以发现或纠正错误。

差错控制:包括信道编码在内的一切纠正错误手段。 产生错码的原因:

乘性干扰引起的码间串扰 加性干扰引起的信噪比降低

信道分类:按照加性干扰造成错码的统计特性不同划分 随机信道:错码随机出现,例如由白噪声引起的错码 突发信道:错码相对集中出现,例如由脉冲干扰引起的错

码。 混合信道

Page 2: 第九章 信道编码和差错控制

2

差错控制技术的种类: 检错重发:

能发现错码,但是不能确定错码的位置。通信系统需要有双向信道。

前向纠错 (FEC) :利用加入的差错控制码元,不但能够发现错码,还能纠正错码。

反馈校验:将收到的码元转发回发送端,将它和原发送码元比较。缺点:需要双向信道,传输效率也较低。

检错删除:在接收端发现错码后,立即将其删除。适用在发送码元中有大量多余度,删除部分接收码元不

影响应用之处。

Page 3: 第九章 信道编码和差错控制

3

编码序列的参数 n - 编码序列中总码元数量 k - 编码序列中信息码元数量 r - 编码序列中差错控制码元数量

(差错控制码元,以后称为监督码元或监督位 ) k/n - 码率 (n - k) / k = r / k - 冗余度

Page 4: 第九章 信道编码和差错控制

4

9.2 9.2 纠错编码的基本原理纠错编码的基本原理 分组码举例

设:有一种由 3 个二进制码元构成的编码,它共有 23 = 8种 不同的可能码组:

000 – 晴 001 – 云 010 – 阴 011 – 雨100 – 雪 101 – 霜 110 – 雾 111 – 雹

这时,若一个码组中发生错码,则将收到错误信息。

若在此 8 种码组中仅允许使用 4 种来传送天气,例如:令000 – 晴 011 – 云 101 – 阴 110 – 雨

为许用码组,其他 4 种不允许使用,称为禁用码组。 这时,接收端有可能发现(检测到)码组中的一个错

码。这种编码只能检测错码,不能纠正错码。

若规定只许用两个码组:例如000 – 晴 111 – 雨

就能检测两个以下错码,或纠正一个错码。

Page 5: 第九章 信道编码和差错控制

5

分组码概念 分组码 = 信息位 + 监督位 分组码符号: (n, k)

其中, n - 码组总长度, k - 信息码元数目。

r = n – k - 监督码元数目。右表中的码组为 (3, 2) 码。

分组码的一般结构:

分组码的参数:码重:码组内“ 1” 的个数码距:两码组中对应位取值不同的位数,又称汉明距离 最小码距 (d0) :各码组间的最小距离

信息位 监督位

晴 00 0

云 01 1

阴 10 1

雨 11 0

k 个信息位 r 个监督位an-1 an-2

... ar ar-1 an-2... a0 t

码长 n = k + r

分组码的结构

Page 6: 第九章 信道编码和差错控制

6

码距的几何意义:以 n = 3 的编码为例

一般而言,码距是 n 维空间中单位正多面体顶点之间的汉明距离。

(0,0,0)

(0,0,1)

(1,0,1)

(1,0,0)

(1,1,0)

(0,1,0)

(0,1,1) (1,1,1

)

a2

a0

a1

Page 7: 第九章 信道编码和差错控制

7

一种编码的纠检错能力:决定于最小码距 d0 的值。 为了能检测 e 个错码,要求最小码距

为了能纠正 t 个错码,要求最小码距

10 ed

0 1 2 3BA 汉明距离

ed0

码距等于 3 的两个码组

120 td

B

t

A 汉明距离0 1 2 3 4 5

t

d0

码距等于 5 的两个码组

Page 8: 第九章 信道编码和差错控制

8

为了能纠正 t 个错码,同时检测 e 个错码,要求最小码距

纠检结合工作方式: 当错码数量少时,系统按前向纠错方式工作,以节

省重发时间,提高传输效率; 当错码数量多时,系统按反馈重发的纠错方式工作,

以降低系统的总误码率。

为了能纠正 t 个错码,同时检测 e 个错码,要求最小码距

纠检结合工作方式: 当错码数量少时,系统按前向纠错方式工作,以节

省重发时间,提高传输效率; 当错码数量多时,系统按反馈重发的纠错方式工作,

以降低系统的总误码率。

A B

1

tt 汉明距离e

码距等于 (e+t+1) 的两个码组

)(10 teted

Page 9: 第九章 信道编码和差错控制

9

9.3 9.3 常用简单编码常用简单编码9.3.1 一维奇偶监督码 奇偶监督码 - 分为奇数监督码和偶数监督码两类。 在奇偶监督码中,监督位只有 1 位,故码率等于 k/(k+1) 。 偶数监督码中,此监督位使码组中“ 1” 的个数为偶数:

式中, a0 为监督位,其他位为信息位。 奇数监督码中,此监督位使码组中“ 1” 的个数为奇数:

检错能力 - 能够检测奇数个错码。

9.3 9.3 常用简单编码常用简单编码9.3.1 一维奇偶监督码 奇偶监督码 - 分为奇数监督码和偶数监督码两类。 在奇偶监督码中,监督位只有 1 位,故码率等于 k/(k+1) 。 偶数监督码中,此监督位使码组中“ 1” 的个数为偶数:

式中, a0 为监督位,其他位为信息位。 奇数监督码中,此监督位使码组中“ 1” 的个数为奇数:

检错能力 - 能够检测奇数个错码。

0021 aaa nn

1021 aaa nn

Page 10: 第九章 信道编码和差错控制

10

11na 1

2na11a 1

0a

21na 2

2na21a 2

0a

mna 1

mna 2

ma1ma0

1nc 2nc 1c 0c

9.3.2 二维奇偶监督码 有可能检测偶数个错码 适合检测突发错码 能够纠正部分错码

… …

… …

… … … … … … … … … …

… …

… …

Page 11: 第九章 信道编码和差错控制

11

9.3.3 恒比码 在恒比码中,每个码组中均含有相同数目的“ 1”( 和“ 0”) 。

在检测时,只要计算码组中“ 1” 的数目是否对,就知道有无错误。

我国电传机传输汉字电码广泛采用五单位数字保护电码,是一种 5 中取 3 的恒比码。包括 10 个许用码组, 22 个禁用码组,多余度较高。

国际 ARQ电报通信中应用的是 7 中取 3 码。包括 32 个许用码组。

恒比码能检测出单个和奇数个错误,还能部分检测出偶数个错误。

恒比码的主要优点是简单和适合传输电传机或其他键盘设备产生的字母和符号,对于信源的二进制随机数字序列则不适合。

Page 12: 第九章 信道编码和差错控制

12

9.3.3 正反码 正反码是一种简单的能够纠正错码的编码。其中监督位数目与信息位数目相同,监督码元与信息码元相同或相反,则由信息码中“ 1” 的个数决定。以电报中常用的 5 单位电码为例:码长 n = 10 ,信息位 k = 5 ,监督位 r = 5 。编码规则:( 1 )信息位中有奇数个“ 1” 时,监督位与信息位相同;( 2 )信息位中有偶数个“ 1” 时,监督位与信息位相反。解码方法:信息位 监督位→得到 5 位合成码→( 1 )合成码就是校验码(信息位中有奇数个“ 1” ) ( 2 )合成码的反码就是校验码(信息位中有偶数个“ 1” )然后,根据校验码中“ 1” 的个数,按 P287 ,表 9-3 进行判决、纠正可能的错码。

Page 13: 第九章 信道编码和差错控制

13

9.4 9.4 线性分组码线性分组码 基本概念

代数码 - 利用代数关系式产生监督位的编码线性分组码 - 代数码的一种,其

监督位和信息位的关系由线性代数方程决定

汉明码 - 一种能够纠正一个错码的线性分组码 校正子:

在偶数监督码中,计算实际上就是计算并检验 S 是否等于 0 。S 称为校正子。

监督关系式:

0021 aaa nn

021 aaaS nn

021 aaaS nn

Page 14: 第九章 信道编码和差错控制

14

纠错基本原理 中, S 只有两种取值,故只能表示

有错和无错,而不能进一步指明错码的位置。 若此码组长度增加一位,则能增加一个监督关系式。这样,

就能得到两个校正子。两个校正子的可能取值有 4 种组合,即 00 , 01 , 10 , 11 ,故能表示 4 种不同的信息。若用其中一种组合表示无错码,则还有其他 3 种组合可以用于指明一个错码的 3 种不同位置。 从而可以有纠错能力。

一般而言,若有 r 个监督关系式,则 r 个校正子可以指明一个错码的 (2r – 1) 个不同位置。

当校正子可以指明的错码位置数目等于或大于码组长度 n

时,才能够纠正码组中任何一个位置上的错码,即要求

021 aaaS nn

1212 rkn rr 或 1212 rkn rr 或

Page 15: 第九章 信道编码和差错控制

15

汉明码 例:要求设计一个能够纠正 1 个错码的分组码 (n, k) ,给

定的码组中有 4 个信息位,即 k = 4 。 由

这时要求监督位数 r 3 。若取 r = 3 ,则 n = k + r = 7 。现在用 a6 a5 a4 a3 a2 a1 a0 表示这 7 个码元,用 S1 S2 S3 表示校正子,则这 3 个校正子恰好能够指明 23 – 1 = 7 个错码的位置。

若规定校正子和错码位置的关系如下表,则仅当在 a6 a5 a4 a2 位置上有错码时,校正子 S1 的值才等于 1 ;否则 S

1 的值为零。这就意味着 a6 a5 a4 a2四个码元构成偶数监督关系:

同理,有

S1 S2 S3 错码位置 S1 S2 S3 错码位置

001 a0 101 a4

010 a1 110 a5

100 a2 111 a6

011 a3 000 无错码

1212 rkn rr 或

24561 aaaaS

13562 aaaaS

03463 aaaaS

Page 16: 第九章 信道编码和差错控制

16

在编码时,信息位 a6 a5 a4 a3 的值决定于输入信号,它们是随机的。监督位 a2 a1 a0 是按监督关系确定的,应该保证上列 3 式中的校正子等于 0 ,即有

给定信息位后,为了计算监督位,上式可以改写为

按照上式计算结果为

0

0

0

0346

1356

2456

aaaa

aaaa

aaaa

3460

3561

4562

aaaa

aaaa

aaaa

3460

3561

4562

aaaa

aaaa

aaaa

信息位a6 a5 a4 a3

监督位a2 a1 a0

信息位a6 a5 a4 a3

监督位a2 a1 a0

0000 000 1000 111

0001 011 1001 100

0010 101 1010 010

0011 110 1011 001

0100 110 1100 001

0101 101 1101 010

0110 011 1110 100

0111 000 1111 111

Page 17: 第九章 信道编码和差错控制

17

在接收端解码时,对于每个接收码组,先按式

计算出校正子 S1 , S2 和 S3 ,然后按照表

判断错码的位置。 例:若接收码组为 0000011 ,则按上三式计算得到: S1

= 0 , S2 = 1 , S3 = 1 。这样,由上表可知,错码位置在 a3 。

24561 aaaaS

13562 aaaaS

03463 aaaaS

S1 S2 S3 错码位置 S1 S2 S3 错码位置

001 a0 101 a4

010 a1 110 a5

100 a2 111 a6

011 a3 000 无错码

Page 18: 第九章 信道编码和差错控制

18

上例中的汉明码是 (7, 4) 码,其最小码距 d0 = 3 。由式

可知,此码能够检测 2 个错码,或纠正 1 个错码。 汉明码的码率:

当 r ( 或 n)很大时,上式趋近于 1 。所以汉明码是一种高效编码。

10 ed

120 td

12

12

r

r r

n

k

Page 19: 第九章 信道编码和差错控制

19

分组码的一般原理线性分组码的监督位和信息位的关系

可以改写为

上式中,已经将“”简写成“ +” 。

0

0

0

0346

1356

2456

aaaa

aaaa

aaaa

0

0

0

0346

1356

2456

aaaa

aaaa

aaaa

01001101

00101011

00010111

0123456

0123456

0123456

aaaaaaa

aaaaaaa

aaaaaaa

01001101

00101011

00010111

0123456

0123456

0123456

aaaaaaa

aaaaaaa

aaaaaaa

Page 20: 第九章 信道编码和差错控制

20

监督矩阵

上式可以写成矩阵形式:

(模 2 )

将上式简写为HAT = 0T 或   AHT = 0

01001101

00101011

00010111

0123456

0123456

0123456

aaaaaaa

aaaaaaa

aaaaaaa

0

0

0

1011001

1101010

1110100

0

1

2

3

4

5

6

a

a

a

a

a

a

a

0

0

0

1011001

1101010

1110100

0

1

2

3

4

5

6

a

a

a

a

a

a

a

Page 21: 第九章 信道编码和差错控制

21

HAT = 0T

式中,- 称为监督矩阵

监督矩阵的性质监督矩阵 H 确定码组中的信息位和监督位的关系。H 的行数就是监督关系式的数目,即监督位数 r 。H 的每行中“ 1” 的位置表示相应的码元参与监督关系。 H 可以分成两部分,例如

-典型监督矩阵

式中, P 为 r k阶矩阵, Ir 为 r r 阶单位方阵。

1011001

1101010

1110100

H

rPIH

0011011

0101101

1001110

rPIH

0011011

0101101

1001110

A = [a6 a5 a4 a3 a2 a1 a0] 0 = [000] A = [a6 a5 a4 a3 a2 a1 a0] 0 = [000]

Page 22: 第九章 信道编码和差错控制

22

H 矩阵的各行应该是线性无关的,否则将得不到 r 个线性无关的监督关系式。

若一个矩阵能写成典型阵形式 [P Ir] ,则其各行一定是线性无关的。

生成矩阵例:

可以写为

上式两端分别转置后,可以变成

式中, Q 为 k r 阶矩阵,是 P 的转置,即 Q = PT

3

4

5

6

0

1

2

1011

1101

1110

a

a

a

a

a

a

a

3460

3561

4562

aaaa

aaaa

aaaa

Q34563456012

011

101

110

111

aaaaaaaaaaa

Page 23: 第九章 信道编码和差错控制

23

将 Q 的左边加上一个 k阶单位方阵,称为生成矩阵:

- 生成矩阵

G 称为生成矩阵,因为可以用它产生整个码组 A ,即有

生成矩阵的性质 具有 [IkQ] 形式的生成矩阵称为典型生成矩阵。 由典型生成矩阵得出的码组 A 中,信息位的位置不

变,监督位附加于其后。这种形式的码组称为系统码。

矩阵 G 的各行也必须是线性无关的。 如果已有 k 个线性无关的码组,则可以将其用来作

为生成矩阵 G ,并由它生成其余码组。

将 Q 的左边加上一个 k阶单位方阵,称为生成矩阵:

- 生成矩阵

G 称为生成矩阵,因为可以用它产生整个码组 A ,即有

生成矩阵的性质 具有 [IkQ] 形式的生成矩阵称为典型生成矩阵。 由典型生成矩阵得出的码组 A 中,信息位的位置不

变,监督位附加于其后。这种形式的码组称为系统码。

矩阵 G 的各行也必须是线性无关的。 如果已有 k 个线性无关的码组,则可以将其用来作

为生成矩阵 G ,并由它生成其余码组。

0110001

1010010

1100100

1111000

QG kI

G34560123456 aaaaaaaaaaaA G34560123456 aaaaaaaaaaaA

Page 24: 第九章 信道编码和差错控制

24

错误图样设:发送码组 A 是一个 n 列的行矩阵:

接收码组是一个 n 列的行矩阵 B :

令接收码组和发送码组之差为

E 就是错码的行矩阵 -称为错误图样

式中, (i = 0, 1, …, n-

1)

若 ei = 0 ,表示该码元未错;若 ei = 1 ,表示该码元为错码。

0121 aaaaA nn

0121 bbbbB nn

B – A = E ( 模2)

0121 eeeeE nn

ii

iii ab

abe

当当

,1

,0

Page 25: 第九章 信道编码和差错控制

25

校正子矩阵 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

Page 26: 第九章 信道编码和差错控制

26

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” 码组外)。

Page 27: 第九章 信道编码和差错控制

27

9.5 9.5 循环码循环码9.5.1 循环码的概念: 循环性是指任一码组循环一位后仍然是该编码中的一个码组。 例:一种 (7, 3)循环码的全部码组如下

表中第 2 码组向右移一位即得到第 5 码组;第 5 码组向右移一位即得到第 7 码组。

码组编号

信息位 监督位 码组编号

信息位 监督位

A6a5a4 a3a2a1a0 a6a5a4 A3a2a1a0

1 000 0000 5 100 1011

2 001 0111 6 101 1100

3 010 1110 7 110 0101

4 011 1001 8 111 0010

Page 28: 第九章 信道编码和差错控制

28

一般情况 若 (an-1 an-2 …a0) 是循环码的一个码组,则循环移位后的码组: (an-2 an-3 … a0 an-1)

(an-3 an-4 … an-1 an-2)

… … (a0 an-1 …a2 a1)

仍然是该编码中的码组。 多项式表示法

一个长度为 n 的码组 (an-1 an-2 …a0) 可以表示成

上式中 x 的值没有任何意义,仅用它的幂代表码元的位置。例:码组 1 1 0 0 1 0 1 可以表示为

012

21

1)( axaxaxaxT nn

nn

012

21

1)( axaxaxaxT nn

nn

1

1010011)(256

23456

xxx

xxxxxxxT

1

1010011)(256

23456

xxx

xxxxxxxT

Page 29: 第九章 信道编码和差错控制

29

9.5.2 循环码的运算 整数的按模运算

在整数运算中,有模 n运算。例如,在模 2运算中,有1 + 1 = 2 0 (模 2) , 1 + 2 = 3 1 (模 2) , 2

3 = 6 0 (模 2)

等等。 一般说来,若一个整数 m 可以表示为

式中, Q 为整数,则在模 n运算下,有m p (模 n)

所以,在模 n运算下,一个整数 m等于它被 n 除得的余数。

npn

pQ

n

m , np

n

pQ

n

m ,

Page 30: 第九章 信道编码和差错控制

30

码多项式的按模运算 若任意一个多项式 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运算中加法和减法一样。

)()()()( xRxQxNxF

)(模 )()()( xNxRxF

)(模 )1(1 33 xx

)(模 )1(11 3224 xxxxx

Page 31: 第九章 信道编码和差错控制

31

循环码的数学表示法 在循环码中,设 T(x) 是一个长度为 n 的码组,若

则 T (x) 也是该编码中的一个码组。 [证 ] 设一循环码为

则有

上式中的 T (x) 正是码组 T (x) 向左循环移位 i 次的结果。例: 一循环码为 1100101 ,即 若给定 i = 3 ,则有

上式对应的码组为 0101110 ,它正是 T(x) 向左移 3 位的结果。结论:一个长为 n 的循环码必定为按模 (xn + 1)运算的一个余式。

)(模 )1()()( ni xxTxTx

012

21

1)( axaxaxaxT nn

nn

)(

)(1

102

21

1

01

11

12

21

1

xTaxaxaxaxa

xaxaxaxaxaxTx

ini

nin

inn

in

iinin

inn

inn

i

1)( 256 xxxxT

)(模 )1()( 723535893 xxxxxxxxxxTx

Page 32: 第九章 信道编码和差错控制

32

循环码的生成 有了生成矩阵 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 。

G34560123456 aaaaaaaaaaaA

0110001

1010010

1100100

1111000

QG kI

Page 33: 第九章 信道编码和差错控制

33

在循环码中除全“ 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)循环码就被确定了。

Page 34: 第九章 信道编码和差错控制

34

因此,循环码的生成矩阵 G 可以写成

例:

上表中的编码为 (7, 3)循环码, n = 7, k = 3, n – k = 4 ,其中唯一的一个 (n – k) = 4次码多项式代表的码组是第二码组 0010111 ,与它对应的码多项式,即生成多项式,为

g(x) = x4 + x2 + x + 1 。

)(

)(

)(

)(

)(

2

1

xg

xxg

xgx

xgx

x

k

k

G

码组编号 信息位 监督位 码组编号 信息位 监督位A6a5a4 a3a2a1a0 a6a5a4 A3a2a1a0

1 000 0000 5 100 1011

2 001 0111 6 101 1100

3 010 1110 7 110 0101

4 011 1001 8 111 0010

Page 35: 第九章 信道编码和差错控制

35

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)都是码多项式。

)(

)(

)(

)(

2

xg

xxg

xgx

xG

0010111

0101110

1011100

)(xG

)()(

)()()(

)(

)(

)(

][)(][)(

452

6

452

6

2

456456

xgaxaxa

xgaxxgaxgxa

xg

xxg

xgx

aaaxaaaxT

G

)()(

)()()(

)(

)(

)(

][)(][)(

452

6

452

6

2

456456

xgaxaxa

xgaxxgaxgxa

xg

xxg

xgx

aaaxaaaxT

G

Page 36: 第九章 信道编码和差错控制

36

寻求码生成多项式 因为任意一个循环码 T(x)都是 g(x) 的倍式,故它可以写

成T(x) = h(x)g(x)

而生成多项式 g(x) 本身也是一个码组,即有 T (x) = g(x)

由于码组 T (x) 是一个 (n – k)次多项式,故 xk T (x) 是一个 n次多项式。由

可知, xk T (x) 在模 (xn + 1)运算下也是一个码组,所以有

上式左端分子和分母都是 n次多项式,故相除的商式 Q(x) = 1 。因此,上式可以写成

)(模 )1()()( ni xxTxTx

1

)()(

1

)(

nn

k

x

xTxQ

x

xTx

)()1()( xTxxTx nk

Page 37: 第九章 信道编码和差错控制

37

将 T(x) = h(x)g(x) 和 T (x) = g(x) 代入

化简后,得到

上式表明,生成多项式 g(x) 应该是 (xn + 1) 的一个因子。例: (x7 + 1) 可以分解为

为了求出 (7, 3)循环码的生成多项式 g(x) ,需要从上式中找到一个 (n – k) = 4次的因子。这样的因子有两个,即

以上两式都可以作为生成多项式。 选用的生成多项式不同,产生出的循环码码组也不同。

)()1()( xTxxTx nk

)]()[(1 xhxxgx kn

)1)(1)(1(1 3237 xxxxxx

1)1)(1( 2423 xxxxxx

1)1)(1( 2343 xxxxxx

Page 38: 第九章 信道编码和差错控制

38

9.5.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

)(

)()(

)(

)(

xg

xrxQ

xg

xmx kn

1

1)1(

1)(

)(24

22

24

56

xxx

xxx

xxx

xx

xg

xmx kn

10111

101111

10111

1100000

Page 39: 第九章 信道编码和差错控制

39

9.5.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) 。

)(/)()()(/)( xgxrxQxgxR

)(/)()()(/)( xgxrxQxgxR

Page 40: 第九章 信道编码和差错控制

40

9.5.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)截短循环码。

Page 41: 第九章 信道编码和差错控制

41

9.5.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 为纠错能力。

n k t g(x) n k t g(x)

1721233341

912122221

22324

7271663534351456647133

47656573

24534046

5244

43073357107613543000671717773537

Page 42: 第九章 信道编码和差错控制

42

常用 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 个错码。

Page 43: 第九章 信道编码和差错控制

43

几种二进制分组码的性能比较

2PSK汉明码 (7, 4) t=1

汉明码 (31, 26) t=1扩展戈莱码 (24, 12) t=3

BCH 码 (127, 64) t=10

Eb / n0 (dB)

Pe

Page 44: 第九章 信道编码和差错控制

44

9.6 卷积码 卷积码的特点:

监督码元不仅和当前的 k 比特信息段有关,而且还同前面m = (N – 1) 个信息段有关。

将 N 称为码组的约束长度。 将卷积码记作 (n, k, m) ,其码率为 k/n 。

Page 45: 第九章 信道编码和差错控制

45

卷积码的编码 一般原理方框图

编码输出

每次输入k 比特 1 k… 1 k… 1 k… 1 k…… … …

1 … k … 2k 3k Nk… … … … …

… … … …

1 2 n

Nk 级移存器

n 个模 2加法器

每输入 k 比特旋转 1 周

Page 46: 第九章 信道编码和差错控制

46

卷积码编码器的实例方框图: (n, k, m) = ( 3, 1, 2 )

每当输入 1 比特时,此编码器输出 3 比特 c1c2 c3 :

编码器的工作状态

1 2 3b3b1

输入 b2

编码输出c2

c1

c3

3213

312

11

bbbc

bbc

bc

b1 1 1 0 1 0 0 0

b3b2 00 01 11 10 01 10 00

c1c2

c3

111 110 010 100 001 011 000

状态 a b d c b c a

Page 47: 第九章 信道编码和差错控制

47

000

111

001

110

011

100

010

101

000

111

001

110

011

100

010

101

c1c2c3

000

100

111

011

001

101

110

010

c1c2c3

111

000

001

110

c1c2c3

信息位 1 1 0 1

b

a

起点信息位

000

111

c1c2c3

abcd

abcd

abcd

abcd

上半部

下半部

1

0

a

状态 b3b2 a 0 0 b 0 1 c 1 0 d 1 1

a

b

c

d

a

b

c

d

c

d

a

b↑0

↓1

↓1

↑0

↑0

↓1

9.6.2 卷积码的解码 码树搜索法: (3, 1, 2)卷积码的码树图

此法不实用:因为随信息位增多,分支数目按指数规律增长

Page 48: 第九章 信道编码和差错控制

48

状态图和网格图移存器状态和输入输出码元的关系

状态图

前一状态b3 b2

当前输入 b1

输出c1c2c3

下一状态b3 b2

a (00) 01

000111

a (00)b (01)

b (01) 01

001110

c (10)d (11)

c (10) 01

011100

a (00)b (01)

d (11) 01

010101

c (10)d (11)

3213

312

11

bbbc

bbc

bc

3213

312

11

bbbc

bbc

bc

1 2 3

b3b1输入 b2

编码输出c2

c1

c3

a

b

c

d

000111

101110

010011

100 001

Page 49: 第九章 信道编码和差错控制

49

(3, 1, 2)卷积码网格图网格图中的编码路径举例

输入信息位为 1101 时输出编码序列是:

111 110 010 100 011…

110 110 110 110

011 011 011

010 010 010

101 101 101

001 001 001 001

a

b

c

d

a

b

c

d

000 000 000 000 000111 111 111 111 111

100100100

a

b

c

d

000111

101110

010011

100 001

a

b

c

d

a

b

c

d

110 010

001

111

100

Page 50: 第九章 信道编码和差错控制

50

维特比算法 基本原理:将接收到的序列和所有可能的发送序列作比较,选择其中汉明距离最小的序列当作是现在的发送序列

例:设卷积码为 (n, k, m) = (3, 1, 2) 码 现在的发送信息位为 1101

为了使移存器中的信息位全部移出,在信息位后面加入了 3 个“ 0” ,即 1101000

编码后的发送序列: 111 110 010 100 001 011 000

接收序列: 111 010 010 110 001 011 000 ( 红色为错码 )

由于这是一个 (3, 1, 2)卷积码,发送序列的约束长度为 N =

m + 1 = 3 ,所以首先需考察 3 个信息段,即考察 3n = 9 比特,即接收序列前 9 位“ 111 010 010” 。

Page 51: 第九章 信道编码和差错控制

51

解码第 1步由网格图可见,沿路径每一级有 4 种状态 a, b, c 和 d 。每种状态只有两条路径可以到达。故 4 种状态共有 8条到达路径。

比较网格图中的这 8条路径和接收序列之间的汉明距离。例如,由出发点状态 a经过 3级路径后到达状态 a 的两条路径中上面一条为“ 000 000 000” 。它和接收序列“ 111 010 010” 的汉明距离等于 5 ;下面一条为“ 111

001 011”, 它和接收序列的汉明距离等于 3 。

110 110 110 110

011 011 011

010 010 010

101 101 101

001 001 001 001

a

b

c

d

a

b

c

d

000 000 000 000 000111 111 111 111 111

100100100

Page 52: 第九章 信道编码和差错控制

52

将这 8 个比较结果列表如下:

比较到达每个状态的两条路径的汉明距离,将距离小的一条路径保留,称为幸存路径。这样,就剩下 4条路径了,即表中第 2, 4, 6 和 8条路径。

序号

路径 对应序列 汉明距离 幸存否?

1 aaaa 000 000 000 5 否2 abca 111 001 011 3 是3 aaab 000 000 111 6 否4 abcb 111 001 100 4 是5 aabc 000 111 001 7 否6 abdc 111 110 010 1 是7 aabd 000 111 110 6 否8 abdd 111 110 101 4 是

Page 53: 第九章 信道编码和差错控制

53

解码第 2步:继续考察接收序列中的后继 3 个比特“ 110” 计算 4条幸存路径上增加 1级后的 8条可能路径的汉明

距离。计算结果列于下表中。

表中总距离最小为 2 ,其路径是 abdc+b ,相应序列为111 110 010 100 。它和发送序列相同,故对应发送信息位 1101 。

序号 路径 原幸存路径的距离

新增路径段

新增距离 总距离 幸存否?

1 abca+a 3 aa 2 5 否2 abdc+a 1 ca 2 3 是3 abca+b 3 ab 1 4 否4 abdc+b 1 cb 1 2 是5 abcb+c 4 bc 3 7 否6 abdd+c 4 dc 1 5 是7 abcb+d 4 bd 0 4 是8 abdd+d 4 dd 2 6 否

Page 54: 第九章 信道编码和差错控制

54

按照上表中的幸存路径画出的网格图示于下图中。

图中粗线路径是距汉明离最小(等于 2 )的路径。

a

b

c

d

011

010 010

101

001

a

b

c

d

111

100100

110110

Page 55: 第九章 信道编码和差错控制

55

在编码时,信息位后面加了 3 个“ 0” 。若把这 3 个“ 0”仍然看作是信息位,则可以按照上述算法继续解码。这样得到的幸存路径网格图示于下图中。图中的粗线仍然是汉明距离最小的路径。

110

011

010 010

101 101

001 001

a

b

c

d

a

b

c

d

000 111

100100

000

011 011001

101

Page 56: 第九章 信道编码和差错控制

56

若已知这 3 个码元是(为结尾而补充的)“ 0” ,则在解码时就预先知道在接收这 3 个“ 0” 码元后,路径必然应该回到状态 a 。而由图可见,

只有两条路径可以回到 a状态。所以,这时上图可以简化成:

110

011

010 010

101 101

001 001

a

b

c

d

a

b

c

d

000 111

100100

000

011 011001

110

011

010 010

101 101

001 001

a

b

c

d

a

b

c

d

000 111

100100

000

011 011001

101

Page 57: 第九章 信道编码和差错控制

57

在上例中卷积码的约束长度为 N = 3 ,需要存储和计算 8

条路径的参量。 由此可见,维特比算法的复杂度随约束长度 N 按指数形式

2N 增长。故维特比算法适合约束长度较小( N 10 )的编码。对于约束长度大的卷积码,可以采用其他解码算法,