当前课程知识点:移动通信原理 >  第七章 信道编码 >  7.3 卷积码 >  7.3 卷积码

返回《移动通信原理》慕课在线视频课程列表

7.3 卷积码在线视频

下一节:7.4 级联码

返回《移动通信原理》慕课在线视频列表

7.3 卷积码课程教案、知识点、字幕

下面我们看一下

卷积码的一些基本定义

我们稍微回顾一下

刚才我们已经提到过

卷积码

可以用这三个参数来表示

有n k m

卷积码是一种有机的编码

它的编码器

我们可以

看作是一个有限状态机

这个K表示的是

单个时钟

节拍输入编码器的比特数目

n表示的是

单个时钟节拍编码器输出的

比特数目 M就表示

这个编码器所记忆的

阶时钟节拍的数目

我们以这样的一张图

来做个示例

给大家看一下卷积码

它的编码器整体结构

我们看卷积码的编码器的中心

部分其实就是一个有限状态

它也要记忆一些时钟节拍

其实主要记忆的是

历史的一些数 数据

那么输入左端

这实际上就

一般而言

就可以有K比特

同时并行的输入

那么同一个时钟节拍

会有N比特并行的输出

这就是个一般的

NKM卷积码编码器的结构

那么它的编码码率

当然也可以用N分之K当然也是

小于一来表示

我们如何来描述卷积码呢

因为卷积码也有编码

也有译码

所以我们把它划分为

描述的方法

划分为两大类

一类是解析法

主要用于描述卷积码的编码

另外一类是图形法

主要用于描述码的译码

那么编码方法当中

解析法方法里面

主要包含有三类方法

就是所谓的定义法

也就是离散卷积法

生成矩阵法

还有码多项式方法

用这三种方法

来描述卷积码的编码

对于图形法而言

也有三种工具

基本估计

我们用状态图来表示卷积码

那么进一步我们引入时序概念

就把状态图推广到树图

那么再进一步

我们把树图进行压缩

就变成了格图

我们用状态图

这个树图还有格图

描述卷积码的译码

下面我们通过事例

来给大家分析

我们先看编码

大家看胶片上给的事例

这就是一个212卷积码

我们观察这个例子中间

这两个方框

这就是两个寄存器

每个寄存器

一个是时钟节拍

可以记一个比特

我们看计算器结构的左端

就是一路输入

就一个时钟阶拍

只输入一比特

所以就指的是

212当中的1

就K=1

对吧

我们再看右侧

右侧它有两个输出

两路并行的输出

也就是 N=2

就212里面的2

那么

212里面

就第三个是M M=2

是什么意思

我们看有两个寄存器

每个寄存器可以记忆

一拍时钟两个寄存器

可以记忆两拍时钟

所以它记忆长度是二

那么它的这样的结构

我们可以看作是一个

离散

线性

时不变系统

线性时不变系统

我们缩写就LTI

这样的离散线性时不变系统

它不是一个是两个

大家注意

输入和上支路

这之间是一个

离散线性时不变系统

输入和下支路

也构成一个离散线性时不变系统

所以这实际上是两个系统

这两个系统它共享寄存器

所以叠加到一起去

这样构成了卷积码的编码器

对于离散线性实不变系统

我们知道

描述这个系统

可以用冲激响应

用冲激响应来描述

那么它的编码器的输出的编码

序列

就可以看作是输入的信息序列

与系统冲激相应的离散卷积

这也就是我们引出来的

卷积码的第一种描述方法

我们用它的定义来描述

因为卷积码的编码

就可以看作是一个离散卷积的

过程

那么下面我们举例来分析

假设说我输入的信息序列

是一个离散序列

就是有序列

那么编码之后的序列

就是输出响应序列

有两个子路

就第一只落是C1子序列

第二支路 C2子序列

我们把这两路编码序列做一个

二两路变一路的并串变换

那么交织到一起去

就变成了单路输出编码的序列

下面我们通过一个例子

来给大家说明

刚才我们举的

212卷积码的结构

这样的一个离散线性识别系统

上下两个之路的冲激效应

怎么求呢

非常简单的方法

应用

我们在信号系统学过的基本知识

假如我输入的是一个离散冲激

响应序列

那么输出的就应当是这个系统的

冲激响应了

我们离散冲激效应

序列δ

我们可以把它定义为就是1

后面全是0000

全是0

送到了上面的系统当中

大家看这个是一个摩尔加操作

对吧

一般而言

我们都假定

卷积码编码器的初始状态是全0

状态

也就是说

这两个寄存器里寄存的全是0

初始要做一下寄存器的清零

或者默认为是全零值

你输入1000000

这是一个冲激响应序列

我们可以算出来

上支路系统的冲激响应

其实应当是111

那么下支路的冲激响应

实际上应当是1

0 1

如果我们做熟了的话

其实不必要这样的逐个去算

直接从编码器的结构上

能看出来它的冲激效应

怎么看这样做

只要我有抽头输出

这两个寄存器

实际上有三个抽头对吧

最左面有个抽头

中间有个抽头

右面有个抽头

抽出头来

那么冲激响应当中

要如果没有抽出头了

冲激响应当中就是0

上支路这个系统

它抽了三个头

所以它的冲击响应

就是111

下支路

这个系统

它其实只抽两个头

就左边这个是1

中间这块没有抽

右面是1

所以它的冲击效应就是101

我们得到这两个冲激响应了

下面我们做卷积操作

假设说我们输入的是一个有序列

那么上支路的结果

就应当是把输入的

信息序列U序列

与冲激响应

g1做卷积

那么下支的编码子序列

就应当是输入的信息序列

以第二支路的冲激响应序列

g2做离散卷积

卷积之后

我们再做一个并串变换

就得到最终的编码序列了

大家在信号与系统当中

这门课里面

学习最痛苦的一件事情

就是手工做卷积

尤其离散卷积非常复杂

所以虽然我们

