第十章 卷积码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
本章重点: 本章重点: 1.卷积码的基本概念; 卷积码的基本概念; 卷积码的基本概念 2.维特比译码算法。 维特比译码算法。 维特比译码算法
3
10.1 卷积码的基本概念
卷积码是纠错码中的又一大类。由于分组码码字 中的n-k个校验元仅与本码字的k个信息元有关,与 其它码字无关,因此分组码的编译码是对各个码字 孤立地进行的。从信息论的观点看,这种做法必然 会损失一部份相关信息,而卷积码的出现使人们有 可能利用这部份相关信息。
0 L 0 L 1 L 0 L 1 L 0 L L L
G∞被称作(3,1,2)卷积码的生成矩阵 : 生成矩阵
111 = 010 111 001 010 111 000 001 010 111 000 000 001 010 111 L L L L L L L
4
10.1.1 卷积码概述
卷积码在编码不仅与本子码的k个信息 元有关,而且还与此前m个子码中的信息 元有关,因此卷积码的编码器需要有存储 m组信息元的记忆部件。
5
图10.1给出了一个二进制卷积码的编码器例子。 当输入信息元为mj时, D0、D1中分别存放着此前输 入的mj-1和mj-2, 经运算可得到两个校验元pj,1和pj, 2,即 pj,1=mj+mj-1 pj,2=mj+mj-2
式中 g∞=[g0 g1 g2 … gm 0 … ] (10-2)
称作基本生成矩阵。
13
下面举一个(3,2,1)卷积码的例子: 由n=3,k=2,m=1,可知该码的基本生成矩阵g∞形 式如下 g∞=[g0 g1 0 … ] 其中生成子矩阵g 0, g 1都是2×3阶矩阵,设
1 0 1 g0 = 0 1 0
18
10.2.2 极大似然译码
设输入至二进制(n,k,m)卷积码编码器的信息序列为 M =(m0,…,mi,…,mL-1,0,…,0) 经编码后,编码器输出的码序列为 C =(c 0,…,c i,…,c L+m-1) 若码序列C通过无记忆的 BSC信道传输,设译码器收 到的接收序列为 Y=(y0,…,y i,…,y L+m-1) =(c0,…,c i,…,cL+m-1)+(e0,…,ei,…,e L+m-1) 对于BSC信道,输入的码序列C经传输变成接收序列Y的条 件概率是 p(Y|C)=p(y 0|c 0) p(y 1|c 1)… p(yL+m-1|c L+m-1) 即 n ( L + m ) −1 L + m −1 p (Y | C ) = ∏ p ( y i | c i ) = ∏ p ( y j | c j ) (10-4)
g ∞ g 0 g1 g 2 L g m 0 0 L Dg 0 g g g L g 0 L 0 1 2 m G∞ = 2 ∞ = D g∞ 0 0 g0 g1 g2 L gm L (10-1) M M M M M M M M
10.2.1 状态图和网格图
在维特比译码算法中,可以利用状态图来描述卷积码的 编、译码过程。
16
以(3,1,2)卷积码为例。它有四种可能的状态(D0D1 ):00,01,10和11,分别用S0,S1,S2和S3表示。编码器的工 作过程可以通过各移存器的状态转移情况来描述,这就是如图 10.2所示的状态转移图,简称状态图。
M (Y C ) =
∑M(y c ) = ∑
i =0 i i j =0
信息元mj把cj,cj+1和cj+2 三个子码联系在一起,这 三个子码之间存在相关性。 用编码约束度N表示子码 之间的约束关系,显然N =m+1。
7
综上所述,一个(n,k,m)卷积码具有以下重要参数:
码长n,子码的信息元个数k,校验元个数n-k; 码率k/n,表示卷积码传输信息的有效性; 编码存贮m,表示信息组在编码器中的存贮周期; 编码约束度N,表示子码之间的约束程度。 编码约束长度NA=nN,表示相互约束的码元个数。
8
10.1.2 卷积码的矩阵描述
描述卷积码的方法很多,如矩阵方法、多项式方 法、状态图和网格图方法等。本节仅介绍矩阵方 法。 以图10.1给出的(3,1,2)卷积码编码器为例进行分析。设输 入的信息序列(m0,m1,m2,…,mi,…)是一个有头无尾的序列, 当编码器清零后开始工作时,输出得到的子码如下: c0=(m0,p0,1,p0,2) 其中 p0,1=m0, p0,2=m0 c 1=(m1,p1,1,p1,2) 其中 p1,1=m1+m0, p1,2=m1 c 2=(m2,p2,1,p2,2) 其中 p2,1=m2+m1, p2,2=m2+m0 c 3=(m3,p3,1,p3,2) 其中 p3,1=m3+m2, p3,2=m3+m1 c 4=(m4,p4,1,p4,2) 其中 p4,1=m4+m3, p4,2=m4+m2
G∞
11
仔细观察(3,1,2)卷积码的生成矩阵G∞可发现: (1)G∞中的每一行都是前一行右移右移3位的结果, 可以由矩阵的第一行完全确定。将第一行取出并表为 g∞=[ 111 010 001 000 000 … ] g∞ 称作基本生成矩阵。 (2)基本生成矩阵g∞ 只有前(等于该卷积码的编码约束 度N=m+1=3)数字有意义,以后各组数字全部为零。分 别用g 0,g 1,g 2表示各组,即g 0=[ 111 ], g 1=[ 010 ], g 2=[ 001 ],g 0,g 1,g 2 称作生成子矩阵。 (3)现在,G∞可表为
14
111 010 001 111 010 001 ] c =[1 0 1 1 0 1 0 1 0 0 L⋅ 111 010 001 111 010 001 O
计算得c=( 111 010 110 101 011 … )
当已知卷积码的生成矩阵G∞ 时,作c=mG∞运算即可实现编码。 如输入信息序列为m=(1011010100…)时,求(3,1,2)卷积码 的输出码字序列为
log p(Y C ) = d (Y , C ) ⋅ log pe + [n( L + m) − d (Y,C )] ⋅ log(1 − pe )
pe = d (Y , C ) ⋅ log + n( L + m) ⋅ log(1 − pe ) 1 − pe
(10-6)
20
在维特比译码中,码序列C的似然函数log p(Y︱C) 称为C的路径度量,以M(Y︱C)表示。而log p(yi︱ci)和log p(yj︱cj)分别称为分支度量和码元度量,分别以M(yi︱ci)和 M(yj︱cj)表示。由此可得 (10-7) n ( L + m ) −1 L + m −1
+
m1 m1 m1 m2 m1 + + m2 m2 m3 m2 m1 + + m3 m3 m3 m2 M + +
cT
c = [m0 m1 m2 m3 m4
即
c=mG∞
1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 L]⋅ 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 L L
……
9
令输出的码序列c=[m0 p0,1 p0,2 m1 p1,1 p1,2 m2 p2,1 p2,2 m3 p3,1 p3,2 m4 p4,1 p4,2 …] 表示成矩阵形式:
m 0 m 0 m 0 m 0 = m 0 1 1 1 0 1 0 0 0 = 1 0 0 0 m 4 0 m 4 0 m 4 0 M 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 M 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 M 1 1 1 0 1 0 M 0 0 0 1 1 1 M m0 m 1 m 2 ⋅ m 3 0 m 4 0 M 0 0 0 0 10 M
i=0 j=0
19
对式(10-4)两边取对数得
log p(Y C) =
L+m−1 i =0
∑log p( y c ) = ∑
i i j =0
n( L+m)−1
log p( y j c j ) (10-5)
式中:当yj ≠cj 时,p(yj︱cj) 就是BSC信道的误码率pe。 当接收端收到Y后,译码器的任务就是按照极大似然译码准 2 Y 则,在2 kL个码序列中找出一个与 Y最相似的,称为发送序列 ˆ ˆ C的估值序列 C 估值序列 。就是要找到使p(Y︱C)最大的 C 。称log p(Y︱C)为C序列的似然函数 似然函数。 似然函数 对于二进制对称信道(BSC),码序列C的似然函数可写成:
第十章 卷积码
1
第十章 卷积码
内容提要: 内容提要 差错控制系统中使用的纠错码, 差错控制系统中使用的纠错码,除前面已 学过的分组码之外,还广泛使用着卷积码。 学过的分组码之外,还广泛使用着卷积码。本 章首先介绍卷积码的基本概念, 章首先介绍卷积码的基本概念,重点论述卷积 码的定义及其矩阵描述。在此基础上,介绍一 码的定义及其矩阵描述。在此基础上, 种目前被广泛应用的概率译码算法:维特比( 种目前被广泛应用的概率译码算法:维特比( Viterbi)译码算法。 )译码算法。
图10.2 (3,1,2)卷积码状态转移图
17
状态图只反映了各状态之间的转移关系,却不能表示出状 态转移与时间的关系。为了表示状态转移与时间的关系,我们 以时间为横坐标轴,以状态为纵坐标轴,将一个平面划分成网 格状,得到了网格图 表示。在网格图中,以时钟周期作为时 间的计量单位,称为节点,用L表示,即在一个节点时间内完 成卷积码编码器一个信息组的输入及相应子码的输出。
图10.1 (3,1,2)卷积码编码器
6
在编码器输出端,由旋转开关实现并/串转换显然,cj中 的校验元pj,1和pj,2不仅与mj有关,同时还与mj-1和mj-2有 关,即与此前m=2个子码中的信息元有关。称m为编码存 编码存 贮,表示信息组在编码器中的存贮周期(时钟周期)。
编码器输出的每个子码, 信息位数k=1,码长n =3,码率k/n=1/3, 编码存贮m=2,表示为 (3,1,2)卷积码。
15
10.2 卷积码的概率译码
卷积码的译码可分为代数译码和概率译码两大类。卷 积码的代数译码方法完全依赖于码的代数结构。而概率译 码不仅根据码的代数结构,而且还利用了信道的统计特性, 因此能用增加译码约束长度来减少译码的错误概率。 本节介绍一种目前被广泛应用的概率译码算法:维特 比(Viterbi)译码算法。
0 0 1 g1 = 0 0 1
000 000 000 000 001 001 L L L L L L L L
则(3,2,1)卷积码的生成矩阵 3 2 1 001 000 101 010 001 000 101 001 G∞ = 010 001 101 010
g∞ g0 Dg 0 G∞ = 2 ∞ = D g∞ 0 M M g1 g0 0 M g2 g1 g0 M 0 g2 g1 M 0 L 0 L g2 L M
12
பைடு நூலகம்
上式中D是延时算子,表示一个时钟周期的延迟。
把以上对(3,1,2)卷积码的矩阵描述推广到一般。 对于任意一个(n,k,m)卷积码,其生成矩阵G∞ 是一个 半无限矩阵:
本章重点: 本章重点: 1.卷积码的基本概念; 卷积码的基本概念; 卷积码的基本概念 2.维特比译码算法。 维特比译码算法。 维特比译码算法
3
10.1 卷积码的基本概念
卷积码是纠错码中的又一大类。由于分组码码字 中的n-k个校验元仅与本码字的k个信息元有关,与 其它码字无关,因此分组码的编译码是对各个码字 孤立地进行的。从信息论的观点看,这种做法必然 会损失一部份相关信息,而卷积码的出现使人们有 可能利用这部份相关信息。
0 L 0 L 1 L 0 L 1 L 0 L L L
G∞被称作(3,1,2)卷积码的生成矩阵 : 生成矩阵
111 = 010 111 001 010 111 000 001 010 111 000 000 001 010 111 L L L L L L L
4
10.1.1 卷积码概述
卷积码在编码不仅与本子码的k个信息 元有关,而且还与此前m个子码中的信息 元有关,因此卷积码的编码器需要有存储 m组信息元的记忆部件。
5
图10.1给出了一个二进制卷积码的编码器例子。 当输入信息元为mj时, D0、D1中分别存放着此前输 入的mj-1和mj-2, 经运算可得到两个校验元pj,1和pj, 2,即 pj,1=mj+mj-1 pj,2=mj+mj-2
式中 g∞=[g0 g1 g2 … gm 0 … ] (10-2)
称作基本生成矩阵。
13
下面举一个(3,2,1)卷积码的例子: 由n=3,k=2,m=1,可知该码的基本生成矩阵g∞形 式如下 g∞=[g0 g1 0 … ] 其中生成子矩阵g 0, g 1都是2×3阶矩阵,设
1 0 1 g0 = 0 1 0
18
10.2.2 极大似然译码
设输入至二进制(n,k,m)卷积码编码器的信息序列为 M =(m0,…,mi,…,mL-1,0,…,0) 经编码后,编码器输出的码序列为 C =(c 0,…,c i,…,c L+m-1) 若码序列C通过无记忆的 BSC信道传输,设译码器收 到的接收序列为 Y=(y0,…,y i,…,y L+m-1) =(c0,…,c i,…,cL+m-1)+(e0,…,ei,…,e L+m-1) 对于BSC信道,输入的码序列C经传输变成接收序列Y的条 件概率是 p(Y|C)=p(y 0|c 0) p(y 1|c 1)… p(yL+m-1|c L+m-1) 即 n ( L + m ) −1 L + m −1 p (Y | C ) = ∏ p ( y i | c i ) = ∏ p ( y j | c j ) (10-4)
g ∞ g 0 g1 g 2 L g m 0 0 L Dg 0 g g g L g 0 L 0 1 2 m G∞ = 2 ∞ = D g∞ 0 0 g0 g1 g2 L gm L (10-1) M M M M M M M M
10.2.1 状态图和网格图
在维特比译码算法中,可以利用状态图来描述卷积码的 编、译码过程。
16
以(3,1,2)卷积码为例。它有四种可能的状态(D0D1 ):00,01,10和11,分别用S0,S1,S2和S3表示。编码器的工 作过程可以通过各移存器的状态转移情况来描述,这就是如图 10.2所示的状态转移图,简称状态图。
M (Y C ) =
∑M(y c ) = ∑
i =0 i i j =0
信息元mj把cj,cj+1和cj+2 三个子码联系在一起,这 三个子码之间存在相关性。 用编码约束度N表示子码 之间的约束关系,显然N =m+1。
7
综上所述,一个(n,k,m)卷积码具有以下重要参数:
码长n,子码的信息元个数k,校验元个数n-k; 码率k/n,表示卷积码传输信息的有效性; 编码存贮m,表示信息组在编码器中的存贮周期; 编码约束度N,表示子码之间的约束程度。 编码约束长度NA=nN,表示相互约束的码元个数。
8
10.1.2 卷积码的矩阵描述
描述卷积码的方法很多,如矩阵方法、多项式方 法、状态图和网格图方法等。本节仅介绍矩阵方 法。 以图10.1给出的(3,1,2)卷积码编码器为例进行分析。设输 入的信息序列(m0,m1,m2,…,mi,…)是一个有头无尾的序列, 当编码器清零后开始工作时,输出得到的子码如下: c0=(m0,p0,1,p0,2) 其中 p0,1=m0, p0,2=m0 c 1=(m1,p1,1,p1,2) 其中 p1,1=m1+m0, p1,2=m1 c 2=(m2,p2,1,p2,2) 其中 p2,1=m2+m1, p2,2=m2+m0 c 3=(m3,p3,1,p3,2) 其中 p3,1=m3+m2, p3,2=m3+m1 c 4=(m4,p4,1,p4,2) 其中 p4,1=m4+m3, p4,2=m4+m2
G∞
11
仔细观察(3,1,2)卷积码的生成矩阵G∞可发现: (1)G∞中的每一行都是前一行右移右移3位的结果, 可以由矩阵的第一行完全确定。将第一行取出并表为 g∞=[ 111 010 001 000 000 … ] g∞ 称作基本生成矩阵。 (2)基本生成矩阵g∞ 只有前(等于该卷积码的编码约束 度N=m+1=3)数字有意义,以后各组数字全部为零。分 别用g 0,g 1,g 2表示各组,即g 0=[ 111 ], g 1=[ 010 ], g 2=[ 001 ],g 0,g 1,g 2 称作生成子矩阵。 (3)现在,G∞可表为
14
111 010 001 111 010 001 ] c =[1 0 1 1 0 1 0 1 0 0 L⋅ 111 010 001 111 010 001 O
计算得c=( 111 010 110 101 011 … )
当已知卷积码的生成矩阵G∞ 时,作c=mG∞运算即可实现编码。 如输入信息序列为m=(1011010100…)时,求(3,1,2)卷积码 的输出码字序列为
log p(Y C ) = d (Y , C ) ⋅ log pe + [n( L + m) − d (Y,C )] ⋅ log(1 − pe )
pe = d (Y , C ) ⋅ log + n( L + m) ⋅ log(1 − pe ) 1 − pe
(10-6)
20
在维特比译码中,码序列C的似然函数log p(Y︱C) 称为C的路径度量,以M(Y︱C)表示。而log p(yi︱ci)和log p(yj︱cj)分别称为分支度量和码元度量,分别以M(yi︱ci)和 M(yj︱cj)表示。由此可得 (10-7) n ( L + m ) −1 L + m −1
+
m1 m1 m1 m2 m1 + + m2 m2 m3 m2 m1 + + m3 m3 m3 m2 M + +
cT
c = [m0 m1 m2 m3 m4
即
c=mG∞
1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 L]⋅ 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 L L
……
9
令输出的码序列c=[m0 p0,1 p0,2 m1 p1,1 p1,2 m2 p2,1 p2,2 m3 p3,1 p3,2 m4 p4,1 p4,2 …] 表示成矩阵形式:
m 0 m 0 m 0 m 0 = m 0 1 1 1 0 1 0 0 0 = 1 0 0 0 m 4 0 m 4 0 m 4 0 M 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 M 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 M 1 1 1 0 1 0 M 0 0 0 1 1 1 M m0 m 1 m 2 ⋅ m 3 0 m 4 0 M 0 0 0 0 10 M
i=0 j=0
19
对式(10-4)两边取对数得
log p(Y C) =
L+m−1 i =0
∑log p( y c ) = ∑
i i j =0
n( L+m)−1
log p( y j c j ) (10-5)
式中:当yj ≠cj 时,p(yj︱cj) 就是BSC信道的误码率pe。 当接收端收到Y后,译码器的任务就是按照极大似然译码准 2 Y 则,在2 kL个码序列中找出一个与 Y最相似的,称为发送序列 ˆ ˆ C的估值序列 C 估值序列 。就是要找到使p(Y︱C)最大的 C 。称log p(Y︱C)为C序列的似然函数 似然函数。 似然函数 对于二进制对称信道(BSC),码序列C的似然函数可写成:
第十章 卷积码
1
第十章 卷积码
内容提要: 内容提要 差错控制系统中使用的纠错码, 差错控制系统中使用的纠错码,除前面已 学过的分组码之外,还广泛使用着卷积码。 学过的分组码之外,还广泛使用着卷积码。本 章首先介绍卷积码的基本概念, 章首先介绍卷积码的基本概念,重点论述卷积 码的定义及其矩阵描述。在此基础上,介绍一 码的定义及其矩阵描述。在此基础上, 种目前被广泛应用的概率译码算法:维特比( 种目前被广泛应用的概率译码算法:维特比( Viterbi)译码算法。 )译码算法。
图10.2 (3,1,2)卷积码状态转移图
17
状态图只反映了各状态之间的转移关系,却不能表示出状 态转移与时间的关系。为了表示状态转移与时间的关系,我们 以时间为横坐标轴,以状态为纵坐标轴,将一个平面划分成网 格状,得到了网格图 表示。在网格图中,以时钟周期作为时 间的计量单位,称为节点,用L表示,即在一个节点时间内完 成卷积码编码器一个信息组的输入及相应子码的输出。
图10.1 (3,1,2)卷积码编码器
6
在编码器输出端,由旋转开关实现并/串转换显然,cj中 的校验元pj,1和pj,2不仅与mj有关,同时还与mj-1和mj-2有 关,即与此前m=2个子码中的信息元有关。称m为编码存 编码存 贮,表示信息组在编码器中的存贮周期(时钟周期)。
编码器输出的每个子码, 信息位数k=1,码长n =3,码率k/n=1/3, 编码存贮m=2,表示为 (3,1,2)卷积码。
15
10.2 卷积码的概率译码
卷积码的译码可分为代数译码和概率译码两大类。卷 积码的代数译码方法完全依赖于码的代数结构。而概率译 码不仅根据码的代数结构,而且还利用了信道的统计特性, 因此能用增加译码约束长度来减少译码的错误概率。 本节介绍一种目前被广泛应用的概率译码算法:维特 比(Viterbi)译码算法。
0 0 1 g1 = 0 0 1
000 000 000 000 001 001 L L L L L L L L
则(3,2,1)卷积码的生成矩阵 3 2 1 001 000 101 010 001 000 101 001 G∞ = 010 001 101 010
g∞ g0 Dg 0 G∞ = 2 ∞ = D g∞ 0 M M g1 g0 0 M g2 g1 g0 M 0 g2 g1 M 0 L 0 L g2 L M
12
பைடு நூலகம்
上式中D是延时算子,表示一个时钟周期的延迟。
把以上对(3,1,2)卷积码的矩阵描述推广到一般。 对于任意一个(n,k,m)卷积码,其生成矩阵G∞ 是一个 半无限矩阵: