1
低信噪比条件下 Turbo编译码算法研究及性能评估*
肖扬 黄和斌
北京交通大学 信息科学研究所,北京 100044
摘 要:由于 Turbo 码优异的纠错性能,CDMA2000 与 WCDMA 将其作为候选的信道编码方案。本文研
究了 Turbo 码的基本原理和编解码算法,在此基础上对 Turbo 码编解码系统进行了低信噪比环境下的计算
机仿真。本文设计的 Turbo 码编解码采用了伪随机交织器,它将低重量输入信息序列产生低重量编码序列
的关系打破,提高了 Turbo 码编解码系统性能。系统仿真结果及分析表明有译码迭代次数、RSC 分量码,
交织器大小与交织器图等几个因素会影响 Turbo 码编解码系统性能。
关键词 无线通信;Turbo 码;LOG-MAP 算法;迭代译码
中文分类号: 文献标识码:A
Analysis and Evaluation for Turbo Coding and Decoding Arithmetic Based
on Low SNR
XIAO Yang HUANG He-bin
Institute of Information Science, Beijing Jiaotong University, Beijing 100044, China
Abstract: Due to their excellent performance of error correcting, turbo codes have selected channel coding
schemes for CDMA2000 and WCDMA. This paper studies the basic principle of turbo codes and their coding and
decoding algorithms, on the basis of which the computer simulation are made in the environment of lower SNR.
Additionally, the interleaver we designed for the Turbo encoder and decoder system adopts the pseudo-random
interleaver, it breaks the relation that low weigh input sequence produces low weigh code sequence, and improves
the performance of the Turbo encoder and decoder systems. Moreover, our simulation results and analysis for the
Turbo code systems show that some factors, such as the number of the iterations of the decoder, RSC codes, the
length of interleaver, and the interleaver map, will influence the performance of Turbo encoder and decoder
systems.
Key words: wireless communications; Turbo codes; LOG-MAP algorithm; Iterative decoding
0 引言
Turbo码自 1993 年被提出以来[1],就以其优异的纠错性能而受关注 [2-7]。Turbo码是用短码去构造等
效意义的长码,以达到长码的纠错性能而减少解码复杂度。在强噪声低信噪比的条件下,如Eb/N0=,
采用编码效率R=1/2 的Turbo码,经过 18 次迭代译码后,仍具有极低的误码率 [1,2]。Turbo码的这一特性
对于强噪声电子干扰环境下数字通信与数字信号传输具有重要的应用价值。
Turbo 码不同于其它编码,主要是由于采用了以下 3 种技术:1) 递归系统卷积码(RSC)作分量码;2) 随
机交织器;3) 软输出迭代译码算法。本文的第一部分讨论了 Turbo 码的编码器,涉及 RSC 编码器的结构、
网格结束方案、交织器和速率匹配;第二部分讨论了 Turbo 码的译码器,涉及译码器的结构和 LOG-MAP
译码算法;在第三部分中,研究了系统仿真模型;在本文的最后,我们讨论了一些主要因素对 Turbo 码性
能的影响并给出了其性能曲线图。
1 Turbo 码的编码器
_____________________________________________
*国家自然科学基金资助课题(69971002)。
作者简介:肖扬,男,1955-,教授,博士,博士生导师。
Turbo 编码器是一流水线结构 [1,2]。如图 1,由于交织器的存在,两个递归系统码卷积码编码器的
输出而不具有相关性。Turbo 码编码器是由两个反馈的系统卷积码编码器通过一个随机交织器并行连接而
成的,编码后的校验位经过删余阵,产生不同码率的码字[1-7]。
交织器
分量码编码器
(RSC1)
分量码编码器
(RSC2)
删
余
复
用kY
1kY
2kY
信息序列dk
'
kd
图 1 Turbo 编码器结构框图
下面对 Turbo 码编码器的各个部分作详细的研究。
递归系统卷积码(RSC 码)编码器
假设一个编码效率为 1/2 的卷积码编码器,其约束长度为 k 的情况下,则存储器长度 v=k-1。在 k 时
刻的输入比特为 ,则相应的校验码为二进制数对 kd ),( kk YX
∑ −= v ikik dgX 1
=i 0
(1-1a) 1,01 =ig
∑
=
−=
v
i
ikik dgY
0
2
(1-1b) 1,02 =ig
其中 和 分别是卷积码编码器中两个编码器的生成元,一般用八进制表示。这是非递归
系统卷积码(NSC)的基本模型。
}{: 11 igG }{: 22 igG
RSC 码是在 NSC 码的基础上改进的[1,2,7],一个二进制 RSC 编码器相当于一个 NSC 编码器的输
入端的数据使用了反馈的信息,同时编码器输出中的一位 或 等于输入比特 ,所以,移位寄存器的
输入不再是输入信息比特 ,而是一个新的二进制值
kX kY kd
kd ka
∑
=
−+=
v
i
ikikk ada
1
γ (1-2)
当 时kk dX = iγ 与 相等;当 时ig1 kk dY = iγ 与 相等。 ig2
图 2 给出了存储器长度 v=4 的两个 RSC 编码器,它们分别由 NSC 编码器所定义的生成元为 G1=37,
G2=21 得到。在 Turbo 编码器中,其基本编码模块为两个 RSC 编码器。
2
中国科技论文在线
图 2 R=1/2,v=4,G1=37, G2=21 的 RSC 编码器
一、Turbo 编码结构
Turbo 编码器一般由两个相同结构的 RSC 编码器并行连接而成[1,2],所以称之为并行级联卷积码
(PCCC)结构。图 3 是一个存储器长度 v=2 的 Turbo 码编码器的结构图,它的生成矩阵可以表示为
⎥⎦
⎤⎢⎣
⎡
++
+= 2
2
1
1,1)(
DD
DDG (1-3)
kd
1kY
T T
ka
T T
ka′
交织器
kd
2kY
kY
kd′
图 3 R=1/3 的 Turbo 编码器
由图 3 可知:
kk dX = (1-4)
1k k kY a a −= + 2
2
2−
2−
(1-5)
' '
2k k kY a a −= + (1-6)
1k k k ka d a a−= + + (1-7)
' ' ' '
1k k k ka d a a−= + + (1-8)
其中 为编码器的输入信息序列 经过交织器后的序列,采用交织器后可将传输中集中出现的误码分散
开,提高解码过程中的纠错率 [1,2,7]。
'
kd kd
可根据编码器的网格图(图 4), 得出它的转移概率 )1−kk SS(π 。由图 4 可知:当存在从 到 的状
态转移时,则
1−kS kS
2/1)1 =−kk SS(π ,如果不存在则 0)1 =−kk SS(π 。
3
中国科技论文在线
00
01
10
11
00
01
10
11
1kS − kS
0dk = 1dk =
S0
S1
S3
S2
S0
S1
S3
S2
图 4 编码器状态转移图
二、网格结束
对于 Turbo 编码器,由于采用了递归结构,其分量编码器需要额外的网格结束处理才能终止于零状态,
而且由于交织器的存在,将两个编码器同时回零就更为困难[4]。图 5 给出一种结束 RSC 编码的典型方法,
当 N 信息比特输入到编码器时,开关置到A处。在 N 个信息比特输入到编码器后,开关置到 B 处,输入
个结束比特到编码器来结束其信息比特,其中 是编码器中存储器的个数,图 5 中 v =2。
v
v
T TA
B
1C
2C
图 5 RSC 编码器结束网格的典型方案
Turbo 码的网格结束问题对短帧很重要,Turbo 码包括两个 RSC 编码器,Turbo 码的结束方案可分为四
类:
(a) 两个 RSC 编码器都不使用结束比特;
(b) 只有第一个 RSC 编码器使用结束比特,而另一个不用;
(c) 两个 RSC 编码器使用各自不同的结束比特来结束它们的编码;
(d) 两个 RSC 编码器在使用有某一类交织器的前提下只用一组结束比特来结束他们的编码。
因为方案(b)有结束比特少和性能好的优点,人们通常使用该方案。本文使用了该网格结束方案,也就
是说第一个 RSC 编码器的状态回零,而第二个 RSC 编码器的状态是不回零的。
交织器
交织器在 Turbo 码系统中的作用,可以从两个方面来分析,在编码端,它使得两个 RSC (递归系统卷
积码 )子码以较大的概率获得很大的码间距离;在译码端,它把第 1 级迭代译码中产生的突发错误化为随
机错误,同时降低迭代译码输出的相关性。
交织器将一帧的输入信息比特顺序写入,再按预先定义的地址顺序把整帧数据读出,使交织前后的序
列相关性减小。通过交织器的作用, 低码重的输入信息序列中的连续“1”的比特被分散,这样,即使信息
序列使子编码器 1 得到低的校验码重,而子编码器 2 的输入是信息序列的交织序列,它的校验码有较高的码
重, 从而总的编码输出码重较高。
常用的交织器设计方法有:逐行输入、逐列输出的块交织与伪随机交织,其中伪随机交织器的性能无
疑是最好的,因为它相对于其它交织器而言,有最强的随机性,但它也最难生成,目前还没有较统一的伪
随机交织器的产生方法。
伪随机交织器的交织过程如下所示:
长为 n 的信息序列 d1 d2 d3 d4 d5 d6 d7 d8
相应的 n 个随机数
按大小排列随机数
交织后的信息序列 d3 d7 d5 d1 d4 d8 d2 d6
码率与删余
4
中国科技论文在线
在编码器输出的码序列的同时,为了提高信息传输的效率,在进行信道传输之前,要进行码的打孔和
删余,以提高码的传输效率。
对于图 1 所示的编码结构,如果不采用删余,码率为 1/3,如果采用删余矩阵: , 可提高码率
为 1/2,从而可以使得传输效率的提高。如果,并行编码器采用的是更多个 RSC 的并联,则可以使用其它
对角删余矩阵进行删余。总之,Turbo 编码器的编码目的是:产生一个包含信息比特和校验比特的最佳序
列,以满足信息高速率传输的要求,以及在接收端能够更加准确地译码。
⎥⎦
⎤⎢⎣
⎡
01
10
2 Turbo 码的译码器
Turbo 码译码器结构
Turbo 码译码器的基本结构如图 6 所示。它由两个软输入软输出(SISO)译码器 DEC1 和 DEC2 并行
级联组成,交织器和编码器中所使用的交织器相同,译码器 DEC1 对分量码 RSC1 进行最佳译码,产生关
于信息序列 中每一比特的似然信息,并将其中的“新信息”经过交织送给 DEC2,译码器 DEC2 将此信息
比特作为先验信息,对分量码 RSC2 进行最佳译码,产生关于交织后的信息序列中每一比特的似然比信息,
然后将其中的“外信息”经过解交织送给 DEC1,进行下一次译码。这样,经过多次迭代,DEC1 和 DEC2
的外信息趋于稳定,似然比渐进值逼近于对整个码的最大似然译码,然后对此似然比进行硬判决,即可得
到信息序列 的每一比特的最佳估计序列 。
kd
kd ˆkd
软输入
软输出
译码器
DEC1
软输入
软输出
译码器
DEC2
交织
交织
延时
+ 解交
织
判
决
解交织
x
y 1
y
2y
e1L
e2L
( )kL d
ˆ
kd
多路
信号分离器
(X)w
e2,k(L )w
图 6 Turbo 码译码器的结构
编码端输出的比特序列dk、Y1k和Y2k经过信道并加入噪声后,就成为图 6 中的输入信息序列x、y1和y2,
其中x和y1输入至译码单元 1, x和y2输入译码单元 2。Le1是由译码单元 1 向译码单元 2 提供的辅助信息,Le2
是由译码单元 2 向译码单元 1 提供的辅助信息,Le1、Le2就称为译码器的外部信息,而译码器输出的外部
信息是由译码算法来确定的。
LOG - MAP 算法
Turbo 码的译码算法主要有:最大后验概率(MAP)算法和软输出维特比译码算法(SOVA)。 两者的共同
点都是利用软输出来进行迭代译码。MAP 是最优的译码算法,但其缺点是具有较大的运算复杂度和需较
大的存储空间;SOVA 的译码性能虽不如 MAP,但其运算复杂度较低,有利于硬件的实现。
MAP算法采用对数似然比函数(LLR),即后验概率比值的绝对值作为其软判决的输出。对于比特dk,其
后验概率表示为 ,软判决输出可表示为 Pr{ / }, 0,1k kd i R i= =
Pr( 1/ )( ) ln
Pr( 0 / )
k
k
k k
d Rd
d R
k=Λ = = (2-1)
5
中国科技论文在线
其中,dk为信息序列, kR 为译码器输入序列,以软输入表示为 1 2( , , )k k k kR x y y= 。
若 判发送的 ;反之判发送的( ) 1kdΛ > 1kd = 0kd = 。
根据文献[3,5,7],可以直接给出计算公式,令k时刻编码器的状态为Sk,状态数为 0~2M-1,M为移位
寄存器的数目,输入位dk对应于Sk-1到Sk,MAP算法给出了输入信息为 1 的后验概率对输入信息为 0 的后验
概率比,即
1
1
'
0
1
'
( ') ( , ', ) ( )
( ) ln
( ') ( , ', ) ( )
n n n n
s s
k
n n n n
s s
s R s s s
d
s R s s s
α γ β
α γ β
−
−
Λ =
∑∑
∑∑
%% %
%% % 2
2
nn n e
x Lσ= +Λ +% (2-2)
其中 是译码器的外信息输出, 是上一次迭代译码输入的先验信息。由于式(2-2)中的第 2 项容易由译
码器的输入求出,因此可直接得到译码器的外信息输出
ne
L nΛ%
2
2
ne n n n
L xσ= Λ − −Λ%
1
1
'
20
1
'
( ') ( , ', ) ( )
2ln
( ') ( , ', ) ( )
n n n n
s s
n
n n n n
s s
s R s s s
x
s R s s s
α γ β
σα γ β
−
−
= −
∑∑
∑∑
%% %
%
%% % n− Λ
s s
n s s
(2-3)
其中正向递归因子为
2 1 1
1
' 0 0
( ) ( ') ( , ', )in n n n
s i
m
s s Rα α γ− −
= =
= ∑ ∑ (2-4)
反向递归因子为
2 1 1
1
0 0
( ') ( ) ( , ', )in n n
s i
m
s s Rβ β γ− +
= =
= ∑ ∑ (2-5)
1( , ', ) ( , , ')
i
n n n n n nR s s p u i S s R S sγ −= = = =%
1( , , ') ( )=n n n n r np R u i S s S s P u i−= = = = • 1( ,r n n nP S s u i S s− ')• = = = (2-6)
根据编码器处于不同状态的概率,可以直接对正向递归因子进行初始化。由于编码器是从全零状态开始
工作的, 因此有
0
1, 0
( )
0,
s
sα =⎧= ⎨⎩ 其他 (2-7)
类似, 由于编码器结束于全零状态, 则反向递归因子初始化为
1, 0
( )
0,N
s
sβ =⎧= ⎨⎩ 其他 (2-8)
MAP 算法是一种基于码元的最大后验概率译码算法,虽译码性能最优,但计算复杂度高,译码时延
较大,不利于实际应用[7]。出现了许多改进算法,如 Log-MAP 算法,Max-Log-MAP 算法等。对 MAP 算
法在对数域中进行,则可将乘除运算转变为加减运算,计算复杂度降低,便于硬件实现,而其性能与 MAP
算法接近。在 Log-MAP 算法中,利用下式进行简化:
1
1 2
1 22 | |ln( ) max( , ) ln(1 )e e eδδ δ δδ δ − −+ = + + (2-9)
6
中国科技论文在线
并令 ( , , ) ln ( , ', )i in n n nR s s R s sγ γ′ = % 、 ( ) ln ( )n ns sα α= 、 ( ') ln ( ')n nsβ β= s ,代入(2-4)-(2-6), 可得
1 1( ) ( , ), ,
( ) max[ ( , , ) ( )] max[ ( , , ) ( )]i in n n n n n ns i s s is R s s s R s sα γ α γ α− −′ ′′ ′ ′= + − + s′ (2-10)
1 1( ) ( , ), ,
( ') max[ ( , , ) ( )] max[ ( , , ) ( )]i in n n n n n ns i s s is R s s s R s s sβ γ β γ β+ +′′= + − +′ (2-11)
1 0
1 1( ) ( ), ,
( ) max[ ( , , ) ( ) ( )] max[ ( , , ) ( ) ( )]k n n n n n n n ns s s sd R s s s s R s s sγ α β γ α− −′ ′′ ′ ′ ′Λ = + + − + + sβ (2-12)
3 系统仿真模型
本文的仿真系统是以图 7 中所示的通信系统模型进行研究的,根据 Turbo 码编解码系统的基本结构设
计。
Turbo码
编码器
BPSK
调制器
(0,1)kd ∈
( 1,1)ks ∈ − 2(0, )kn N δ∈
Turbo码
译码器
ˆ
kd
图 7 仿真系统模型
在该仿真系统中,信息序列dk=0 或dk=1,它的取值是等概率的。在Turbo码编码器部分,只考虑由两
个相同的分量编码器通过交织器并行级联而成的Turbo码。分量编码器是码率为R=1/2 的递归系统卷积码
(RSC),经过删余矩阵后总的Turbo码码率为R=1/2。编、译码器中所用的交织器为伪随机交织器。经过编
码的信息序列,在BSPK调制器单元中会将信息调制成双极性信号(-1,1),然后传送到信道。在信道中,为
传送信号加入噪声(AWGN)nk∈N(0,δ2)。对于译码器部分,我们采用的Turbo码译码算法是:LOG-MAP算
法。最终得到的仿真结果以误比特率(BER)进行性能评估。
在该 Turbo 码仿真系统中,有如下可供选择的参数。
N:Turbo 码的一帧长度,即每帧所包含的信息序列的长度,它也等于交织器的大小,在该信息序列中,
实际发送信息长度为 N-M(M 为编码器存储器长度),还有 M 个拖尾比特加在实际信息之后,其作用是使编
码器归零。
RSC 成员编码器参数:包括编码器生成多项式、编码器移位存储器 M。
信噪比Eb/N0:决定所加噪声的强度。Eb为信号的功率谱密度,N0为噪声单边功率谱密度。
译码迭代次数:决定译码器迭代多少次后停止。
帧错误数:用来控制整个仿真系统的结束,当超过设定的帧错误数时,系统会停止循环。
4 仿真结果及性能评估
我们编制了 Turbo 码编解码系统仿真程序,在低信噪比下对 Turbo 码进行了仿真实验,证明一些主要
因素对 Turbo 码性能有影响。
译码迭代次数对 Turbo 码性能的影响
循环迭代译码结构是 Turbo 码具有良好译码性能的一个重要原因 [5-7]。各个译码单元相互之间传递
外信息,作为先验概率提供给下一次译码。由于外信息的作用,译码的误比特率将随着循环迭代译码次数
的增加而下降。但是,随着外信息与内信息相关性逐渐增强,迭代译码趋于收敛,外信息提供的纠错能力
逐渐减弱,在一定次数的循环迭代之后,译码性能将不再提高。
在本仿真中,采用的方案为:码率 R=1/2、生成矩阵 G=[07, 05]、交织长度为 420、译码算法为 LOG-MAP,
对不同循环迭代译码次数的 Turbo 码的译码性能进行了计算机仿真,由图 8 可以看出,在只进行一次迭代
时,Turbo 码的纠错性能还要略逊于相似的卷积码。经过第二次迭代后,误比特率下降十分明显。图 8 的
性能曲线图的主要特点是:一是随着两个译码交换信息的迭代数的增加,误比特率(BER)逐渐减少;二是
随信噪比的增加误比特率逐渐减少。
7
中国科技论文在线
图 8 Turbo 码在不同迭代译码次数下的性能曲线和卷积码性能曲线
RSC 分量码对 Turbo 码性能的影响
图 9 给出了生成矩阵为[07, 05]和[37, 21]两种 Turbo 码在交织长度为 100、码率 R=1/2、译码算法为
LOG-MAP、迭代次数为 5 次的情况下的性能曲线。由图 9 可知,随着分量编码器移位存储器的增加,Turbo
码的纠错性能相应提高。因此,适当选择分量编码器的参数,对提高 Turbo 码的性能有重要意义。
图 9 Turbo 码在不同 RSC 分量码下的曲线
信息序列长度和交织器大小对 Turbo 码性能的影响
通常信息序列分组长度与交织器的大小是相同的,图 10 给出了交织长度为 100 和 526 两种 Turbo 码
在生成矩阵 G=[07, 05]、码率 R=1/2、迭代次数为 8 次的情况下的性能曲线。交织长度为 100 时出现误码
率平台,但随交织长度的增加,Turbo 码的纠错性能相应提高。但当交织长度过长时,译码复杂性增加,
所带来的译码时延也相应增大,因此应选择适当的交织长度。
8
中国科技论文在线
图 10 Turbo 码在不同输入交织长度下的性能曲线
5 结论
Turbo 码比同等译码复杂度的卷积码的性能有较大改善,因此在 CDMA 系统中采用 Turbo 码后,会使
系统的抗干扰性能大大增强,扩频解调设备所需的信噪比得以降低,从而可提高系统容量。增加交织长度
可提高 Turbo 码的编码增益,但带来的后果是译码延时的增加。尽管香农的信道编码定理指出误比特率可
随码长的无限增长而无限下降,而 Turbo 码在固定码长下就可在部分误码率范围内接近香农极限,这是
Turbo 码非常突出的优点。
参考文献:
[1] C. Berrou, A. Glavieux, and P. Thitimajshima. Near Shannon limit error-correcting coding and decoding:
Turbo-codes (1) [A]. In: Proc ICC’93[C]. Geneva: 1993. 1064-1070.
[2] Claude Berrou, Member, IEEE, and Ajain Glavieux. Near optimum error correcting coding and decoding:
Turbo-codes [J]. IEEE, Transactions on Communications. 1996, 44 (10): 1261-1271.
[3] J. Hagenauer, E. Offer, and L. Papke. Iterative decoding of binary block and convolutional codes [J]. IEEE
Trans on Inform Theory. 1996, 42 (2): 429-445.
[4] Joerssen O, Meyr H. Termination the trellis of Turbo codes [J]. Electronic Letters. 1994, 30 (16): 1285-1286.
[5] 朱联祥, 李元彬, 周围. Turbo 码译码中的 BCJR 算法 [J]. 重庆邮电学院学报, 2001, 13 (4):26-29, 50.
[6] 李中捷, 孙洪, 姚天任, D. Le Ruyet. Turbo码系统仿真及性能分析 [J]. 华中科技大学学报, 2001. 29(3):
76-78.
[7] 王新梅, 肖国镇. 纠错码——原理与方法 [M]. 西安:西安电子科技大学出版社, 2001. 505-530.
9
中国科技论文在线