卷积码的得名

是来自于这种离散卷积的

但是我们描述编码器

一般都不采用这种

手工做离散

卷积的方法描述

这只是一个定义

我们可以引入一些

更简单的方法来表示

卷积码的编码

稍微简化一点

我们可以把这种卷积的操作

变成矩阵向量的乘法运算

矩阵重新运算

我们把这输入的信息序列

U0 U1

U2 U3

就我举个例子

就是5比特U0 U1 U2

U3 U4

5比特

那么我们可以把

刚才给的212卷积码的

两个冲激响应序列

把它组成一个

等效的生成矩阵

大家注意

我们这儿加一个定语

必须是等效的生成矩阵

具体怎么组织

很简单

把上支路的冲激响应g1

111

与下支路的冲激响应

g2是101

兼插就是上下两个支路

交错组合起来

比如说

这样组合11组合起来

10组合起来

11组合起来

大家看就变成了下面这种结果

111

1011

对吧

然后生成矩阵

它是一个移位带状矩阵

也就是说

第一行是111011

第二行也是

只不过相对于第一行要右移2

比特

以此类推

这构成的是一个带状矩阵

我们把输入的信息序列

与这样的一个带状矩阵相乘

就得到了编码输出了

所以矩阵向量相乘

比纯粹手工做离散卷积

要更简单一点

所以这就是所谓的用生成矩阵法

来描述卷积码的编码

我需要解释一下的是

卷积码本身是非分组码

严格意义上讲

是不能写出它的生成矩阵的

我们这只是一种等效的方法

那么原因在于

我输入的信息序列

长度是不确定的

它不像线性分组码

73收入必然是3比特

比如说15 11

收入必然是11比特

而对于卷积码而言

这输入的比特长度可长可短

短的话1比特2比特

长的话1000比特10000比特

因为它没有分组的概念

所以这个地方的生成矩阵

实际上是一种等效的结构

也就是说生成矩阵的维度啊

就带状矩阵的长度是可变化的

所以这只能是等效

不过用这种等效

已经极大的简化了

我们做离散卷积的过程

它的计算就比较方便一点

我们还可以进一步简化

所谓的采用码多项式的方法

来进行的卷积码的

这个编码描述

也就是说

我们把这个信息序列

还有生成卷积码的编码器的

两个支路的系统冲激响应

我们都可以把它映射为是多项式

那么信息序列

我们把他映射为是UX也变成了

信息

多项式

那么这两个冲激响应

我们把他映射为g1x g2x

变成两个是

生成多项式

有了信息多项式

和生成多项式

那么编码其实就是信息多项式

与生成多项式的相乘

就码多项式乘法运算

那么对于第一个支路的编码而言

它的码多项式C1x 其实就是信息

多项式Ux与生成多项式g1x

相乘

那么多样

相乘很容易做

大家可以自己做

公式见图

公式见图

公式见图

公式见图

请大家注意

码多项式乘法运算的时候

它是在 gf2域上

也就是在01集合

这样上面的一种线性运算

摩尔加摩尔乘的线性运算

换句话讲

如果某一个项

比如说

比如说我们这儿举了个例子

公式见图

公式见图

公式见图

等于是相互抵消0

有基数个项

那么就会存在

偶数各项就相互抵消了

它和摩尔加运算是类似的

所以经过整理

我们就能够得到第一个植入的

编码的码多项式

类似的也能得到

第二个植入的编码的码多项式

所以就能够得到最终

编码比特序列

所以卷积码

它最简单的编码描述

我们可以采用的码多项式的方法

来描述

我们再举一个例子

这个例子稍微复杂一些

这个例子是一个321

卷积码

大家观察

编码器的结构

它的输入

是由并行的两比特输入的

所以K就应当等于2

它的输出大家注意

实际上是有三个比特的

三个支路

所以N就应当等于个三

所以它的编码码率

实际上应当是2/3

那么它的记忆长度M 虽然大家

观察编码器是有两个寄存器

但是它的记忆长度并不是二

这不是322编码器

M实际上记忆长度是1

是321

为什么你仔细想一想就能明白

因为输入的这两个比特

是并行同时输入的

这两个寄存器

它其实记忆的是同一个时钟节拍

虽然它记忆了两个比特

但实际上是同一个时钟节拍

送进来的

所以它的记忆长度只能是一

它不是二

所以这就是一个

所以基本的321卷积码的

编码器的结构

那么它的码多项式

还有生成矩阵的方法

我们不再列举了

请大家自己仔细看一下书上的

介绍

下面我们重点来给大家讲

图形法的描述

我们还以刚才的

212卷积码的为例

212卷积码

我们刚才一开始就给大家讲过

卷积码

它还可以看做是有限状态机

因为像212卷积码

它有两个寄存器

记载了两拍时钟 确切的讲

对于特例而言

它记忆了两个比特

那么寄存了两个比特

你可以想一下

相当于这两个比特

比特

A B. 两比特

2比特一共有多少种组合呢

显然有00

01

10

11

有4种组合

对不对

因此我们可以用这两比特的

记忆的

两比特的组合

来得到卷积码的4种状态

叫212卷积码

实际上有4种状态

一般意义上

卷积码

有多少个状态呢

它应当有二的

KM次方个状态

而我们现在觉得特例

212卷积码

K=1

M=2

所以就是2的2次方

实际上有4种状态

我们可以根据212卷积码

它的输入比特输出比特之间的

映射关系

画出来状态

转移和输入输出比特之间的

一一对应的关系

那么这种关系对应关系图

就是所谓的状态图

我们可以给大家看一下

212卷机码的状态图的

实意ABCD4个状态

分别对应的是00

10

01

11 4个状态

那么这4个状态之间

是怎么对应的

大家注意这状态之间可以转移

它有箭头关系

就是状态转移的关系

或者状态转移分支

在这个状态转移分支上

有两种

比特组合

在括号里面的

