70
1 第第第 第第第第第第第第第 第第第 第第第第第第第第第 10.1 10.1 第第 第第 第第第第 第第 第第第第 第第第第第 第第 第第第第第第第 第第第第第第第第第 :,。 第第第第 第第第第第第第第第第 第第第第第第第第 :一。 第第第第第第第 第第第第第第第第第第第 第第第第第第第第第第第第 第第第第 第第第第第第第第第第第 第第第第第第第 第第第第 第第第第第第第 第第第第第第第第第第第 :, 第第第第 第第第第第第第第第 第第第第第第第第第第第第第 :,。 第第第第

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

  • Upload
    tyne

  • View
    175

  • Download
    0

Embed Size (px)

DESCRIPTION

第十章 信道编码和差错控制. 10.1 概述 信道编码: 目的:提高信号传输的可靠性。 方法:增加多余比特,以发现或纠正错误。 差错控制:包括信道编码在内的一切纠正错误手段。 产生错码的原因: 乘性干扰引起的码间串扰 加性干扰引起的信噪比降低 信道分类:按照加性干扰造成错码的统计特性不同划分 随机信道:错码随机出现,例如由白噪声引起的错码 突发信道:错码相对集中出现,例如由脉冲干扰引起的错码。 混合信道. 差错控制技术的种类: 检错重发: 能发现错码,但是不能确定错码的位置。 通信系统需要有双向信道。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第十章 信道编码和差错控制

1

第十章 信道编码和差错控制第十章 信道编码和差错控制10.110.1 概述概述

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

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

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

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

码。 混合信道

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

2

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

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

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

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

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

影响应用之处。

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

3

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

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

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

4

自动要求重发 (ARQ) 系统 停止等待 ARQ 系统

拉后 ARQ 系统 停 止 等 待 ARQ 系统

接收数据ACK ACK NAK ACK ACK NAK ACK

1 2 3 3 4 5 5t

发送数据

1 2 3 3 4 5 5 6t

有错码组 有错码组

拉后 ARQ 系统

21 43 65 7 98接收数据

有错码组 有错码组

910 11 10 11 125 76

ACK1 NAK5 NAK9ACK5

5 76 9521 43 6 7 98发送数据 10 11 10 11 12

重发码组 重发码组

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

5

选择重发 ARQ 系统

ARQ 和前向纠错比较:优点

监督码元较少,即码率较高 检错的计算复杂度较低 能适应不同特性的信道

缺点 需要双向信道。 不适用于一点到多点的通信系统或广播系统。 传输效率降低,可能因反复重发而造成事实上的通

信中断。

选择重发 ARQ 系统

9接收数据

有错码组 有错码组

21 43 65 7 5 98 10 11 13 1412

发送数据 9 95 8521 43 6 7 10 11 13 1412

重发码组 重发码组

NAK9ACK1 NAK5 ACK5 ACK9

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

6

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

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

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

这时,若一个码组中发生错码,则将收到错误信息。 若在此 8 种码组中仅允许使用 4 种来传送天气,例如:令

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

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

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

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

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

7

