Turbo 码
1: turbo 码的编码介绍
1.1:框图
一个常见的 Turbo 码编码器如图所示。两个分量编码器之间通过交织器相连,分量编码
器对相同的输入信息进行编码,交织器保证两个分量编码器输出信息尽量不相关。通常输出
的信息比特序列只需要从任何一个分量编码器中选取即可,但考虑到实现问题,选取不经过
交织的那一路比特序列要方便得多。另外,为了能够提高编码速率,两个分量编码器输出的
校验比特序列经删余和复用后输出,信息比特序列一般不进行删余处理。
1.2:分量编码器介绍
上图给出编码约束度 K=3,生成多项式 1
2
(
g g
)
,
(7,5)
的 RSC 编码框图。若 k 时刻的输入
比特位 ku ,则输出的字码 kx 是一个二进制比特对 (
p
kx 称为校验比特。记位移寄存器的输入 ka ,则:
x x ,其中, s
s
x
k
k
p
k
)
,
u 称为信息比特,
k
a
k
u
k
k
1
i
1
g a
u k
1
p
x
k
k
1
i
0
g a
2
i
k
1
对 K=3 的 RSC 码,他的状态转移和时间的关系可以形象用网格图表示,对于 K=3 的情况一
共有 4 个状态,而且没一个状态有两个转移状态,分别对应+1 或-1 的情况,分支上的数据
分别表示 K 时刻 RSC 编码器的输入和输出,若 k-1 时刻 RSC 编码器处于 0 状态,并输入 0
时,则 k 时刻编码器仍处于 0 状态,并输出 00,当输入 1 时,则 k 时刻编码器转到 2 状态,
并输出 11.
1.3:交织器介绍
交织器是Turbo码编码器主要的组成部分,也是Turbo码的重要特征之一。线性码的纠
错译码性能实质上是由码字的重量分布决定的,Turbo码也是线性码,所以其性能也是由码
字重量分布决定。在传统的信道编码中,所使用的交织器一直是分组交织器或卷积交织器,
其目的主要是抗信道突发错误,即将信道或级联码内码译码器产生的突发错误随机化,把由
于受到噪声干扰而导致具有相关性的数据恢复成相互独立的
交织器是一个映射函数
优点:1:作用:将输入信息序列中的比特位置进行重置,以减小分量码输出校验序列的
相关性和提高码重。2:从相关性层面上看,交织器最大可能地置乱输入信息序列的顺序,降
低了输入/输出数据的相关性,使得邻近码元同时被噪声淹没的可能性都大大减小,从而增
强了抗突发噪声的能力 3: 从码重层面上看,交织器增大了校验码重,尤其是改善了低码重
输入信息序列的输出校验码重,从而增大了码的最小自由距离,提高了纠错能力。
缺点:带来了一定的编、译码延时,交织深度越大,延时也越大,但同时性能也越好
设计性能较好的交织器的特点和基本原则:(1)通过增加交织器的长度,可以使译码性
能得到提高;(2)交织器应该使输入序列尽可能地随机化,从而避免编码生成低重码字的信
息序列在交织后编码仍生成低重码字,导致turbo码的自由距离减小
1.4:删余模块
一切差错控制编码都是有冗余的,传输时扣除部分比特并不妨碍信息的还原,只是
有可能损失一些编码增益。实际系统中通常需要结合编码增益、速率匹配等因素对编码
器的输出进行删余处理。当编码器有多路并行输出时(比如卷积码、Turbo码),为了同
后接的系统(通常是串行通信)匹配,还需要以时分复用的方式合成一路比特流。Turbo
码编码结构中的删余器一般以开关单元代替,其作用是调整总编码速率,即通过对两次
编码的校验序列进行删除和复合,调整实际的校验位数。如当用两个R=1/2的RSC作为
成员码时,交替的选取两个校验序列使各有一半发送出去就可得到总速率为1/2的
Turbo码,而当校验序列全部发送出去的时候则得到1/3速率的Turbo码。一般情况下,
删余之后的Turbo码的码率为1/2或1/3。相对应的删余矩阵为P=【1 0,O 1】或P=[1,1】。
Turbo码中,删余器通常比较简单,因为在一般的应用中,码率都是在1/2或者1/3,
因此即使有删余器,它一般也只是周期性的从两个分量编码器中选择校验比特输出即
可,不过对于码率大于1/2的情况,假设Turbo码由编码速率相等的两个分量编码器和
一个交织器构成,而速率为k/n的分量编码器,可以通过每传送k个信息比特,就传送n
—k个校验比特的方法来获得,同时,由于k个信息比特经过交织器编码后,同样还要产
生n一k个校验比特,因此,此时的Turbo码的速率可以达到k/(2n-k),用这种方法调整H
和k的值就可以得到不同速率的编码输出。
2:turbo 码的译码介绍
2.1:译码结构图
一般,Turbo 码的编码部分由两个子编码器组成 ,在其译码部分也就相应有两个子译码
器。一般情况下 ,两个子译码器可采用多级级联结构。由于 Turbo 码第二个子编码器的信息
位没有输出 ,第二个子译码器只能利用第一个子译码器译出的信息序列进行译码。软判决译
码比硬判决译码性能提高 2~3dB,因此每一个子译码器都用软输入软输出译码器。译码器工
作原理如下:由于接收序列为串行数据 ,首先要进行数据的串/并转换 ,同时将删除的比特
位填上“虚拟比特”(不影响译码判决的值如 0)。将经过串/并转换后的 xk,y1k 送入子译码器
1 译码 ,并产生关于 dk 改进的外信息Λ1e(dk)。由于译码器 1 没有用到可能提高后验概率的校
验序列 y2k,所以译码器 1 的输出仅在交织后作为译码器 2 的先验信息输入,而不能作为对信息
序列的判决。将 xk 和Λ1e(dk)交织后作为子译码器 2 的软输入 ,子译码器 2 根据译码算法对
xk, Λ1e(dk)和 y2k 用与子译码器 1 同样的方法再次产生信息比特改进的外信息Λ2e(dj),经去
(~
e d
2
交织后得到
)
k
作为下一次迭代中子译码器 1 的先验信息。这样在多次迭代后,对子
译码器 2 产生的输出Λ2(dj)去交织后进行硬判决,得到每个信息比特dk 的估值 kdˆ
2.2:译码算法
MAP 算法一如各信息位 ku 的对数似然比作为软判决:
L
u
k
log
k
(
P u
r
(
P u
r
k
1/
0 /
N
R
1
N
R
1
)
)
kP u
r
(
)N
i R
1
/
是信息位 ku 的最大后验概率 APP(i=0 或 1), ku 为软输出,其符号是 ku 的
硬判决:
L
L
u
k
u
k
0,
u
k
1
0,
u
k
1
其中 L
ku
代表判决的可靠程度,幅值越小,其判决的可靠性越小。
进一步可得:
L
u
k
log
n
'
,
s s
1
u
k
n
'
,
s s
0
u
k
'
(
,
p s s y
,
'
(
,
p s s y
,
)
)
,联合概率 '(
p s s y 指信息位 ku 为 1 或 0 时所
)
,
,
有存在状态 's 至 s 的路径。当信道为无记忆时联合概率 '(
p s s y 可写为三个独立的概率之
)
,
,
积。 '(
p s s y =
)
,
,
'
(
,
p s s y
,
)
,
p s y
'
j k
. ( ,
p s y
k
/
'
). (
s p y
j k
/ )
s
j ky 表示从开始至 k-1 时刻所接受的 y 序列, j ky 对应从 k+1 时刻至最终所接受的系列
设:
'
a
s
1
k
)
(
s
k
'
, )
(
s s
k
'
'
'
,
p s y
j k
(
/ )
p y
s
j k
'
). (
( /
p s s p y
[
p s
[(
p y
/
,(
y
0
,...,
1
k
'
, )
s s
k
,...,
y
N
y
)]
1
k
) / ]
s
1
前向迭代:
a s
k
k
'
(
, )
s s a
k
1
'
s
,
s
后向迭代:
k
1(
'
s
)
k
s
(
'
, )
s s
k
( )
s
进过整理简化可以得到: L
ku
=
L y
c
,
k i
(
L u
k
)
log
k
(
'
, )
s s a
k
1
'
s
k
( )
s
k
(
'
, )
s s a
k
1
'
s
k
( )
s
'
,
s s
1
u
k
'
,
s s
0
u
k
3: simulink 仿真
3.1:整体图
3.2:编码图
3.3:译码图
3.4:输出图形
Cope4
Cope
Cope5
4:matlab 仿真
4.1:编码约束度的影响
4.2:译码迭代次数对 Turbo 码的影响
仿真结果可以看出,随着迭代次数的增加,Turbo 码的误比特率曲线不断降
低并趋于收敛;而且随着信噪比的增加,迭代对误比特率性能的影响越来越明显。
这是 Turbo 码通过迭代译码充分利用冗余信息来提高编译码性能这一特点的反
映。最初,迭代译码的增益较高,但随着迭代次数的增加,译码增益增长相对缓
慢,虽然继续增加迭代次数可以提高 Turbo 码的性能,但权衡迭代所需要的时间、
性能改善的幅度,我们通常都选取合适的迭代次数。
4.3:交织长度对 turbo 码的影响
Turbo 码的误比特率与信噪比的关系曲线。
交织长度越大,性能就越好,而且交织长度对性能的影响是很大的,这是由
于交织器的存在所产生的所谓交织增益,使得Turbo码的性能随交织长度的增长
而改善且在交织长度足够长时接近信道容量。交织长度是决定Turbo码性能的一
个重要因素。另外,Turbo码性能的另一个重要因素是迭代译码所产生的译码复
杂度,所以我们有必要在短帧的情况下,将Turbo码与采用最大似然译码算法的
卷积码纠错性能和复杂度作一个比较。在高斯信道环境下作了仿真比较,得到在
同样信噪比的条件下,要达到 310 级BER的要求时,卷积码的复杂度小于Turbo
码,在瑞利衰落信道下,结论也相似。由上述结论可知,在对帧长有要求的移动
通信系统中,在一定的误码率要求下,Turbo码并不是最佳的准则,在考虑译码
复杂度的情况下,卷积码反而比Turbo码具有更好的性能。反之,对于帧长较长
的情况下,采用Turbo码将更有优势。
同时,我们还应该注意到交织深度和编译码时延之间还存在着一个兼顾的问
题。Turbo码的时延包括编码时延、码组传输时延、译码器时延及交织和解交织
时延。交织长度越长,时延也越大。通信系统中,时延是个很重要的因素,实时
的通信系统中总是对时延提出了较高的要求。在实际的应用中,需要根据时延的
要求来确定最佳的码长。
4.4:不同译码算法的影响
目前 Turbo 码译码算法主要有 MAP 算法、Log-MAP 算法、Max-Log-MAP 算法