实际上是输入的信息比特

因为我们是212卷积码

输入每拍时钟

输入1比特 一个比特

所以括号里面

比特的取值两种

0

1

我们再看转移分支的外面

括号外面也是两比特

这两个比特对应的是输出的编码

比特

那么212卷积码编码

比特变通一拍时钟

编出两比特

这两笔它一共有4种组合

00 01 10 11

一共4种组合

那么这种状态转移关系

它就表征了

当前时刻

卷积码的编码器是什么状态

下一个时刻

如果我输入信息为取值给定

我们就能够得到它的输出编码

比特的组合

同时我们也知道

卷积码编码器从当前的状态

转移到下一个时刻的另外的状态

比如我们这儿举个例子

我们把刚才212

卷积码的编码器画到这儿

我们从这个图上来分析一下

状态转移之间的关系

我们看这是212卷积码的

编码器的结构

假设说当前的时刻

这两个寄存器存的是

初始态是00

我们输入的信息比特是1

对吧

我们看一下上支路

这三因为是抽头抽出来

就是三个比特100摩尔加

那么上支路编出来是1

下支路的话就应该是1

但中间这个抽头没有抽出来

只是1和0摩尔加

那么输出的结果也是1

同时我们寄存器进行右移

对吧

把左面的寄存器的0

要移位到右面寄存器

右面0移出来

就移到了上下的支路上去了

那么左面寄存器里面

就把1移进来了

所以显然现在的这个状态

你就转移到了10状态

也就是我们看这个状态图上

就从00状态

转移到10状态

对不对

那么它输入的信息

比特括弧里面是1

那么编出来的编码

比特是11

这就是212卷积码的状态

图上的一个状态

转移的分支

就这么确定下来的

依次类推

所有的状态转移分

你都能确定

有两个特例

我们需要说明一下

大家观察全0状态

00状态

这00状态

这儿有一个自环

对吧

为什么

因为如果我输入信息

比特是0

初始状态是00

因为上下摩尔加所有的零摩尔加

还是零

所以编码编出来

还是00下一个状态还在00上

所以这个自环节表示这样的含义

就前一个状态是00

那么输入信息比特是00

那后一个状态还是00

类似的如果说

初始状态迁移状态是11

那么你输入一个1

它下一个状态还是1

所以11这儿也有个置换

那么这就构成了

整个212卷积码的

状态转移图了

一般来讲有线状态机

它的状态转移图

和我们卷积码的编码器

是一一对应的

这是另外一种描述工具

但是描述的是同一个对象

它是用不同的工具来描述的

在这个状态图上有三个关系

它们是一一对应的

第一个关系

就是状态

第二个

输入的比特

第三个关系

是输出的比特

请大家注意这三个关系

并不是相互独立的

因为他们有约束

有相互依赖

我只要确定

这三者当中的任意两者

那么就可以唯一决定的第三个量

举个例子讲

如果我们给定了状态和输入

我们就唯一的确定的输出

或者我们给定了状态和输出

就可以反推输入

或者我们给定了输入输出

那就能反推状态

因为它们三者之间

是有约束关系的

所有的卷积码的编码过程

都可以用状态图来一一对应

描述

这两者等价

你可以通过

编码器推导出来的状态图

反之我们通过状态图

也可以

反推出来编码器的结构

不过这个状态图

它还不能够完全反映

卷积码编码的全部信息

它的编码约束关系

都已经反映了

可是这个卷积码

它是个时序

结构

它有时间的概念

但是状态图

它们只有状态转移的关系

它没有这种时间的

关系在里面

所以我们可以考虑

把状态图

做一点扩展

把时序结构引进来

这就引出来了第二种图

也就是所谓的树图描述

我们以一个事例来给大家介绍

就212卷积码的事例

大家看这就是个树图

对于212卷积码而言

它是一个2察叉树

我们的初始状态

就是从全0状态开始

从这儿开始

这是树根根节点

然后我们有两个分叉

因为它有二叉是两个支路

上支路

我们对应的就是比特0

下支路就对应的比特1

二叉树是怎么来的呢

它是由信息比特来决定的

你输入信息

比特是0

我们就走上支路

输入信息

比特是1

我们就走下支路

就两个分支

那么根据状态图的约束

全零状态如果输入是0

它就转移到00

输入是1那就转移到

10

也就是转移到A状态

转移的A或者B 那么接着如果说

下一拍时钟

又输入的是0

那么全0还转移到全0

如果输入的是1

那么 A就转移到B

类似的B状态

如果输入的是0

那就转移到C 输入是1

就转移到D

大家看这就是分叉

随着横坐标时钟

随着时钟节拍的增长

每过一时钟节拍

那么这个数上的分差就多一倍

每过一个时钟节拍多一倍

这实际上是一个二叉的

满树

对吧

我们从树根开始

到某一个叶节点

这不会走过一个

由分支构成一条路径

路径上的编码

比特的组合

其实对应的就是某一个

卷积码编码的序列

比如刚才我们举的这个例子是

什么

1输入的信息

比特是10111

大家可以直接从树根

开始沿着树图

就能读出来它编码的序列

因为首比特是1

所以走下支路

第二比特都是0走的是上支路

第三比特是1 下支路

第四比特是1下支路

第五比特也是1下支路

后面有一些0的比特这也是

干什么

是结尾

比特通过0比特直接推

就能够把卷积码的

编码器又推

相当于是把它的结尾

就推回全0状态

这样的话

方便下一帧开始进行编码

所以这就是数图的结构

大家观察这个数字结构

它的横轴方向

就引入了时钟

或者时序概念

所以在树图上

从树根开始到叶节点

所有的路径就涵盖了

所有的卷积码编码

可以编码的合法序列了

原则上讲

我们在数图上

穷举所有的序列

就能够来进行译码了

不过人们发现说

树的话

只是一个形式化的工具

其实它的

应用上有限度的

或者说