分组码概念 分组码 = 信息位 + 监督位 分组码符号: (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 8: 第十章 信道编码和差错控制

8

码距的几何意义:以 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 9: 第十章 信道编码和差错控制

9

一种编码的纠检错能力:决定于最小码距 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 10: 第十章 信道编码和差错控制

10

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

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

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

以降低系统的总误码率。

A B

1

tt 汉明距离e

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

)(10 teted

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

11

10.3 10.3 纠错编码系统的性能纠错编码系统的性能10.3.1 误码率性能和带宽的关系

采用编码降低误码率所付出的代价是带宽的增大。

10-6

10-5

10-4

10-3

10-2

10-1

编码后

Eb/n0 (dB)

编码和误码率关系

Pe

C

D

E

A

B

2PSK

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

12

10.3.2 功率和带宽的关系

采用编码以节省功率,并保持误码率不变,付出的代价也是带宽增大。

10-6

10-5

10-4

10-3

10-2

10-1

编码后

Eb/n0 (dB)

编码和误码率关系

Pe

C

D

E

A

B

2PSK

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

13

10.3.3 传输速率和带宽的关系对于给定的传输系统,其传输速率和 Eb/n0 的关系:

式中, RB - 码元速率。

提高传输速率,采用编码以保持误码率不变;付出的代价仍是带宽增大。

B

sssb

Rn

P

Tn

P

n

TP

n

E

0000 )/1(

10-6

10-5

10-4

10-3

10-2

10-1

编码后

Eb/n0 (dB)

编码和误码率关系

Pe

C

D

E

A

B

2PSK

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

14

10.3.4 编码增益定义:在保持误码率恒定条件下,采用纠错编码所节省的信

噪比 Eb/n0 称为编码增益:

式中, (Eb/n0)u - 未编码时的信噪比 (dB); (Eb/n0)c - 编码后所需的信噪比 (dB) 。

)(// 00 dBnEnEG cbubdB

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

15

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

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

0021 aaa nn

1021 aaa nn

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

16

检错能力 - 能够检测奇数个错码。 设:码组长度为 n ,

码组中各个错码的发生是独立的和等概率的, 则在一个码组中出现 j 个错码的概率为

式中,— 为在 n 个码元中有 j 个错码的

组合数。

奇偶监督码不能检测码组中出现的偶数个错码,所以在一个码组中有错码而不能检测的概率等于 :

- 当 n 为偶数时

- 当 n 为奇数时

jnjnj ppCnjP )1(),(

)!(!

!

jnj

nC n

j

2/

1

222 )1(

n

j

jnjnju ppCP

2/)1(

1

222 )1(

n

j

jnjnju ppCP

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

17

[ 例 ] 右表中的编码是偶数监督码。设信道的误码率为 10-4 ,错码的出现是独立的。试计算其不能检测的误码率。

将给定条件代入式

计算得出

由计算结果可见,此编码可以将误码率从 10-4 降低到 10-8

量级。效果非常明显。

信息位 监督位

晴 00 0

云 01 1

阴 10 1

雨 11 0

2/

1

222 )1(

n

j

jnjnju ppCP

824432422

0444

2242

2

1

24242

10666126)1(6

)1()1()1(

pppppppp

ppCppCppCPj

jjju

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

18

11na 1

2na11a 1

0a

21na 2

2na21a 2

0a

mna 1

mna 2

ma1ma0

1nc 2nc 1c 0c

10.4.2 二维奇偶监督码 码率等于

有可能检测偶数个错码 适合检测突发错码 能够纠正部分错码

… …

… …

… … … … … … … … … …

… …

… …

nm

nm

n

k

)1(

)1(

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

19

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

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

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

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

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

监督关系式:

0021 aaa nn

021 aaaS nn

021 aaaS nn

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

20

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

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

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

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

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

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

021 aaaS nn

1212 rkn rr 或

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

21

汉明码 例:要求设计一个能够纠正 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 22: 第十章 信道编码和差错控制

22

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

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

按照上式计算结果为

0

0

0

0346

1356

2456

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 23: 第十章 信道编码和差错控制

23

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

计算出校正子 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 24: 第十章 信道编码和差错控制

24

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

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

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

10 ed

120 td

12

12

r

r r

n

k

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

25

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

可以改写为

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

0

0

0

0346

1356

2456

aaaa

aaaa

aaaa

01001101

00101011

00010111

0123456

0123456

0123456

aaaaaaa

aaaaaaa

aaaaaaa

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

26

监督矩阵

上式可以写成矩阵形式:

(模 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

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

27

HAT = 0T

式中,- 称为监督矩阵

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

-典型监督矩阵

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

1011001

1101010

1110100

H

rPIH

0011011

0101101

1001110

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

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

28

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 29: 第十章 信道编码和差错控制

29

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

- 生成矩阵

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

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

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

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

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

0110001

1010010

1100100

1111000

QG kI

G34560123456 aaaaaaaaaaaA

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

30

错误图样设:发送码组 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 31: 第十章 信道编码和差错控制

31

校正子矩阵 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 32: 第十章 信道编码和差错控制

32

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 33: 第十章 信道编码和差错控制

33

10.6 10.6 循环码循环码10.6.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 34: 第十章 信道编码和差错控制

34

一般情况 若 (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

1

1010011)(256

23456

xxx

xxxxxxxT

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

35

10.6.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 ,

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

36

码多项式的按模运算 若任意一个多项式 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 37: 第十章 信道编码和差错控制

37

循环码的数学表示法 在循环码中,设 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 38: 第十章 信道编码和差错控制

38

循环码的生成 有了生成矩阵 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 39: 第十章 信道编码和差错控制

39

在循环码中除全“ 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 40: 第十章 信道编码和差错控制

40

因此,循环码的生成矩阵 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 41: 第十章 信道编码和差错控制

41

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

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

42

寻求码生成多项式 因为任意一个循环码 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 43: 第十章 信道编码和差错控制

43

将 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 44: 第十章 信道编码和差错控制

44

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

)(

)()(

)(

)(

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 45: 第十章 信道编码和差错控制

45

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

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

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

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

46

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

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

47

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

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

1721233341

912122221

22324

7271663534351456647133

47656573

24534046

5244

43073357107613543000671717773537

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

48

常用 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 49: 第十章 信道编码和差错控制

49

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

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

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

BCH 码 (127, 64) t=10

Eb / n0 (dB)

Pe

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

50

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 个连续的二进制错码,所以适合在衰落信道中纠正突发性错码。

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

51

10.7 卷积码 卷积码的特点:

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

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

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

52

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

编码输出

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

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

… … … …

1 2 n

Nk 级移存器

n 个模 2加法器

每输入 k 比特旋转 1 周

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

53

卷积码编码器的实例方框图: (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 54: 第十章 信道编码和差错控制

54

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

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

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

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

55

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

状态图

前一状态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

1 2 3

b3b1输入 b2

编码输出c2

c1

c3

a

b

c

d

000111

101110

010011

100 001

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

56

(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 57: 第十章 信道编码和差错控制

57

维特比算法 基本原理:将接收到的序列和所有可能的发送序列作比较,

选择其中汉明距离最小的序列当作是现在的发送序列 例:设卷积码为 (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 58: 第十章 信道编码和差错控制

58

解码第 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 59: 第十章 信道编码和差错控制

59

将这 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 60: 第十章 信道编码和差错控制

60

解码第 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 61: 第十章 信道编码和差错控制

61

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

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

a

b

c

d

011

010 010

101

001

a

b

c

d

111

100100

110110

Page 62: 第十章 信道编码和差错控制

62

在编码时,信息位后面加了 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 63: 第十章 信道编码和差错控制

63

若已知这 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 64: 第十章 信道编码和差错控制

64

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

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

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

Page 65: 第十章 信道编码和差错控制

65

10.8 Turbo10.8 Turbo 码码 基本原理:

复合编码:将两种或多种简单的编码组合成复合编码。链接码:链接码是复合编码的一种,它包括一个内(部)

码和一个外(部)码,如下图所示:

内码是二进制分组码或卷积码,而典型的外码则是多进制的 RS 码。

Turbo 码:是一种特殊的链接码。它在两个并联或串联的编码器之间增加一个交织器,使之具有很大的码组长度和在低信噪比条件下得到接近理想的性能。

内编码器(n, k)

调制器

解制器

内解码器(n, k)

外解码器(N, K)

外编码器(N, K)输

入输出

Page 66: 第十章 信道编码和差错控制

66

Turbo 码的基本结构 编码器:由一对递归系统卷积码( RSCC ) 编码器和一个交织器组成。输入信息位是 bi , 输出是 bic1ic2i ,故码率等于 1/3 。

RSCC 编码器:和前面讨论的卷积码编码器之间的主要区别是从移存器输出到信息位输入端之间有反馈路径:

上图为码率等于 1/2 的 RSCC 编码器

RSCC

交织器 RSCC

bi

bi

c1i

c2i

D Dbi

bi

ci

Page 67: 第十章 信道编码和差错控制

67

交织器:基本形式是矩阵交织器。交织目的:将集中出现的突发错码分散,变成随机错码交织原理:

交织器由容量为 (n-1)m 比特的存储器构成。 码元按行的方向输入存储器,再按列的方向输出。

a11

a12

a1m

a21

a22

a2m

an1

an2

anm

Page 68: 第十章 信道编码和差错控制

68

卷积交织器举例

x

x

x1

234

xx x

1

2

3

4

x x x 1

xx x

1 x xx x x x

(a) 第 1~4 比特输入时的状态

x

x

25

678

34 x

5

6

7

8

x x 2 5

x2 x

5 1 xx x x x

(b) 第 5~8 比特输入时的状态

x

3

69

36 2

9 5 1x x x x

9

10

11

12

10

11

12

7

8 4

x 3 6 9

(c) 第 9~12 比特输入时的状态

1013

76

9 54 3 2 1 14

15

16

1112 8

13

14

15

16 4

7

1013

4 7 10 13

(d) 第 13~16 比特输入时的状态

交织器 解交织器

Page 69: 第十章 信道编码和差错控制

69

卷积交织法优点:延迟时间短和需要的存储容量小。端到端的总延迟时间和两端所需的总存储容量均为 k(N

+1)N 个码元,是矩阵交织法的一半。 Turbo 码的性能:

由此曲线可以看到,交织器容量大时误码率低,这是因为交织范围大可以使交织器输入码元得到更好的随机化。

信噪比 (dB)

20

解码后的误码率

交织器容量 100

10-1

10-2

10-3

10-4

10-5

10-6

10-7

Page 70: 第十章 信道编码和差错控制

70

10.9 10.9 小结小结