第9章 3卷积码
卷积码

研09电子 庆栋良 09110023
(1)在实际应用中怎样去建立网格图? (2)怎样计算最小汉明距离? (3)在找到最优路径后怎样去译出原始的 信息码?
内容简介
卷积码简单介绍 卷积码编码实现 卷积码译码实现 总结
卷积码简单介绍
卷积码(convolutional code)是由伊利亚斯(p.Elias)发 明的一种非分组码。在前向纠错系统中,卷积码在实际 应用中的性能优于分组码,并且运算较简单。 卷积码在编码时将k比特的信息段编成n个比特的码 组,监督码元不仅和当前的k比特信息段有关,而且还同 前面m=(N-1)个信息段有关。 通常将N称为编码约束长度,将nN称为编码约束长 度。一般来说,卷积码中k和n的值是比较小的整数。将 卷积码记作(n,k,N)。
图5 (2,1,4)码网格图
②寻找最优路径
网格图建立之后,根据接收码组和网格图中生成 的码组比较,判断最优路径。假设某一时刻的状态i, 首先判断前一时刻所有状态中,是哪两个状态指向当 前状态i;其次,根据这两个指向当前状态i的状态生成 的码组和前一时刻接收的码组比较,保留汉明距离最 小的那条路径以及到达状态i时的最小汉明距离。下一 时刻,同样操作,但是保留的最小汉明距离是前面最 小汉明距离累加。 在所有的接收码组处理完之后,会得到一组汉明 距离以及所对应的最优路径。比较选择出最小的汉明 距离,那么该最小汉明距离所对应的路径即为最优路 径。
③译码
如图5所示,其中红线表示计算得到的最优路 径。观察其变化规律,可以发现,假设i时刻的状 态和第(i+1)时刻比较得知,若第(i+1)时刻小于第 i时刻,那么对应代表实际信息中0;若大于,则 为1。然后逐次比较译出信息值。
总结
卷积码

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25
可以看出交织可能会造成独立错误变成突发错误的特殊情况
级联码
级联码的最初想法是为了进一步降低残余误码率,但事实上它同 级联码的最初想法是为了进一步降低残余误码率, 样可以提高较低信噪比下的性能。 样可以提高较低信噪比下的性能。这是由较好构造的短码进一步 构造性能更好的长码的一种途径
纠正突发错误的码
分组码、循环码均可以检测、纠正突发错误 分组码、循环码均可以检测、 对于一个能纠正l个错误的( 对于一个能纠正l个错误的(n, k)分组码,要求: 分组码,要求: r = n – k ≥ 2l 2l 即一个( 即一个(n, k)分组码最多能纠正(n – k)/2个突发错误 分组码最多能纠正( )/2个突发错误 若再要求该( 若再要求该(n, k)分组码能够检测d个突发错误,则要求: 分组码能够检测d个突发错误,则要求: r=n–k≥l+d
下面是未进行交织处理的序列
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25
假设在信道上发送时,产生了2个突发错误,如下红色部分所示: 假设在信道上发送时,产生了2个突发错误,如下红色部分所示:
10 11(1) 00 11(0) c 01 00(1)
b 01(1)
10(0)
a
11 d 01(0)
10(1)
卷积码的图解表示— 卷积码的图解表示—树状图
观察卷积码的状态迁移图,可知根据输入值的不同,编码器只向两种状态迁移, 观察卷积码的状态迁移图,可知根据输入值的不同,编码器只向两种状态迁移, 因此也可以用二叉树来描述卷积码 树状图绘制方法: 树状图绘制方法: 1)先假设其从某一状态开始; 先假设其从某一状态开始; 2)输入为0时,树状图向上延伸;输入为1时,向下延伸; 输入为0 树状图向上延伸;输入为1 向下延伸; 3)按照状态图在时间上的迁移顺序依次绘制,分支上的数字为编码器的输出 按照状态图在时间上的迁移顺序依次绘制, 编码方法: 编码方法: 1)从树根开始编码,每一节点为码元输入点; 从树根开始编码,每一节点为码元输入点; 2)到达每一节点时按照下一输入的码元向上(0)或向下(1)走; 到达每一节点时按照下一输入的码元向上( 或向下( 3)编码完毕后,将行走路径上的依次进行排列,即可得到卷积码序列 编码完毕后,将行走路径上的依次进行排列,
卷积码的图解表示

3
信息论
卷积码的基本概念
卷积码的编码器是由一个有k个输入端、n个输出端,且具有L节移 位寄存器所构成的有限状态的有记忆系统,通常称之为时序网络。 卷积码编码的原理图如图所示,
电子信息工程学院
4
信息论
1 卷积码的解析表示
输入M
m0
t
m0
t 1
m0
t 2
二元(3,1,2) 卷积码编码器原理图
9
信息论
1 卷积码的解析表示
m0
t
0 输入M 1
m0
t 1
m0
t 2
c1
t
c0
t
m1
t
m1
t 1
m1
t 2
c2
t
输出 C t
二元(3,2,2)卷积码并行编码器的原理图
电子信息工程学院
10
信息论
9.5.1 卷积码的解析表示
基本生成矩阵
g
101 011
000 001
S0 S2 S3 S3 S1 S0 S2
由此很快求得输入信息序列为111001…,输出的码字 序列为111,100,101,010,001,111…。
电子信息工程学院
16
1/111
1/100
1/101
0/010
0/001
1/111
001 000
000 000
000 000
电子信息工程学院
11
信息论
1 卷积码的解析表示
生成矩阵
101 011 G
000 001 101 011
信息论与编码第九章课件

+
0 1 ⎡ g0m g0m ⎢ 0 1 g1m ⎢ g1m +⎢ ⎢ 0 ⎢ g( n−1)m g(1n−1)m ⎣
9
9.2.1 卷积码的生成矩阵表示法
0 ⎡ g0l g10l ... g(0n −1) l ⎤ ⎢ 1 ⎥ 1 1 ⎢ g0l g1l ... g( n −1) l ⎥ Gl = ⎢ ⎥ (l = 0,1,..., m) ⎢ ⎥ 1 k ⎢ g0 l−1 g1kl−1 ... g(kn−−1) l ⎥ ⎣ ⎦
15
9.2.2 多项式及转移函数矩阵表示法
输入信息序列: M = (m0 , m1 , m2 , 输入多项式: M ( D) = m0 + m1D + mk D 2 + 第i路输入多项式:
M 0 ( D ) = m0 + mk D + m2 k D 2 + M 1 ( D ) = m1 + mk +1D + m2 k +1D 2 + , , .
第j路输出多项式: C j ( D ) = ∑ M i ( D ) g ij ( D ).
i =0
17
k −1
9.2.2 多项式及转移函数矩阵表示法
0 ⎡ g0 ( D ) g10 ( D ) ⎢ 1 1 ⎢ g0 ( D ) g1 ( D ) G 卷积码的转移函数矩阵: ( D) = ⎢ ⎢ k −1 ⎢ g0 ( D ) g1k −1 ( D ) ⎣ 0 gn −1 ( D ) ⎤ ⎥ 1 gn −1 ( D ) ⎥ , ⎥ ⎥ k −1 gn −1 ( D ) ⎥ ⎦
彭代渊 信息科学与技术学院 dypeng@ 2007年12月
2
第9章
卷积码

译码主要确定译码规则,使其差错率最小
1 2 – 译码器根据接收序列来产生信息序列M的一个估值M’,如果两者不同,
则表示译码出错 – 如信道传输的码字是X,当且只有当接收序列Y不等于X时,出现译码错 误
最大似然译码
译码主要确定译码规则,使其差错率最小
– 译码器必须根据接受序列y来产生信息序列M的一个估计
§12.1.1 卷积码的图解表示
树状图- tree
– 一个(2,1,3)卷积码编码器。 假设初始状态为全0 第一个比特输入为 0->00 ,1->11 第二个比特输入时,第一个比特右移一位,这时输出比特同时受前输入比 特和前一位比特决定 ...... 第四个比特输入时,第一个比特移出移位寄存器而消失
编码后序列。由于卷积码的线性性质,所有码序列之间的最 小汉明距应等于非零码序列的最小汉明重量,即非零码序列 中1码的个数。由此可见,要求最小距或自由距,只要考虑码 树中下半部的码序列就可以了 – 例: abca abcb abdc abdd 5 3 4 4 因而:dmin = 3
§12.2 卷积码的距离特性
维特比译码
进入第四级网格时,4条幸存支路又延伸为8条, 经计算路径量度并比较后又丢弃其中4条。在 比较是如果出现量度相同的情况,可以任意选 取其中一条。继续下去,到第10步时,会发现, 所有幸存路径已经合并称为一条全0路径,纠 错完毕。 译码结束的判断:可以在网格图的终结出加上 (N-1)*K个已知信息(即N-1条支路),发送固定 码,如全零,作为结束信息。
– 应用最多也是性能最接近最佳的是维特比译码,但
是硬件复杂。门限译码性能最差,但硬件简单。维 特比译码和序列译码都是建立在最大似然译码的基 础之上的
卷积码的设计与实现

卷积码的设计与实现卷积码是一种线性编码技术,广泛应用于通信和数据传输领域。
它通过将输入数据编码为卷积码的形式,提高了数据的纠错能力和传输效率。
本文将介绍卷积码的设计与实现。
一、卷积码的设计1、编码器设计卷积码的编码器由多个移位寄存器和模2加法器组成。
编码器的设计取决于两个参数:约束长度和生成多项式。
约束长度是指编码器中移位寄存器的数量,它决定了卷积码的纠错能力。
生成多项式则决定了编码器的结构。
在设计编码器时,需要选择合适的约束长度和生成多项式,以实现所需的纠错能力和编码效率。
常用的生成多项式有G(D) = (1+D+D^2)和G(D) = (1+D^2),其中D表示延迟。
2、解码器设计卷积码的解码器通常采用最大似然解码算法,如维特比算法或概率解码算法。
这些算法通过搜索所有可能的路径,找到最可能的路径作为解码结果。
在设计解码器时,需要选择合适的算法,并优化算法的复杂度和性能。
常用的优化方法包括剪枝、动态规划、并行计算等。
二、卷积码的实现1、硬件实现卷积码的硬件实现通常采用数字电路和集成电路技术。
通过将编码器和解码器设计成硬件电路,可以实现高速、低功耗的卷积码编码和解码。
在硬件实现中,需要考虑电路的功耗、面积、速度等因素,以优化硬件性能。
常用的硬件实现方法包括ASIC、FPGA和DSP等。
2、软件实现卷积码的软件实现通常采用编程语言和算法库。
通过编写代码实现编码器和解码器的功能,可以实现灵活、可扩展的卷积码编码和解码。
在软件实现中,需要考虑代码的效率、可读性和可维护性等因素,以优化软件性能。
常用的软件实现方法包括C/C++、Python等编程语言和相应的算法库。
三、总结卷积码是一种有效的线性编码技术,具有纠错能力强、传输效率高等优点。
本文介绍了卷积码的设计和实现方法,包括编码器和解码器的设计、硬件和软件实现等方面。
在实际应用中,需要根据具体需求选择合适的卷积码参数和实现方法,以实现高效的通信和数据传输。
卷积码+交织+网格编码

C1 1 , C2 0 C1 1 , C2 1
C1 0 , C2 0
最终得到的输出序列为 C 11,01,00,10,01,10,11,00
按照上述步骤,我们可以用状态图来表示编码的过程, 如图1-2所示
图1-2为(2,1,3)型卷积码状态图
d seq d d d 2 0.585 2 4.585
2 1 2 0 2 1
2
d seq 4.585 2.2
25
3.5 编码增益
具有4状态网格图的8PSK的编码增益 对于一个给定的误码比特率,编码增益是指通过编码 所能实现的Eb/N0的减少量:
Eb G(dB) N 0
22
TCM码的并行距离d par 定义为其网格图中的每组并行 转移之路之间的最小欧式距离。若不存在并行转移支 路,则规定 d par 。TCM码的序列距离 d 定义为其网 格图中不同的输出序列(不考虑并行转移)之间路径 的最小欧式距离。TCM码的自由距离 d 定义为其网格 图中不同的输出序列(不考虑并行转移)之间路径的 最小欧式距离。TCM码的自由距离 d free 定义为
16
3、网格编码
与传统的编码技术相比,TCM网格编码调制技术 (Trellis Coded Modulation)则将编码与调制技术有 效地结合在一起,以增大编码符号之间的最小欧式距 离为目的,在不增加带宽和相同的信息速率下可获得 3~6dB的功率增益。这种方法既不降低频带利用率,也 不降低功率利用率,而是以设备的复杂化为代价换取 编码增益。 现在这种网格编码调制已在频带、功率同时受限 的信道如太空、卫星、微波、同轴、对绞线等通信中 大量应用,占据了统治地位。
卷积码

2.7.卷积码分组码是把k个信息比特的序列编成n个比特的码组,每个码组的n-k个校验位仅与本码组的k个信息位有关,而与其他码组无关。
为了达到一定的纠错能力和编码效率,分组码的码组长度一般都比较大。
编译码时必须把整个信息码组存储起来,由此产生的译码时延随n的增加而增加。
卷积码是另外一种编码方法,它也是将k个信息比特编成n个比特,但k和n通常很小,特别适合以串行形式进行传输,时延小。
与分组码不同,卷积码编码后的n个码元不仅与当前段的k个信息有关,还与前面的N-1段信息有关,编码过程中互相关联的码元个数为nN。
卷积码的纠错性能随N的增加而增大,而差错率随N的增加而指数下降。
在编码器复杂性相同的情况下,卷积码的性能优于分组码。
但卷积码没有分组码那样严密的数学分析手段,目前大多是通过计算机进行好码的搜索。
2.7.1.卷积码的结构和描述一、卷积码的一般结构卷积码编码器的形式如图所示,它包括:一个由N段组成的输入移位寄存器,每段有k个,共Nk个寄存器;一组n个模2和相加器,一个由n级组成的输出移位寄存器。
对应于每段k个比特的输入序列,输出n个比特。
由上图可以看到,n个输出比特不仅与当前的k个输入信息有关,还与前(N-1)k个信息有关。
通常将N称为约束长度,(有的书的约束长度为Nn)。
常把卷积码记为:(n,k,N),当k=1时,N-1就是寄存器的个数。
二、卷积码的描述描述卷积码的方法有两类:图解法和解析表示。
图解法包括:树图、状态图、网格图解析法包括:矩阵形式、生成多项式形式。
以如下的结构说明各种描述方法。
1、树图根据上图,我们可以得到下表:我们可以画出如下的树状图:2、 状态图3、 网格图例1, 输入为1 1 0 1 1 1 0,输出为: 11 01 01 00 01 10 014、 生成多项式表示 定义],,[1211101g g g g=,],,[2221202g g g g=则上述结构为71=g,52=g,这里用8进制表示21,g gabcd⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=2101211101],,[m m m g g g c ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=2102221202],,[m m m g g g c定义2212111011)(DD Dg D g g D g ++=++=2222212021)(DDg D g g D g +=++=则输入信息,...,,210b b b 的多项式为....)(332210++++=b D b D b b D M那么我们可以得到输出)()()(11D g D M D C = )()()(22D g D M D C =最终输出是)(),(21D C D C的相同次数项的排列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ˆ= argmax{P(ci | y )} c
c i ∈C
最大似然译码
ML (Max. Likelihood) 译码
v 后验概率与似然函数 P(y | ci ) 的关系是:
P (ci , y ) P(ci ) P (ci | y ) = = P (y | ci ) P(y ) P (y )
v 当编码器的输出先验等概,即P(ci )是一个与 ci 无 关的常数时,给定y条件下,使 P(ci | y ) 最大的ci ∈ C 也必然使 P(y | ci ) 最大。
生成序列
g1(1) = (11) , g1(2) = ( 01) , g1(3) = (11) g
(1) 2
= ( 01) , g
(2) 2
= (10 ) , g
(3) 2
= (10 )
(3,2,2)卷积码
故有
g1(1) = (11) , g1(2) = ( 01) , g1(3) = (11)
(1) (2) (3) g2 = ( 01) , g2 = (10 ) , g2 = (10 )
卷积码编码
ci( n −1)
ci( n − 2)
并 串 变 换
编码输出 速率为 Rc =Rb×n /k
ui
串 信息序列输入 并 速率为 Rb 变 换
( k −1)
ui
( k − 2)
…
ci = f ( ui , ui −1 ,L , ui − m )
…
ui
k −1)
( 0)
ci
k −2)
( 0)
ui = ui(
最大似然译码
因此,最佳的译码方法也可以是译为似然函数 最大者,这一原则叫ML准则。 ML译码可以表示为:
ˆ= argmax { P ( y | ci )} = argmax {ln P ( y | ci )} c
ci ∈C ci ∈C
离散无记忆信道中,ML准则变为对数似然函 数累加值最大
v 卷积码上如何用?
树根
a
11 11 10
a
c
00
b
01
01
b
11 01 01
c d
11
a b
c
00 01
d
10
d
10
树图
优点:
v 时序关系清楚; v 对于每个不同的信息输入序列都有一个唯一的不重 复的树枝结构相对应;
缺点:
v 进行到一定时序后,状态将产生重复且树图越来越 复杂。
网格图
综合了树图和状态图的优点:
v 状态图:结构简单; v 树图:时序关系清晰。
c (1) = (1 + x 2 + x 3 + x 4 )(1 + x 2 + x 3 ) c (2) = (1 + x 2 + x 3 + x 4 )(1 + x + x 2 + x3 ) = 1 + x + x3 + x 4 + x 5 + x 7 = (11011101) = 1 + x = (10000001)
(
, ui(
,L , ui(
0)
)
ci = ci( n −1) , ci( n − 2) ,L , ci( 0)
(
)
卷积码的表示方法
解析表示法
v 离散卷积法 v 生成矩阵法 v 码多项式法
图形表示法
v 状态图法 v 树图法 v 网格图法
卷积码的解析表示法
(2,1,4)
(1) g0
ci(1)
g1(1)
101 011 c = u gG = (110110 ) = (110 000 001 111)
111 100 101 111 011 100 101 011
111 100
生成矩阵的构成规律
每一行的分组数,即码组数,取决于记忆单元 数,即移位器节数加1; 每一码组中的码元数取决于并行输出位数; 矩阵中并行的行数取决于并行输入的位数; 矩阵中的总行数取决于输入位置序列的长度;
提纲
概念 卷积码编码
v 解析 v 图形
卷积码译码 纠正突发错误
有记忆与无记忆编码
无记忆编码
v 输出ci只取决于第i个输入ui,而与以前的输入 {L, ui −2 , ui −1} 无关;
有记忆编码
v 编码器的输出不仅和现在的输入有关,还和过去的 m个(寄存器个数)输入有关; v 有记忆编码记作(n,k,N)码,称N为记忆深度(约束长 度); (是否有记忆是相对的概念) v 卷积码是有记忆编码。
g1(1) g1(2) (1) (2) g0 g0
L
L
L
(1) (2) g3 g3 L L
生成矩阵
编码方程写为矩阵形式
c = u gG
若 u = (10111) , g (1) = (1011) , g (2) = (1111)
生成矩阵
得到编码输出为
11 01 11 11 11 01 11 11 c = u gG = (10111) 11 01 11 11 11 01 11 11 11 01 11 11 = (11 01 00 01 01 01 00 11)
状态图
状态转移图:
11 01 01
状态之间带箭头的连线 叫一个分支或者叫一个 支路,代表状态的迁移。
11 10
00
00
10
00
实线分支表示输入“ 0” 引 起的状态迁移; 虚线分支表示输入“ 1” 引 起的状态迁移。 分支旁边的数字表示这 个分支对应的编码输出。
11
10
01
输入1 输入0
树图
卷积码编码器的状态变化过程也可以用树图来 描述。 树图中的每个节点代表编码器的状态; 连接两个节点的一段树枝表示一个分支; 编码器的初始状态对应图中的“ 树根” ; 每个时刻到来时,编码器的状态将根据信息比 特是“ 1” 还是“ 0” 沿这颗树向下或者向上移动 树枝上标注的数字是编码器对应的输出。
一般结构
1 输入 1 k 2 N-1
输出
1
n
卷积码编码器
包括
v 一个由N-1段组成的输入移位寄存器; v 每段有k个,共(N-1) k个寄存器; v 一组n个模2和相加器; v 一个由n级组成的输出移位寄存器; v 对应于每段k个比特的输入序列,输出n个比特; v 当k=1时,N-1(或K-1)就是寄存器的个数 。
最大似然译码
在BSC信道中
( v 信道的正确率是 P ( y
v 信道无记忆:
i i v 信道的错误率是 P yl ≠ cl | cl = p(p<1/2); l i l i l
状态图
以(2,1,3)为例
ci1
ui
si1
输入速率为Rb
(ui )
(s )
1 i −1
si2
(s )
2 i −1
T D M
ci2
输出速率为Rc=2Rb
状态图
共有4种不同的状态:00、01、10、11 。 如果初始状态给定,那么随着输入的变化,状 态也在不断变化。 例如:在编码器的状态是00的时候,若输入比 特“ 1” ,则状态将转移到10,同时编码器将输 出11。
树图
00 00
a b c d a b c d a b c d a b c d
10
a b c d a b c d a b c d a b c d a b c d a b c d a b c d a b c d
a
11 10
a
00 11
b
01 11
a
11 00 10
c
00 01
b
01
d
10 00 11 10
最大似然译码
最大后验概率(MAP)准则
v 后验概率 P (ci | y ) :在观察到y的情况下时,所判断 的发端发送 ci的概率。 v 第i个译码器译错的概率为:
1 − P ( ci | y )
v 给定y后错误率最小的方法就是总选择后验概率最 大的那个,这一原则叫MAP(Max. A Posteriori) 准则;
离散卷积
编码方程
c
(1)
=u*g
(0)
(1)
c (0) = u * g (0) c = (c , c )
(1)
其中“ *” 表示卷积运算
ci = ∑ ui − j g j
j =0 m
离散卷积
脉冲冲激响应至多可维持到
K = m + 1 = 3 + 1 = 4 位;
冲激响应可以写为:
g (1) = (1011) g (0) = (1111)
用实线表示输入为“ 0” 时所走的分支; 用虚线表示输入为“ 1” 时所走的分支; 尾比特
网格图
a a b a b c d a b c d
00 11 10 01 11 01 11 10 10 01 11 00
a b c d
a b c d
a
a
c
a b c d
00
输入0 输入1
00
01
例:u=1011100
若输入序列为
u = (1011100 )
写成多项式形式
u = 1 + x2 + x3 + x4
由图可知码生成多项式为
g (1) = 1 + x + x 2 g ( 2) = 1 + x 2
(2,1,3)卷积码
则输出码序列可写成
c(1) = (1 + x 2 + x 3 + x 4 )(1 + x + x 2 ) = 1 + x + x4 + x6 c( ) = (1 + x 2 + x 3 + x 4 )(1 + x 2 )