是比较困难的

因为这是一个

二叉满树

你稍微数据真大一点

比如说

我们正常

等于100

那么按照212卷积码的结果来

它的数的总数有多少

就是路径或者序列总长有多少呢

就显然应当是2的100次方

这是天文数字

我们没有办法在工程上实现

所以

这个树图

它只是个理论分析的工具

那么为了工程上更方便的实现

那么有没有可能呢

树上面的这些分支

做一些压缩

我们仔细观察这个数的结构

看一看就能发现

这个树上面

其实是存在大量的冗余的

请大家看呢

我们以树根

为参考点

分解一下

把这个数分成上半子数

和下半子数观察

其实上半和下半下来

ABCD ABCD

一模一样

对吧

当然前面有一点差异性

ABCD

ABCD.是不一样的

但是从第三排始终开始

就是个重复了

所以按照这个结构

我们想办法

能不能把这个数上下对折

对折对折

把冗余的这些状态

能给

只有在每一个时钟节拍

把它只用一次

只表示一次

这样做

我们就得到了

在译码当中

最常用的一种工具

我们称它为是格图

英文我们叫做是

Trellis

Trellis的含义叫篱笆

因为格图结构就像

扎羊圈用的篱笆

所以我们就叫篱笆图

或者是格图

格图的结构

我们先给大家看个示意

它既包含了

树图的所有的

信息

有时序有状态

同时它又去掉了树图当中的冗余

胶片上给的示意

就是212卷积码的格图

大家观察横坐标

这是时序

对吧

时钟节拍

纵坐标是状态关系

我们212卷积码有4个状态

那么有4个状态

大家看就是

ABCD 每一拍

时钟大家观察

这不就是有4个状态

转移到下一拍

始终又有4个状态

对吧

这之间的转移关系

就是由状态图来约束的

仔细观察

我们这样来表示

虚线

就表示

信息位输入的信息位是比特1

实线

就表示输入的信息位是

0

那么在转移分支上的

这两个比特

编码比特

我们输出的编码比特

所以这个格图上

其实已经蕴含了

数图上的所有信息了

我们从全0状态出发

就从左侧全0状态出发

沿着格图上

任意走出来的一一个路径

就表示

卷积码的某一个编码序列

你把所有的路径都走一遍

就构成了卷积码

可以表示的所有核发码字

这就是格图的概念

我们有了这三个基本的图形工具

下面我们围绕格图

来给大家简单的解释一下

卷积码的译码

卷积码

现在最常用的译码准则

叫做是维特比算法

这个维度比算法

它是卷积码的一种最优译码算法

最优首先我们先解释一下

它的最优性

译码的过程

广义上来理解

也是一种估计

那么在信号检测与估计理论当中

译码的准则

我们一般来说

最佳的准则

或者说

是最优的判定原则

应当是用差错概率最小化

就平均误码率最小化政策

平均误码率最小

我们可以稍微利用概率论的知识

做一点推导

平均误码率最小

我们把这个平均差错做一个展开

什么叫平均差错呢

就是这样的一个概率

假设说我们接触到的码字是Y

如果我收到Y以后

产生了错误

这显然是一个条件差错

对吧

是一种条件差错

我们穷举了所有的接收信号序列

的组合

就PY就相当于是一种

信号序列的概率分布

那么对它进行平均

这不就是一个平均差错概率吗

所以让这个平均差错概率最小

其实我们展开平均差错概率定义

实际上就是条件差错概率的加权

平均

而这个条件差错概率

我们还可以

把它进一步展开来写

那么所谓的条件

差错概率就收到Y

产生了错误

其实等价的来看

不就应当是收到Y

我们译出来的结果

上面加个尖号

叫我们称为是冒号的 C冒

你估计出来

或者译马的序列

不等于发送的序列

这不就出现错误了吗

这就是条件差错概率

是吧

我们还可以把差错条件

差错概率再进一步展开

什么叫错误

错误不就是

1减掉

正确不就是错误

所以

这个条件差错概率

我们可以写成是一

减掉

正确

当然就是我估计的结果

等于争执估计的结果等于争执

我们看后面这一项

这一项

是收到信号以后

我们在译

并且译对

我们把前面估计就去掉了

写成这样的概念

叫收到y以后

我们译出来是C 这个概率

我们一般称为

后验概率

所谓后验大家看

这是一个条件概率

它是先收

收到Y以后

后进行判决或者估计

所以我们就称它为是后验概率

我们称它为是后验概率的

英文实际上应该是拉丁文

我们叫的是

如图

如图

与之相对应的还有一个概率

我们也经常用

这个概率也是个条件

概率

我们把它写为是

假定

发送的序列是C 然后给定发送

序列C的条件下

我们收到Y那么这个概率是

我先讲给了一个假设

看接收信号

在这种假设条件下的概率

这就是给定假设条件下的

概率

我们称这个概率叫做是

似然概率

似然概率

因为即一般我们叫做是

如图

需要考虑的问题

所以我们称它为叫似然概率

这两个概率的定义

请大家别搞混了

后验概率

条件上是

接收信号就先收

然后估计或者判断

那么似然概率是先给了一个

假设发送的是C然后结果收到

信号Y所以一个是先收后验

一个是先给定估计

然后看接收

所以这两个概率

一个叫后验概率

一个叫似然概率

我们给出来的后验概率

和似然概率的

定义了

前面按照前面的分析

我们知道平均差错概率最小

就应当等于

条件差错概率的加权平均最小

而条件差错概率

我们知道

其实应当是一

减掉的正确概率

你让条件差错概率最小

因为它是一减

那不就应当相当于是

让条件差错概率最小

就等价于让

条件正确

概率最大

对不对

条件正确概率就是后验概率

所以平均差错概率

最小

等价于后验概率最大

那么后验概率最大

我们一般成为是最大后验概率

准则

MAP M的意思

如图

如图

所以我们缩写叫MAP

