-
通信专题讲座
XXX
大
学
研究生课程考试答题本
考生姓名
考生学号
系、年级
类
别
考试科目
通信专题讲座
考试日期
2013
年
1
月
1
通信专题讲座
评
分
题号
总分
:
评卷人
:
注
: 1
无评卷人签名试卷无效。
2
得分
题号
得分
必须用钢笔或圆珠笔,使用红色。用铅笔阅卷无效。
2
通信专题讲座
SBPSK
的
Viterbi
译码的改进
1
课程报告问题来源及行文安排
这篇报
告为通信专题讲座的课程报告,
最重要部分是对徐争光老师在课堂上
讲解
SBPSK
的解调的
Vite
rbi
译码进行改进。徐老师在讲解
SBPSK
的解调时提
到了三种解调方式,即匹配滤波、改进的匹配滤波和
Viterbi
译码(算法)
。徐老
< br>师根据以往发表的有关
PSK
信号解调的
Viterbi
译码的文章(如参考文献
[1][2]
)
指出,
通过
Viterbi
译码
(算法)
解调译码
得到的码字的比特误码率
(
BER
,<
/p>
Bit Error
Rate
)应该是
在所有存在的方法中是最小的,但徐老师根据
Viterbi
译
码(算法)
的思想编写代码,
并与匹配滤波和改进的匹配滤波的
效果进行比较,
发现
Viterbi
译
码并没有很大的优势,
如图一所示,
不仅过程复杂,
在代码量上也远超过匹配
滤波和改进的匹配滤波的代码量。因此本文根据徐
老师的思路,对
Viterbi
译码
进
行了改进,并与原来的
Viterbi
译码结果比较,发现改进
的
Viterbi
译码性能要
优于原来
的
Viterbi
译码,但与匹配滤波和改进的匹配滤波相比仍
然没有优势。
在结尾将会分析其原因。
10
0
10
-1
维
特
比
译
码
普
通
匹
配<
/p>
滤
波
改
进
的
匹
配
滤
波
理
论
误
码
率
10
-2
B
E
R
10
< br>-3
10
-4
10
-5
10
-6
0
1
2
3
4
5
E
b
/n
< br>0
6
7
8
9
10
图一
徐老师上课仿真的结果
3
通信专题讲座
本文下
面章节的安排如下,
在第
2
节会介绍<
/p>
SBPSK
;
在第
3
节会介绍
Viterbi
译码(算
法)的思想;第
4
节为本文的重点,主要介绍改进原来
Viterbi
译码的
问题,和改进
Viterbi
译码的过程,并会对两者进行对比;最后一节为总结和感<
/p>
想。
2
SBPSK
(
Shaped
Binary Phase-Shift Keying
)
<
/p>
SBPSK
即整形的二进制相移键控(
S
haped Binary Phase-Shift Keying
)
。根据
文献
错误!未找到引用源。
,
SBPSK
在一个数字的调制器中产生,这个调制器的<
/p>
带宽控制是通过波形的设计而不是后调制滤波
(
< br>post modulation filtering
)
实现的。
从而能够精确地控制相位和限制在每个相位状态上的相位偏移。
其合成的恒包络
能够提高硬限幅的卫星信道性能,因为与
BPSK
相比
SBPSK
旁瓣下降
更快。图
二为
SBPSK
和
BPSK
的波形比较,可以看出
SBPSK
的相位是连续变化的,不
会存在
BPSK
p>
中相位突变的情况。
图二
SBPSK
和
BPSK
的波形比较(来自参考文献
[3]
)
SBPSK
的优势上面已经提到,劣势(文献
[3]
)是整形
降低了检测效率,对
于一个积分转检测器(
integrate
and dump detector
)
,
50%
整形的
BPSK
的损失的<
/p>
检测率为
1dB
。
SBPSK
信号可用下面的式子表示:
s
?
t
p>
?
?
e
j
?
?
t
?
(
1
)
4
通信专题讲座
其中,
?
?
t
?
?
?
?
f
?
A
?
a
?<
/p>
t
?
?
?
g
?
?
t
?
,
a
?
t
?
?
?
a
n
g
?
?
t
?
nT
?
,
g
?
?
p>
t
?
?
u
?
t
?
?
u
?
t
?
< br>?
T
?
,
n
f
?
A
?
?
?
1
,
p>
?
为系数,
如当
?
=0.5
时,
就称为
< br>50%
整形的二进制相移键控
(
50%
SBPSK
)
。
3
Viterbi
译码(算法)
Viterbi
译码最早是
在
1967
年有美国的
Viterbi
提出的一种卷积码的译码算
法,
后来在
1969
年
Ommur
a
证明
Viterbi
算法实际上等价
于在加权图上求最短路
径的正向动态规划解。
1973
年
Forny
认识到
V
iterbi
算法是卷积码的最大似然译
码算法,也就是说是一
种最佳的译码算法,
[5]
。
假设发送码字为
v
,接收码字(矢量)
r
的长度为
L
,
p>
Viterbi
译码或者说是
最大似然序列
检测就是要解决如下优化问题:
max
P
(
r
|
v
)
(
2
)
p>
v
强力穷举搜索需要的复杂度随着长度
L<
/p>
而呈现指数增长。
高效的算法必须利用这
一问题的结构,
而且关于
L
是递归的,
这样就不必对每个码元时间都从零开始解
决问题,
[6]
。
对于离散无记忆
信道来说,发送序列
v
的似然函数为
P
(
r
|
p>
v
)
?
?
P
(
r
i
|
v
i
)
< br>
(
3
)
p>
i
?
0
L
相应的对数似然函数为
log
P
(
r
|
v
)
?
?
log
P
(
r
i
|
v
i
)<
/p>
(
4
)
p>
i
?
0
L
采用最大似然译码算法(
Viterbi
算法)
要求在所有可能的
码字序列中选取一条
使似然函数(
4
)极大的码字序列作为发送码字序列的估计,
如果记这个最大似
?
,则
然码字序列为
v
?
?
p>
arg
max
log(
r
|
v
)
(
5
)
v<
/p>
v
?
Ω
其中
p>
Ω
表示从初始状态
S
0
出发,所有长度为
L
,最终回到<
/p>
S
0
状态的码字序列集
< br>合。
这里把
log(
r
|
v
)
称为与路径
v
有关的度量,记为
?
(
r
|
v
)
,和式(
4
)中每一
个分量
log
P
(
r
i
|
v
i
)
称为分支度量,记为<
/p>
?
(
r
i
|
v
i
)
,所以
L
?
(
r
|
v
)
?
?
?
(
r
i
|
v
i
)
(
6
)
p>
i
?
0
表示一条路
径上的度量为各分支度量之和。
对于不同的传输信道,分支度
量和路径度量有不同的含义。在
[5]
中,对于
5
通信专题讲座
二元对称信道,路径度量为
?
(
r
|
v
)
?
?
?
(
r
i
|
v
i
)
?
?
?
d
i
?<
/p>
?
L
(
7
)
p>
i
?
0
i
?
0
L
L
?
和
?
是与
v
i
无关的常数,
d
i
为
r
i
和
v
i
之间的
Hamming
距离,这时最大似然译
码要求在所有
可能的路径中选取一条与接收序列
Hamming
总距离最小的
路径作
为发送序。
,这种定义常常作为许多编码教材的默认定义
。
对于
AWGN
信道,
L
n
?
(
r
|
v
)
?
C
??<
/p>
r
ij
?
x
p>
ij
?
DL
(
8
)
p>
i
?
0
j
?
1
x
ij
为电平转化后的信号,
r
ij
为接收到的带有高斯白噪声的信号,
C
和
< br>D
为常数。
最大似然译码要求选择一条与接收序列互相关
最大的路径作为发送路径。
老师在
课堂上定义的最小距离,即<
/p>
d
?
?
r
?
t
?
?
s
?
t
?
dt
??
?
?
2
?
?
?
?
?
?
??
?
?
r
?
t
?
?
s
p>
?
t
?
?
?
r
?
t
?
?
s
?
< br>t
?
?
dt
?
?
??
?
??
?
r
?
t
?
?
r
?<
/p>
t
?
2
?
s
?
t
?
?
?
s
?
t
?
r
?
t
?
?
r
?
t
?
s
?<
/p>
t
?
?
dt
p>
2
?
?
?
?
s
?
t
?
?
2
Re
?
s
t
r
?
?
?
t
?
?
?
?
dt
2
?
2
?
p>
最短距离等价于最大相关度
?
D
?
Re
?
?
s
?
t
< br>?
r
?
?
t
?
dt
?
(
9
)
p>
?
?
?
??
?
这个结果与教材
[5]
中
AWGN
信道的路径度量一致。
Viterbi
译码的精髓在于它并不是对可能的每条路径均计
算相应的路径度
量,而是对于进入到每一个状态(可用波形、寄存器状态等)只保留其中
一条
具有最大部分度量的路径,这条被保存的路径被称为幸存路径,其它路径则舍
弃。
L-1
更短的
路径
L
V
*
V
i
i-1
图三
动态规划原理(根据文献
[6]67
页重新绘制的示意图)
6
通信专题讲座
如图三
所示
Viterbi
译码相当于是一个在加权图上求最短路径的
正向动态规
划问题。
Viterbi
译
码正式基于如下事实,
即在第
L
层到达
状态
v
i
的最短路径在第
(
L
?
1)
层通过
v
i
*
?
1
,则第
(
L
?
1)
层之前的部分路径本
身比为到达状态
v
i
*
?
1
的最短路
径。因此为了计
算到达第
L
层的最短路径,只要扩大到计算第
< br>(
L
?
1)
的最短路径
就足够了,而这些已经计算出来了。
4
Viterbi
译码改进
通过上面两章的介绍,我们队
SBPSK
和
Viterbi
译码已经有了一定的了解。
下
面重点介绍对徐老师程序的改进(主要以叙事的方式介绍思考过程)
。
< br>
当初选择这个问题作为自己的课程论文是因为以前对纠错编码有一定的了
解,而且通过徐老师对
Viterbi
译码的
讲解,本身对
Viterbi
译码也很感兴趣,虽
然在课堂上提了一些问题而且也得到了解答,但仍然对于
Viterbi
p>
译码的细节有
些疑惑,于是在课外去图书馆借了两本编码的书
[5]
和
[7]
,将
Viterbi
译码仔细看
了一遍。这
两本书都是以卷积码的译码为例来讲解的,但
[5]
对
Viterbi
译码的介
绍更加详细,
虽是基于卷积码的译码来讲,
但对于分支度量和路径度量的定义也
介绍了些,其中有些部分与徐老师课堂上内容吻合,比如最短路径的定义等。
< br>
学习完
Viterbi
译码后
,我对老师的长须有很多疑问。刚开始时,由于受卷
积码的影响很深,我觉得可能只有经
过编码的码字才能进行
Viterbi
译码,因为
这样的码字才可能具有记忆性,
但后来在周三时请教了徐老师,
发现码元其实已
经进行了简单的译码,即偶数“
1<
/p>
”变为“
-1
”
,奇数“
1
”为“
1
< br>”
,
“
0
”仍然为
“
0
”
。
所以在这方面是不存在问题的。
接着我又怀疑是不是分支
度量和路径度量
的定义错了,
因为从书上看到的都是
Hamming
距离,
虽然老师在课堂上解释过,
但仍有疑惑。后来还是在
[5]
中找到
了依据,对于不同的信道而言,分支度量和
路径度量的定义可以是不同的。
因此最短距离定义也是没有问题的。
我又把书仔
细看
了一遍,
重点查找书中介绍
Viterbi
译码时应该注意的问题,
最后在
[5]
中
363
页找到了这句话
“正如上
面两小节介绍的,
标准的算法要求路径都回到初始零状
态,才能
最后判决出最优路径,这要求在传输中最后添加
M
个“
0
”……”
。于
是我又
尝试简单地将码元初始的
100
个和结尾的
100
个强置为
0.
仿真后发现仍
然
没有效果。
接下来,
我仔细阅读徐老师的代码,
对于
pathstate
这个变量不是很理解,
在
深入思考后,
感觉老师的代码有些复杂,虽然徐老师将状态分为“
0
”和“<
/p>
1
”
,
但其实因
为“
1
”状态又分为“
1
”和“
-1
”
,虽然在程序
有体现,但在网格图上
即路径上并没有体现出来。于是我试着将状态按“
0
”
、
“
1
”
、
“
-1
”来分,不考虑
翻转问题,因为“
1
”和“
-1
”这两种状态在某种程度
上就已经代表了翻转。于
是去掉了后面状态的翻转,
paths
tate
则是根据例子推导出来的,发现按照
3
个状
态来表示,
pathstate
< br>的值保持不变。
下面举例来说明译码过程即
pathst
ate
的获取。
7
-
-
-
-
-
-
-
-
-
上一篇:常用英语缩略词表
下一篇:商用英文术语集锦 Commercial English