叫MAP准则

所以这两者是

在所有的情况下

都是等价的

就平均差错概率最小

这样的最优准则

就等于最大后验概率准则

所以最大后验概率准则

是一般意义上的最佳译码准则

然后另外我们再看

后验概率实际上

似然概率之间是有关系的

我们刚才刚给了后验

概率是这个样子的

我们用BS公式

可以把它展开

分母上应该是PY分子上联合

概率

联合概率我们可以写成PC

乘上C条件项Y对吧

因为PY它是一个公共项

我们就不考虑了
因为PY它是一个公共项

我们就不考虑了

所以可以看到后验概率

其实应当正比于

PC

再乘以

似然概率就

C条件下Y对吧

你现在让后验概率最大

其实正比于似然概率与PC

PC是什么东西呢

我们因为PC是码字的概率

它与信源的统计分布有关

所以一般我们称

PC叫做先验概率

所以实际上后验概率最大

就等价于是先验概率

以似然概率的乘积最大

而一般情况下呢我们假设

我们不考虑信源统计的情况下

我们假设先验概率

码字都是等概出现的

在等概的条件下

那么也就是说是先验

等概的条件下

就最大后验概率准则

就应当等价于最大似然准则

最大似然准则

我们一般缩写为叫ML

如图

这个等价

请大家注意是有条件的

只有在先验等价的条件下

最大后验准则

就等价于最大似然译码准则

我们接着不加照明

接着直接给大家再来分析

最大似然准则

在先验等概的条件下

是最优准则了

那么我们针对实际的信道

最大似然准则怎么用呢

它有两种代表性的信道事例

如果说

我们前面研究的BSC信道二元

对称信道

在二元对称信道当中

你让似然概率最大化

其实就等价于让

汉明距离最小化

我们可以把它等价为是

最小

距离当然是汉明距离译码准则

如果说你要是在 AWGN信道

当中

白噪声信道当中

那么译码准则

最大的Sin码准则

等价于欧式距离

译码准则就是让欧式距离

最小化的译码准则

总而言之

我们看这个逻辑链条

相当于是推了有这么4步 最初始

的条件

就应当是让平均差错概率最小

那么平均差错概率最小

我们可以等价为是

后验概率最大

也就MAP最大后验概率准则

这是没有什么条件的

完全等价的

在先验等待的条件下

那么最大后验译码准则

就能够等价为最大似然译码准则

然后在 BSC信道条件当中

最大似然译码准则

就等价于最小汉明距离译码准则

如果是AWGN信道当中

那么最大似然准则

等价为是最小化

欧式距离译码准则

总而言之

不管是BAC信道

还是AWGN信道

其实译码就是要找距离

对吧

要不然是汉明距离

要不然是欧式距离

所以举个例子讲

比如说212卷积码

那么我们怎么做最大似然译码

其实就是把收到的序列

与格图上面的所有的序列

两两之间

分别去算他们的汉明距离

然后哪一个格图上

哪一个序列与接收到的

信号序列之间的汉明距离最小

序列

最大似然译码的结果

实际上就是两两比较

哪个距离近

我就以为谁

这就是最大似然译码的过程

前面我们已经有了一点准备了

下面我们在讲维特比算法之前

给大家做一点这种分析

最大似然译码

是不可能实现的

在中等码长

或者实用化的情况下

没有办法实现

为什么呢

因为最大似然译码

是一种指数复杂度的算法

它的搜索量是指数增长的

举个例子讲

刚才我们假设了

说这个数据帧的长度

这帧长是100比特

对吧

那么

格头上的卷积码编码序列有多少种呢

显然应当是二的100次方

中组合

格图上有2的100次方个序列

这个序列

比如说某一个学者是C如果我要

采用最大的似然译码

也就是说把收到的接收序列Y

与格上任何一个序列C之间要算

汉明距离 我们已经定一步

汉明距离了

算汉明距离

算多少个

一共要算二的100次方的距离

从这里面找一个最小的

最小值所对应的序列

就是它最大似然译码的结果

我只是说说大家看

它就是个理论工具

实用化没有办法做

因为存储量是天文数字

我们没有办法实现

并且搜索量比较量

都是指数爆炸的

那么维特比算法

理论上来讲

它的性能就等价于最大似然译码

但是它的计算量

要远远的小于最大的似然译码

它是一个非常巧妙的算法

下面我们先给大家讲一讲

维特比算法的基本设计思路

然后通过一个例子

来给大家介绍

维特比算法

到底具体是怎么算的

维特比算法的基本思路

实际上是一种

在格图上进行搜索的时候

提前就部分搜索和比较

提前删除一些

非法

或者竞争失败路径

最大限度的降低计算量的

这样的一种搜索过程

那么它的基本思路

我们通过一个身边就生活的例子

先给大家

举个生活例子说明一下

然后我们再来分析

它的迭代计算的过程

因为同学们每个人都有身份证

对吧

我们可以看把身份证的编码

因为身份证是18位编码

我们把身份证的编码

就可以看作

这也是一种编码序列

当然它是采用十进制编码

不是二进制

但是我们可以类比

你比如说我们身份证编码

比如说编出了这1101

08

然后叉叉叉叉

然后XX YY

ZZ.然后后面

还有

CD

E

F后4位

对吧

这就一共18位

假设说

现在公安部门要抓一个通缉犯

然后要在交通要道

比如说火车站

机场

要设卡去检查的身份证号码

那么也就是说

检查每个人的身份证的编码

看看是不是罪犯

也就是说把你的身份证号码

与罪犯的身份证号码

要做查找匹配

那么如果我们采用的

最似然译码的

这样的准则来进行

身份证的查找

这个罚度就极高

比如说我们举个例子

你拿到了一个身份证18位的

我就需要采用

最大似然译码的结果

是这么做的

就是我把这18位的身份证编码

与公安部所存储的大陆居民

数据库的14亿人

也接近14亿人的身份证序列的

一个一个比每一个身份证序列

要比14亿次

然后看

能不能找到一个最像的

最匹配的

就是我们的目标值

可是你想每一个序列都要穷举

14亿次

接近14亿次

所有的交通要道就全都被堵死了

对吧

光检查身份证

这个过程都要耗费很长时间

但是现实当中我刚才讲的

现实当中

我们经常会要抓一些

抓罪犯去

去核查身份证号码

从来没有出现过这种现象

就刚才讲的这种堵塞的现象

为什么

有人就有这种生活经验

它是很智能的

我们要去警务人员查询身份证

它根本不是说放到数据库里去穷

看这两个序列之间

是不是像长的一样

其实我们是怎么做的

咱们是智能化的筛选

比如说

我要找的罪犯

他是北京市海淀区的

那么我知道这个信息就是

我这故意留下的

110108

这就是北京市海淀区

那11这是

北京市0108

这是海淀区

是这样的一个编码

你要找到罪犯

我就知道

前6个数字是110108

那么我要比对身份证的时候

就没有必要

18位全比

我只要比较前面这6位

甚至我先比较这两位

因为只要罪犯是北京市的

像山西的河北的

你像其他的14的

23的等等

就不用比了

就直接在前两个数字当中

我就表把其他的

30多个省市的

这个序列就全删除到

如果前两个一样

我才比第3位第4位

是不是01

是不是海淀区的

然后还一样

我们再看08

大家看

我们在人的根据人的生活经验

我们在进行这种比对的时候

是逐段比对的的每一段

如果吻合

我们再看下一段

如果不吻合

直接就删减了

所以我们是逐段比较吻合的

保留

就相当于

我们就把幸存结构保留

如果不吻合的就竞争失败了我们

直接删掉

没有必要全系列都穷举

那么在一边比一边

一边筛选

一边比一边筛选

所以很快就能够查找到目标

结果

这就是维特比算法的设计思想

那么维特比算法它的搜索

也是利用了这种分段比较的过程

它不像最大似然译码的

要进行穷举全序列

全序列上面去计算的接收信号

与发送序列

树图上的候选序列之间的

汉明距离

而是逐段每段一边比一边选

那么这种逐段

比较和选择的操作过程

我们就把它总结为

这样的三步过程

简称叫做是ACS运算

A我们称为是add

所谓是加运算

C Compare

也就是比较运算

S selection也就是所谓的

选择运算

就采用这样的三步操作

ACS就是所谓的加

我们就能够实现

低复杂度的

最大似然

译码的结果

怎么加怎么选

我们通过这是图上的结构

来给大家说明

我们从这处理图上抽取出来一个

片段

这个片段

比如说我们从这儿抽

看看这是抽到叫观察

这是树图的结果

我们可以看到

在每一拍时钟

实际上是

像212这个地方

是4状态转移到4状态

任意两个状态

都会转移到某一个状态

所以我们把它抽取出来

你看到这相当于是K时刻的两

个状态

Sk中加个0

这个是sk

加个1两个状态

那么在K+1时刻也有个状态

比如说

Sk加1

对吧

我们进行了转移

我们假设说上面分支它的编码

比特是

如图所示

下面这个编码比特

我们假设说

如图所示

如图所示

两个比特

那么我们假设说

初始状态是从全0开始

已经找出来一个部分路径到了

Sk0状态

以及另外一个部分路径

是到了sk1状态了

对不对

所以

维特比算法当中

sk0 sk1

这两每一个状态

它都有一个度量

这个度量我们就称为是

状态度量

这个状态度量反映的是什么呢

它反映的是

从初始的全0状态出发

到达第k时刻

Sk0状态

就某一个状态

这个部分路径

它与接收序列之间的

汉明距离是不请大家听清楚

是部分路径

对吧

从0时刻到K时刻

这个部分路径

我已经选出来的部分路径

与接收序列之间的汉明距离

汉明距离

我们把它存到

这个状态当中去

就变成状态度量

那么sk0它有个状态度量

其实也就是我们用

MSK0表示

Sk1

也有一个状态

度量

我们用MSK1来表示

那么现在我们维特比算法

我们要从这样的一个K时刻

我们要往前推一步

就变成了K+1时刻前进了一步

那么前进一步在树图上

我们就差出来一个蝶形

我们叫做

butterfly叫做蝶型单元

sk0 sk1

转移到sk+1

这是个

一片就是一个蝶形

那么从K时刻

要移到K+1

这个时候

Sk+1状态就有两条路径

有两条路径大家看

就是上支路

你看是

从全0状态到

Sk0状态

这个部分路径

然后再加上分支

这不就是一条路径

下面这个制度

就从全0状态出发

到sk1状态

再加上一个分支

这也是一个路径

这有两条路径

那么这两条路径的汉明距离

怎么算

很简单

不就是K时刻

Sk0的状态度量

我们刚才讲着

已经算出来的部分汉明距离了

然后要

这就是所谓的加法操作

加什么

加一个分支度量

分支度量 我们假设说

从在第k拍时钟

接收信号序列是YK比如说YK0

YK1对吧

它收到了两个比特 YK0YK1

那么上支路的路径上的分支

编码比特是CK0CK1

我就可以计算

YK0

YK2和上面植入上面

它的编码比特向量

是CK0

CK

这都是两比特

这两个比特之间

可以算汉明距离

汉明距离

其实就反映了支路上面

接收信号

编码比特之间的

这这个距离差

叫汉明距离

对吧

把分支的距离叠加到状态

度量上去

这不就相当于是

上面路径扩展一步以后的

汉明距离

就路径的汉明距离

对不对

以此类推下支路

把状态度量sk一再叠加上呢

YK0 YK1与

CK2

CK3 它们之间的汉明

距离

这两个分支的汉明距离

加大下面的状态度量上去

这就相当于两个状态

各加一个分支度量

这就完成了第一步操作

就是加比选当中的

第一步加法操作

相当于分支度量

要加到状态度量上

这样就能算出来

扩展一步的

路径的部分汉明距离了

第二步就是比较

你不是算出两个距离吗

我们现在用的最大

最大似然在BSC信道当中

等效准则就最小距离准则

显然我们算出两个路径来

的汉明距离了

我们就要比较是什么

看谁大谁小

对吧

比完了以后

我们不妨假设说上支路小

也就是说前面比后面的小

那么小的我们就优选

最后我们就优选出来说上支路

这个部分路径是幸存路径

也就是说把它保留

更新为选择出来

作为 sk+1状态

它的状态都凉了

下支路这个路径

它是竞争失败路径

就丢弃了

所以这就进行了比较和选择

也就算出来了

K+1时刻某一个状态的

现存路径所对应的状态

度量了

每一个状态都得这么做

这就是加比选

那么这是它的核心操作

我们稍微再补充它的初始化

那么初始的时候

维特比算法的状态度量

怎么设定

大家看举的例子

212卷积码里面

这有4个状态

对吧

ABCD初始的时候

因为我们知道

它是从全0状态出发的

所以我们初始化权利状态

状态度量是0

其他状态都是这样的

我们就给个大局

度量越小可能性越大

度量越大可能性越小

理论上我们给个无穷大

实际当中你比如说1000

10000都行

随便 我们编程的时候

就有一个大致

这样的话

给定初值了

然后我们用加比选操作

在格图上

每走一步

就加比选通过计算分支度量

和状态度量进行累加

然后比较选择度量

最小的

作为幸存入竞丢弃

竞争失败路径

从开始一拍一拍一拍一拍

在这个图上做

到最后做完了以后

怎么选择最终的结果呢

我们把它假设

已经回到了全0状态了

从全0状态回溯

找 找出来的

回溯译码的结果

找出来是哪一个

我们把译码路径的信息位

读出来

那就是译码的结果了

所以维特比算法的基本设计思路

就是采用的加比选操作

来实现整个的译码结果

那么我们刚才已经给大家讲过了

维特比算法的基本思路了

我们给大家做一点归纳和总结

维特比算法

它在性能上

是可以达到的

最大似然译码的性能的

那么维特比算法

它的复杂度

我们可以简单做个评估

最大的似然译码

算法

刚才我们提到过

假设说帧长是N

最大似然译码算法

它的复杂度

实际上我们是要进行穷举的

因此它的算法复杂度

应当是2的N次方

对于维德比算法来讲

它的算法复杂度

我们可以这样算

因为相当于trellis里面有N节

每一节

它其实有2的 km次方的状态

那么每一个状态

它要进行加比选操作

要有2的K次方的分支

因此要做2的K次方次

加法操作

然后进行比较和选择

因此它的计算复杂度

应当是2的K×M+1

的计算量

所以明显大家能够看到

维特比算法的计算量

要远小于最大似然

因为最大似然

它是一个指数复杂的算法

正常是在指数上

而对于维特比算法复杂度

是与帧长成线性比例关系

它的计算复杂度

主要是受约束长度的限制

M+1就约束长度

一般对于中等约束长度的卷积码

那么维特比算法法则并不太高

所以它是既具有理论上最优的

性能

又具有比较低的

复杂度的

一种非常好的译码方法

在实际的数字通信系统当中

只要用卷积码算法

现在最流行的一码方法

就用维特比算法

那么维特比算法

自从1967年

由安德鲁维特比发明以来

已经广泛的应用到了

各个通信领域当中

比如说像卫星通信

数字地面广播

还有移动通信系统当中

都普遍采用了

卷积码编码和维特比算法

前面两部分就是我们

给大家介绍的

线性分组码

和卷积码的基本知识

移动通信原理课程列表:

第一章 移动通信的发展历程

-1.1 前言

--1.1 前言

-1.2 移动通信发展的回顾

--1.2 移动通信发展的回顾

-1.3 第四代移动通信技术

--1.3 第四代移动通信技术

-1.4 第五代移动通信技术

--1.4 第五代移动通信技术

-1.5 未来移动通信技术

--1.5 未来移动通信技术

-第一章 作业

--第一章 作业

-第一章 课件

第二章 无线传播与移动信道

-2.1 移动信道的特点

--2.1 移动信道的特点

-2.2 三类主要快衰落

--2.2 三类主要快衰落

-2.3 传播类型与信道模型的定量分析

--2.3 传播类型与信道模型的定量分析

-2.4 无线信道模型

--2.4 无线信道模型

-第二章 作业

--第二章 作业

-第二章 课件

第三章 多址技术与扩频通信

-3.1 多址技术的基本概念

--3.1 多址技术的基本概念

-3.2 移动通信中的典型多址接入方式

--3.2 移动通信中的典型多址接入方式

-3.3 码分多址CDMA中的地址码

--3.3 码分多址CDMA中的地址码

-3.4 伪随机序列(PN)和扩频码的理论基础与分析

--3.4 伪随机序列(PN)和扩频码的理论基础与分析

-第三章 作业

--第三章 作业

-第三章 课件

第四章 信源编码与数据压缩

-4.1 语音压缩编码

--4.1 语音压缩编码

-4.2 移动通信中的语音编码

--4.2 移动通信中的语音编码

-4.3 图像压缩编码

--4.3 图像压缩编码

-4.4 我国音视频标准

--4.4 我国音视频标准

-第四章 作业

--第四章 作业

-第四章 课件

第五章 移动通信中的鉴权与加密

-5.1 概述

--5.1 概述

-5.2 保密学的基本原理

--5.2 保密学的基本原理

-5.3 GSM系统的鉴权与加密

--5.3 GSM系统的鉴权与加密

-5.4 IS-95系统的鉴权与加密

--5.4 IS-95系统的鉴权与加密

-5.5 3G系统的信息安全

--5.5 3G系统的信息安全

-5.6 B3G与4G系统的信息安全

--5.6 B3G与4G系统的信息安全

-第五章 作业

--第五章 作业

-第五章 课件

第六章 调制理论

-6.1 移动通信系统的物理模型

--6.1 移动通信系统的物理模型

-6.2 调制/调解的基本功能与要求

--6.2 调制/调解的基本功能与要求

-6.3 MSK/GMSK调制

--6.3 MSK/GMSK调制

-6.4 π/4-DQPSK调制

--6.4 π/4-DQPSK调制

-6.5 3π/8-8PSK调制

--6.5 3π/8-8PSK调制

-6.6 用于CDMA的调制方式

--6.6 用于CDMA的调制方式

-6.7 MQAM调制

--6.7 MQAM调制

-第六章 作业

--第六章 作业

-第六章 课件

第七章 信道编码

-7.1 信道编码的基本概念

--7.1 信道编码的基本概念

-7.2 线性分组码

--7.2 线性分组码

-7.3 卷积码

--7.3 卷积码

-7.4 级联码

--7.4 级联码

-7.5 Turbo码

--7.5 Turbo码

-7.6 交织编码

--7.6 交织编码

-7.7 ARQ与HARQ简介

--7.7 ARQ与HARQ简介

-7.8 信道编码理论上的潜在能力与最大编码增益

--7.8 信道编码理论上的潜在能力与最大编码增益

-7.9 GSM系统的信道编码

--7.9 GSM系统的信道编码

-7.10 IS-95系统中的信道编码

--7.10 IS-95系统中的信道编码

-7.11 CDMA2000系统的信道编码

--7.11 CDMA2000系统的信道编码

-7.12 WCDMA系统的信道编码

--7.12 WCDMA系统的信道编码

-第七章 作业

--第七章 作业

-第七章 课件

第八章 分集与均衡

-8.1 分集技术的基本原理

--8.1 分集技术的基本原理

-8.2 RAKE接收与多径分集

--8.2 RAKE接收与多径分集

-8.3 均衡技术

--8.3 均衡技术

-8.4 增强技术与应用

--8.4 增强技术与应用

-第八章 作业

--第八章 作业

-第八章 课件

第九章 多用户检测技术

-9.1 多用户检测的基本原理

--9.1 多用户检测的基本原理

-9.2 最优多用户检测技术

--9.2 最优多用户检测技术

-9.3 线性多用户检测技术

--9.3 线性多用户检测技术

-9.4 干扰抵消多用户检测器

--9.4 干扰抵消多用户检测器

-第九章 作业

--第九章 作业

-第九章 课件

第十章 OFDM技术

-10.1 OFDM基本原理

--10.1 OFDM基本原理

-10.2 OFDM中的信道估计

--10.2 OFDM中的信道估计

-10.3 OFDM中的同步技术

--10.3 OFDM中的同步技术

-10.4 峰平比(PAPR)抑制

--10.4 峰平比(PAPR)抑制

-第十章 作业

--第十章 作业

-第十章 课件

第十一章 MIMO空时处理技术

-11.1 多天线信息论简介

--11.1 多天线信息论简介

-11.2 空时块编码(STBC)

--11.2 空时块编码(STBC)

-11.3 分层时空码

--11.3 分层时空码

-11.4 空时格码(STTC)

--11.4 空时格码(STTC)

-11.5 空时预编码

--11.5 空时预编码

-11.6 MIMO技术在宽带移动通信系统中的应用

--11.6 MIMO技术在宽带移动通信系统中的应用

-第十一章 作业

--第十一章 作业

-第十一章 课件

第十二章 链路自适应技术

-12.1 引言

--12.1 引言

-12.2 多功率控制原理

--12.2 多功率控制原理

-12.3 功率控制在移动通信中的应用

--12.3 功率控制在移动通信中的应用

-12.4 无限资源的最优分配

--12.4 无限资源的最优分配

-12.5 速率自适应

--12.5 速率自适应

-第十二章 作业

--第十二章 作业

-第十二章 课件

第十三章 B3G与4G移动通信系统

-13.1 标准化进程

--13.1 标准化进程

-13.2 HSPA系统

--13.2 HSPA系统

-13.3 EVDO系统

--13.3 EVDO系统

-13.4 LTE系统

--13.4 LTE系统

-13.5 WiMax系统

--13.5 WiMax系统

-第十三章 作业

--第十三章 作业

-第十三章 课件

第十四章 TDD移动通信系统

-14.1 TDD原理

--14.1 TDD原理

-14.2 TD-SCDMA

--14.2 TD-SCDMA

-14.3 UTRA TDD

--14.3 UTRA TDD

-14.4 TD-HSPA

--14.4 TD-HSPA

-第十四章 作业

--第十四章 作业

-第十四章 课件

第十五章 移动网络的结构与组成

-15.1 移动网络的概念与特点

--15.1 移动网络的概念与特点

-15.2 从GSM/GPRS至WCDMA网络演讲

--15.2 从GSM/GPRS至WCDMA网络演讲

-15.3 第三代(3G)移动通信与3GPP网络

--15.3 第三代(3G)移动通信与3GPP网络

-15.4 从IS-95至CDMA2000网络演讲

--15.4 从IS-95至CDMA2000网络演讲

-15.5 B3G与4G移动通信网络

--15.5 B3G与4G移动通信网络

-第十五章 作业

--第十五章 作业

-第十五章 课件

第十六章 移动网络运行

-16.1 移动通信中的业务类型

--16.1 移动通信中的业务类型

-16.2 呼叫建立与接续

--16.2 呼叫建立与接续

-16.3 移动性管理

--16.3 移动性管理

-16.4 无线资源管理RRM

--16.4 无线资源管理RRM

-16.5 跨层优化

--16.5 跨层优化

-第十六章 作业

--第十六章 作业

-第十六章 课件

7.3 卷积码笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。