Turbo码详解

Turbo码详解
Turbo码详解

第十三章 Turbo 码

Shannon 理论证明,随机码是好码,但是它的译码却太复杂。因此,多少年来随机编码理论一直是作为分析与证明编码定理的主要方法,而如何在构造码上发挥作用却并未引起人们的足够重视。直到1993年,Turbo 码的发现,才较好地解决了这一问题,为Shannon 随机码理论的应用研究奠定了基础。

Turbo 码,又称并行级连卷积码(PCCC),是由C. Berrou 等在ICC ’93会议上提出的。它巧妙地将卷积码和随机交织器结合在一起,实现了随机编码的思想,同时,采用软输出迭代译码来逼近最大似然译码。本章首先介绍Turbo 码的提出与构成原理;介绍迭代反馈译码算法(包括AWGN 信道与Rayleigh 衰落信道下的译码);然后针对Turbo 码编译码特性,对几个问题进行了说明;最后介绍Turbo 码在3GPP 中的具体应用。

§13.1 Turbo 码的提出

Turbo 码,又称并行级连卷积码(PCCC),是由C.Berrou 等在ICC ’93会议上提出的。它巧妙地将卷积码和随机交织器结合在一起,实现了随机编码的思想,同时,采用软输出迭代译码来逼近最大似然译码。模拟结果表明,如果采用大小为65535的随机交织器,并且进行18次迭代,则在E N b /0≥0.7dB 时,码率为1/2的Turbo 码在AWGN 信道上的误比特率(BER )≤-105

,达到了近Shannon 限的性能(1/2码率的Shannon 限是0dB )。因此,这一超乎寻常的优异性能,立即引起信息与编码理论界的轰动。图13-1中给出了Turbo 码及其它编码方案的性能比较,从中可以看出Turbo 编码方案的优越性。

由于Turbo 码的上述优异性能并不是从理论研究的角度给出的,而仅是计算机仿真的结果。因此,Turbo 码的理论基础还不完善。后来经过不少人的重复性研究与理论分析,发现Turbo 码的性能确实是非常优异的。因此,turbo 码的发现,标志着信道编码理论与技术的研究进入了一个崭新的阶段,它结束了长期将信道截止速率0R 作为实际容量限的历史。

需要说明的是,由于原Turbo 编译码方案申请了专利,因此在有关Turbo 码的第一篇文章中,作者没有给出如何进行迭代译码的实现细节,只是从原理上加以说明。此后,P. Robertson 对此进行了探讨,对译码器的工作原理进行了详细说明。人们依此进行了大量的模拟研究。

Turbo 码的提出,更新了编码理论研究中的一些概念和方法。现在人们更喜欢基于概率的软判决译码方法,而不是早期基于代数的构造与译码方法,而且人们对编码方案的比较方法也发生了变化,从以前的相互比较过渡到现在的均与Shannon 限进行比较。同时,也使编码理论家变成了实验科学家。

图13-1 AWGN 信道中的码率与Shannon 限

关于Turbo 码的发展历程,C. Berrou 等在文[4]中给出了详细的说明。因为C. Berrou 主要从事的是通信集成电路的研究,所以他们将SOV A 译码器看作是“信噪比放大器”,从而将电子放大器中的反馈技术应用于串行级联的软输出译码器,并且为了使两个译码器工作于相同的时钟,以简化时钟电路设计,就提出了并行级联方式,这导致了Turbo 码的发明。

尽管目前对Turbo 码的作用机制尚不十分清楚,对迭代译码算法的性能还缺乏有效的理论解释,但它无疑为最终达到Shannon 信道容量开辟了一条新的途径,其原理思想在相关研究领域中具有广阔的应用前景。目前,Turbo 码被看作是1982年TCM 技术问世以来,信道编码理论与技术研究上所取得的最伟大的技术成就,具有里程碑的意义。

§13.2 Turbo 码编码器的组成

Turbo 码编码器是由两个反馈的系统卷积码编码器通过一个随机交织器并行连接而成,

编码后的校验位经过删余阵,从而产生不同码率的码字。见图13-2。

图13-2所示的是典型的Turbo 码编码器框图,信息序列u = {u 1,u 2,…,u N }经过一个N 位

交织器,形成一个新序列u 1 = },...,,{''2'1N u u u (长度与内容没变,但比特位置经过重新排列)。

u 与u 1分别传送到两个分量码编码器(RSC1与RSC2),一般情况下,这两个分量码编码器结构相同,生成序列X p 1与X p 2。为了提高码率,序列X p 1与X p 2需要经过删余器,采用删余(puncturing )技术从这两个校验序列中周期地删除一些校验位,形成校验位序列X p 。X p 与未编码序列X s 经过复用调制后,生成了Turbo 码序列X 。例如,假定图13-2中两个分量编码器的码率均是1/2,为了得到1/2码率的Turbo 码,可以采用这样的删余矩阵:

P [1 0, 0 1],即删去来自RSC1的校验序列X p 1的偶数位置比特与来自RSC2的校验序

列X p 2的奇数位置比特。

图13-2 Turbo 码编码器结构框图

例13.1 一个码率为1/3的Turbo 码:

图13-3 一个码率为1/3的Turbo 码编码器

图13-3所示的是基于(2,1,4)RSC(递归卷积系统码)的Turbo 码编码器。分量码是码率为1/2的寄存器级数为4的(2,1,4)RSC 码,其生成矩阵为:

]11,1[)(4

324

D D D D D D G +++++= (13.2.1)

我们假设输入序列为:

)1011001

(=c (13.2.2)则第一个分量码的输出序列为:

)

1110001()1011001(10==v v (13.2.3)

假设经过交织器后信息序列变为:

)1101010(~=c

(13.2.4)第二个分量码编码器所输出的校验位序列为:

1

2

)1000000(2=v (13.2.5)则Turbo 码序列为:

)110,000,000,100,110,010,111(=v (13.2.6)

§13.3 Turbo 码的译码

一. Turbo 码的迭代译码原理

由于Turbo 码是由两个或多个分量码对同一信息序列经过不同交织后进行编码,对任何单个传统编码,通常在译码器的最后得到硬判决译码比特,然而Turbo 码译码算法不应限制在译码器中通过的是硬判决信息,为了更好的利用译码器之间的信息,译码算法所用的应当是软判决信息而不是硬判决。对于一个由两个分量码构成Turbo 码的译码器是由两个与分量码对应的译码单元和交织器与解交织器组成,将一个译码单元的软输出信息作为下一个译码单元的输入,为了获得更好的译码性能,将此过程迭代数次,这就是Turbo 码译码器的基本的工作原理。

二. Turbo 码译码器的组成

Turbo 码译码器的基本结构如图13-4所示。它由两个软输入软输出(SISO )译码器dec1和dec2串行级连组成,交织器与编码器中所使用的交织器相同。译码器dec1对分量码RSC1进行最佳译码,产生关于信息序列u 中每一比特的似然信息,并将其中的“外信息”经过交织送给dec2,译码器dec2将此信息作为先验信息,对分量码RSC2进行最佳译码,产生关于交织后的信息序列中每一比特的似然比信息,然后将其中的“外信息”经过解交织送给dec1,进行下一次译码。这样,经过多次迭代,dec1或dec2的外信息趋于稳定,似然比渐近值逼近于对整个码的最大似然译码,然后对此似然比进行硬判决,即可得到信息序列u

的每一比特的最佳估值序列 u

图13-4 Turbo 码译码器的结构

假定Turbo 码译码器的接收序列为),(p s y y y =,冗余信息p

y 经解复用后,分别送给dec1和dec2。于是,两个软输出译码器的输入序列分别为:

dec1: ),(1p

s

y y y 1=, dec2: ),(2p s

y

y y 2=

为了使译码后的比特错误概率最小,根据最大后验概率译码(MAP)准则,Turbo 译码器的最佳译码策略是,根据接收序列y 计算后验概率(APP )),|()(21y y k k u P u P =。显然,这对于稍微长一点的码计算复杂度太高。在Turbo 码的译码方案中,巧妙地采用了一种次优

译码规则,将1y 和2y 分开考虑,由两个分量码译码器分别计算后验概率),|(1e

k u P L y 1和

),|(2e k u P L y 2,然后通过dec1和dec2之间的多次迭代,使它们收敛于MAP 译码的

),|(21y y k u P ,从而达到近Shannon 限的性能。这里,e 1L 和e 2L 为附加信息,其中e 1L 由

dec2提供,在dec1中用作先验信息,e

2L 由dec1提供,在dec2中用作先验信息。

关于),|(1e

k u P L y 1和),|(2e k u P L y 2的求解,目前已有多种方法,它们构成了Turbo

码的不同译码算法。下面将以BCJR 的前向-后向MAP 软输出算法为例来讨论Turbo 码的译码。

三. 分量码的最大后验概率译码(MAP 算法)

考虑图13-5所示的软输入软输出(SISO )译码器,它能为每一译码比特提供对数似然比输出。

图13-5 软输入软输出译码器框图

图中MAP 译码器的输入序列为y y ==112N

k N y y y y (,,,,) ,其中

y y y k k s k p =(,)。L u e k ()是关于u k 的先验信息,L u k ()是关于u k 的对数似然比。对于BPSK

调制,它们的定义如下:

(1)

()ln

(1)

e k k k P u L u P u =+≡=- (13.3.1)

11(1|)

()ln (1|)

N

k k N

k P u L u P u =+≡=-y y (13.3.2) 假定发送端RSC 编码器的存储级数为v ,约束长度为K ,编码器在k 时刻的状态为

S a a a k k k k v =--+(,,,)11 ,编码输出序列为x x x =(,)s p 。传输信道模型如图13-6所示。

从图13-6可知,

(12s s s s s s s

k k k k k k k

y a c n a x n =+=-+ (13.3.3)

(12p p p p p p p k k k k k k k y a c n a x n =+=-+

(13.3.4)

图13-6 信道模型

式中p k s k a a 和为信道衰落因子,对于AWGN 信道,1==p k s k a a 。n n k s k p

和是两个独立同分

布的高斯噪声样值,它们的均值为0,方差σ

2

02=N /。

MAP 译码器的任务就是求解式(13.3.3),然后按照下列规则进行判决:

0, ()0

?1, ()0

k k k L u u L u ≥?=?

下面利用BCJR 算法对式(13.3.2)的计算方法进行推导。

根据Bayes 规则,式(13.3.2)可以写为:

1111(1,)/()

()ln (1,)/()

N N

k k N N

k P u p L u P u p =+==-y y y y 111(,)1

111

(,)1

(,,)/()

ln

(,,)/()k k N N

k k s s u N

N k k s s u p S s S s p p S s S s p -'=+-'=-'==='==∑∑

y y y y (13.3.6)

上式中,求和是对所有由u k =+1即x k =0(或u k = –1即x k =1)引起的S S k k -→1的状态转移进行的。根据BCJR 算法[12],p S s S s k k N

(',,)-==11y 可以按下式计算:

s k p k

s p k a s p k n

p s s p s p s y s p s N k k k N

(',,)(',)(,|')(|)y y y 1111=??-+

=??-αγβk k k s s s s 1(')(',)() (13.3.7)

其中,αk k k

s p S s ()(,)≡=y 1为前向递推,

βk k N

k s p S s ()(|)≡=+y 1为后向递推,

γk k k k s s p S s y S s (',)(,|')≡==-1为s’和s 之间的分支转移概率。

下面求αβγk k k s s s s (),()(',)和。由定义得

αk k k k s s p S s S s ()(,',)'

===-∑11y

==?==----∑p S s p S s y S s k k k k k k s (',)(,|',)'

111111

y y (13.3.8) 考虑到RSC 编码器等效于一个马尔可夫源,在状态S k -1已知时,k-1时刻以后发生的事件与以前输入无关。因此,从式(13.3.8)可得前向递推公式

ααk k k k k s s s p S s y S s ()(')(,|')'

=?==--∑11

=?-∑αγk k s s s s 1(')(',)'

(13.3.9)

同样,βk s ()可按下式反向递推得到

βk k k N k s

s p S s S s --===∑11(')(,|')y

==?==+-∑p S s p S s y S s k N k k k k s

(|)(,|')y 11

=?∑βγk k s

s s s ()(',) (13.3.10)

至于分支转移概率γk s s (',),从其定义可得

γk k k k k k s s p S s S s p y S s S s (',)(|')(|,')===?==--11

=?P u p y u k k k ()(|) (13.3.11)

其中P u k ()是u k 的先验概率,p y u k k (|)由信道转移概率决定。

考虑到式(13.3.11)是从连续随机变量的概率密度计算得到,γk s s (',)的值可能大于1,这会使得式(13.3.9)、(13.3.10)产生溢出,导致整个算法不稳定。因此,有必要对

αβk k s s (),()进行归一化处理。

令 ~()()/()ααk k k s s p =y 1

~

()()/(|)ββk k k N k

s s p =+y y 11 (13.3.12)

因为p p S

s k

k

k

s

()(,)y y 11=

=∑,所以

~()()/()αααk k

k s

s s s =∑ (13.3.13) 将式(13.3.9)代入上式,并且分子分母同除以p k

()y 1,得到

~()(')(',)/()

(')(',)/()

'

'

α

α

γα

γk

k k k s k k k s s

s s s s p s s s p =----∑∑∑1

11

111y y

=--∑∑∑~(')(',)~

(')(',)

'

'

α

γαγk k

s k k

s s

s s s s s s 1

1

(13.3.14) 对于~

()βk s ,考虑到p p p p k N k k N k k k (|)(|)()/()y y y y y y 1111111

-+-=,于是有

)

|()

'() '(~

1111---=

k N k k k p s s y y ββ=

∑+-βγ

k

k

s

k N k k k s s s p p p ()(',)

(|)()/()

y y y y 11111

=

+-∑∑β

γαk k k N k

s

k s

k s s s p s p ()(',)/(|)

()/()

y y y 1111

=

∑∑∑--~

()(',)

(')(',)/()

'

βγα

γk k s

k s k k s

s s s s s s p 1

1

1

y

=

∑∑∑-~

()(',)

~

(')(',)

'βγαγk k s

k s k s

s s s s s s 1 (13.3.15) 合并式(13.3.7)和(13.3.12)得

p s s s p s s s p N k k k k k N k (',,)~(')()(',)~()(|)y y y y 111111=??--+αγβ =???--~(')(',)~

()()()/()αγβk k k k N k s s s s p p p 11111

y y y =???--~(')(',)~()()/(|)αγβk k k N k k s s s s p p y 1111y y (13.3.16)

将上式代入式(13.3.6),并且分子分母同乘以因子p y k k (|)y 11

-,便得最终计算公式

1

(,)

1

1(,)1

()(,)()

()ln

()(,)()

k k k k k s s u k k k k s s u s s s s L u s s s s α

γβαγβ-'=+-'=-''??=''??∑∑ (13.3.17)

这样,就完成了分量码的MAP 译码算法的推导。~()~

()αβk k

s s 和的递推运算示意于图13-7,其中~()αk

s 的初始条件为(假定RSC 编码器的初始状态为零状态): ~(),~()αα00100=≠= 0

s (13.3.18) 如果编码器在每帧编码完成之后通过结尾(termination )处理也回到零状态,那么~

()βk s 递推的初始条件为:

~(),~

()ββN s 0100=≠= N (13.3.19)

否则,应设定为:

~

()/βN s s v =?12 (13.3.20)

图13-7 ~()~()αβk k s s 和的递推示意图

利用Bayes 规则,从式(13.3.2),可以看出

11(|1)

(1)

()l n l n (1)

(|1)

N

k k

k N k k p u P u L u P u p u =+=+=+

=-=-y y 11(|1)ln ()(|1)

N e

k k N

k p u L u p u =+=+=-y y (13.3.21) 其中L u e

k ()是关于u k 的先验信息。在以往的译码方案中,通常认为先验等概,因而

L u e k ()=0。而在迭代译码方案中,L u e k ()是前一级译码器作为外信息给出的。为了能使

迭代继续进行,当前译码器应从式(13.3.21)的第一项中提取出新的外信息并且提供给下一级译码器,作为下一级译码器接收的先验信息。式(13.3.1)可以写为:

(1)(1)

()ln

ln (1)1(1)

e

k k k k k P u P u L u P u P u =+=+===--=+

(13.3.22)

从上式,可得()exp[()/2]e

k k k k P u A u L u = (13.3.23)其中,

1

exp[()/2]exp[()/2]

k e e k k A L u L u =

+-,为常量。

α)

'')

(S αk

对于p (y k |u k ),根据),(p k s k k y y y =,),(),(p

k k p k s k k x u x x x ==,可得

]2)(2)(ex p[)|(2

2

22σσp k p k k s k k k x y u y u y p ----∝

=]ex p[]2ex p[2

22

2

2

2

σσp

k p k s k k p k p k k s k y x y u x y u y +?+++-

=]ex p[

2

σp

k p k s k k k y x y u B +

结合式(13.3.11),可得(13.3.24)定义]e xp [),'(21

p k p k c k e x y L s s =γ,定义信道可靠性值

0/4N aE L s c ≡,对于AWGN 信道上的BPSK 传输,L N N c ==42020/,/而σ,于是

式(13.3.24)可以写为

]))((e xp [),'(2

1

2

1p k p k c s k c k e k k x y L y L u L u s s ++∝γ

),'()])((ex p[21s s y L u L u e

k s k c k e k γ?+= (13.3.25)

结合(13.3.17)与(13.3.25),可得

????

?

?

???????=∑∑--+-s k k e k k s k

k e k k k C s s s s C s s s s u L )(~),'()'(~)(~),'()'(~l o g )(1

1βγαβγα ????

? ??????++=∑∑--+-s k e k k s k e k k k e s k c s s s s s s s s u L y L )(~),'()'(~

)(~),'()'(~l o g )(11βγαβγα (13.3.26)此式中,第一项叫做信道值;第二项代表的是前一个译码器为第二个译码器所提供的关于u k 的先验信息;第三项代表的是可送给后续译码器的外部信息。对于图13-3所示的Turbo 译码器,如果分量码译码器dec1和dec2均采用上述MAP 译码算法,则它们在第i 次迭代的软输出分别为:

dec1: L u L y L u L u i k c k s

e

k i e

k i 121112()

()

()()[()]

[()]=++- (13.3.27)

dec2: L u L y L u L u i I c I s

e

I i e I i k k k k 21221()

()

()()[()]

[()]=++ (13.3.28)

其中L u e

k 21()是前一次迭代中dec2给出的外信息L u e

I k 21()经解交织后的信息,在本次迭代中被dec1用作先验信息;L u e

k 12()是dec1新产生的外信息,即式(13.3.26)中的第三项;

L u e I k 12()为经交织的从dec1到dec2的外信息。整个迭代中软信息的转移过程为:

d e c d e c d e c d e c 1212→→→→

下图是Turbo 码采用标准MAP 译码算法所得到的性能图(AWGN 信道,3GPP 交织器,迭代次数6次,分量码G = (13,15)8),从图中可以看出不同的交织器大小对码字性能的影响。

1.00E-07

1.00E-061.00E-051.00E-041.00E-03

1.00E-02

1.00E-01

1.00E+00

0.25

0.5

0.75

1

1.25

1.5

1.75

Eb/N0(dB)

B E R

图13-8 Turbo 码MAP 译码算法性能曲线

MAP 算法的引入使组成Turbo 码的两个编码器均可采用性能优异的卷积码,同时采用了反馈译码的结构,实现了软输入/软输出,递推迭代译码,使编译码过程实现了伪随机化,并简化了最大似然译码算法,使其性能达到了逼近Shannon 限。但MAP 算法存在几个难以克服的缺点:(1)需要在接收到整个比特序列后才能做出译码判决,译码延迟很大。(2)计算时既要有前向迭代又有后向迭代。(3)与接收一组序列(交织器大小)呈正比的存储量等。为了克服MAP 算法的缺点,一方面根据MAP 算法进行简化;一方面寻找新的在性能上与MAP 算法相差不太大的译码算法。常见的译码算法有以下两类。

MAP 算法及改进算法:分为标准BCJR 算法,对数域的LOG-MAP 算法及MAX-LOG-MAP 算法,减少状态搜索的M-BCJR 和T-BCJR 算法;滑动窗BCJR 算法和只有前向递归的OSA 算法均可用于Turbo 码的迭代译码。

另一类是SOV A 算法及其改进算法,其运算量为标准Viterbi 算法的两倍,运算量低于MAP 算法,但其译码增益比MAP 算法要小。

四. SOV A 译码算法

在工程应用中,由于SOV A 算法的运算量较小,而且可以采用滑窗法,从而可以大大减小时延,因此更适合于工程应用。下面,就SOV A 算法进行介绍。

SOV A 算法的全称是:软输出Viterbi 算法(Soft-Output Viterbi Algorithm)。Viterbi 算法(以

下简称V A)在通信接收器中已经成为一个工具,在解调、译码、均衡中都有广泛的应用。在QAM 和CPM 等系统中,V A 的级联得到了应用。在这些系统中,Viterbi 接收器代替了传统的调制机制。然而在Viterbi 级联系统中,存在着缺点:内V A 调制产生突发错误而外V A 调制又非常敏感;内V A 产生硬判决限制了外V A 运用接收软判决的能力。在实际应用中,这两个缺点越发明显。于是引入了SOV A 算法,它采用软(硬)判决计算度量值,且输出相应判决比特和可靠性信息。

SOV A 算法是Hagenauer 于1989年提出的。它是Viterbi 算法的改进类型。Viterbi 算法是一种最大似然译码算法。它的译码过程通俗地来说是在接收序列R 的控制下在码的篱笆图上走编码器走过的路径。

65432187 图 13-9 (2,1,2)码L=6时的篱笆图

图13-9所示的是(2,1,2)码(G (D )=[1+D +D 2,1+D 2])的篱笆图。它表示了编码器状态转移与时间的关系。V A 就是在篱笆图上找寻一条具有最大“度量”路径。下面我们来分析SOV A 算法。

v

S 2=-k m

k

k

s +1

图13-10 SOV A 算法的一个例子

图13-10表示的是一个SOV A 算法的例子。为了简化起见,我们考虑格图(篱笆图)上每一个节点有两个分支,状态数为2v ,v 为编码器寄存器个数。它以δ为时延进行一比特判决,δ足够大,使得2v 个幸存路径以足够大的概率汇聚于一点。如图13-9所示,在k 时刻,对于状态s k ,Viterbi 算法选择一条幸存路径,这是通过计算路径最小距离度量(或最大相关度

量)而得到的。同时状态s k 还对应着一条待选路径。对于幸存路径,将其度量标为M 1,相应的,待选路径的度量我们标为M 2。于是幸存路径选错的概率为:

?

----+=+=+=e e e e e p M M M M M sk 11

1112212 (13.3.29)

其中,Δ= M 2 – M 1≥0。p sk 代表的则是传输不可信度。于是在e 个路径1(幸存路径)与路径2(待选路径)的信息比特不等的位置处,其错误概率为p sk 。我们可以用下式表示:

sk j sk j j p p p p p

)?1()1(??-+-←, e j j j ,...,1=()2()1(j j u u ≠) (13.3.30)其中,j p

?表示的是已存储的路径1的错误概率。则对数似然比可以写为: ,??1log ?j j j

p

p

L -= ∞<≤j L

?0 (13.3.31)结合(13.3.29),(13.3.30),(13.3.31),可以得到:

,1log

1

),?(??)?(j

j L L

j j e

e e

L f L

ααα

++=?←?

?+ (13.3.32)

其中,α的引入是为了防止信噪比的增加而产生溢出。α=4d free E s /N 0。上式可近似写为:

)/,?min(),?(α?=?j j L L

f (13.3.33)于是SOV A 算法可以分为以下几个步骤完成: 1 计算路径度量与度量差; 2 更新可靠性度量;

3 减去内信息,得到下一步所需的外信息值。

以上几步完成后,将所得到的外信息值带入下一个SOV A 译码器中,进行下一步迭代,则可完成SOV A 算法在Turbo 码中译码的应用。SOV A 算法,存在两种比较重要的形式。一种是HR-SOV A ,一种是BR-SOV A 。两种的区别在于可靠性度量的更新方法与原则: ),m i n (?=?≠s

j s j c j s j L L u u (13.3.34)

???+?=?=?=?≠),m i n (),m i n (c

j s j s j c j s j s j s

j c j s j L L

L u u L L u u (13.3.35)式(13.3.34)代表的是HR-SOV A 的置换规则;(13.3.35)代表的是BR-SOV A 的置换规则。可以证明,BR-SOV A 与对数域上的MAP 算法的简化算法MAX-LOG-MAP 算法是等价的。

下图表示的是Turbo 码采用SOV A 译码算法的性能曲线(AWGN 信道,3GPP 交织器N =384,迭代次数6次,分量码G = (13,15)8)。从图中可以看出复杂度减小的代价是性能的降低。

1.00E-07

1.00E-061.00E-051.00E-041.00E-03

1.00E-02

1.00E-01

1.00E+00

0.51 1.52 2.25 2.53

Eb/N0(dB)

B E R

图13-11 Turbo 码采用SOV A 译码算法的性能曲线

五. Rayleigh 衰落信道下Turbo 码的译码

我们详细给出了AWGN 信道上turbo 码的MAP 译码算法。对于Rayleigh 慢衰落信道,MAP 译码算法的修正主要是与信道条件有关的分支转移概率), '(s s k γ。对于充分交织的衰落信道,信道可看作是无记忆的,如果接收机已知信道状态信息(CSI) a k ,则), '(s s k γ应修改为:

) ,'|,(), '(1k k k k k a s S y s S p s s ===-γ

) ,',|() '|(11k k k k k k a s S s S y p s S s S p ==?===--

),|(),|()(p k p k p k s k k s k k a x y p a u y p u P ??= (13.3.36)

其中P u k ()是u k 的先验概率,),|(s

k k s k a u y p 和),|(p k p k p k a x y p 服从高斯概率分布。因此,

),|(),|(p k p k p k s k k s k a x y p a u y p ?

?

?????---???????---∝2222)]12([21ex p )]12([21ex p p k p k p k s k s k s k x a y x a y σσ ?

?????+=2

)(2exp σp k p k p k s k s k s k x x y a x y a B (13.3.37) B k 为常量。于是

{}p k p k p k c s k s k s k c k e k k x y a L x y a L u L u K s s ++=)(ex p ), '(γ (13.3.38)

对于充分交织的衰落信道,如果接收机未知信道状态信息,则分支转移概率), '(s s k γ为:

)|()|()(),'(p k p k k s k k k x y p u y p u P s s ??=γ (13.3.39)

其中,)|(k s k u y p 和)|(p k p k x y p 分别是从),|(s

k k s k a u y p 和),|(p k p k p k a x y p 在Rayleigh 衰落

幅度a k 上取统计平均获得。即

)|(k s

k u y p =

da a u y p a p k s k A ?

),|()(

da e N ae

N u a y a k s

k ?∞

----???

?????=0

/))12((0022

12π (13.3.40) 上式计算非常复杂,一种简化计算方法是:假定)|(k s

k u y p 是高斯分布,则有

)|(k s k u y p ()0/)12)((ex p N y u a E s k k A -∝ (13.3.41)

在一般仿真情况下,假定Rayleigh 衰落的平均能量为1,于是8862.0)(=a E A 。)

|(p

k p k x y p 的计算与此类似。所以,最后得

{}p k p k A c s k s k A c k e k k x y a E L x y a E L u L u K s s )()()(ex p ), '(++=γ (13.3.42)

对于相关的Rayleigh 衰落信道,我们可以在turbo 编码器之后附加一个信道交织器,在接收端通过解交织将Rayleigh 衰落近似为不相关的,然后即可按照上述充分交织信道的译码算法进行仿真。相关衰落信道的编码器组成框图如图13-12所示。

图13-12 相关衰落信道的信道编码器组成框图

因此,我们可以统一用式(13.3.38)表示turbo 码的MAP 译码,并且有

● 未知信道状态信息:8862.0==p

k s k a a ● AWGN 信道: 1==p

k s k a a

§13.4 Turbo 码的分量码、交织器与性能限

本节介绍Turbo 码中分量码以及交织器对性能的影响,并讨论了Turbo 码的平均性能限。

13.4.1 分量码

Turbo 码是建立在一种特殊的系统卷积码—递归系统卷积码(RSC )基础之上的,它以两个RSC 码作为它的分量码,因此分量码的选取对Turbo 码的性能有重要的影响。

一. 分量码的选择

从差错控制编码的有关文献中我们可知,非系统卷积码(NSC )的BER 性能在高信噪比时比约束长度相同的递归系统码要好,而在低信噪比时情况却正好相反。递归系统卷积(RSC )码综合了NSC 码和系统码的特性,虽然它与NSC 码具有相同的trellis 结构和自由距离,但是在高码率(R c ≥23/)的情况下,对任何信噪比,它的性能均比等效的NSC 码要好。

因此,在Turbo 码中采用RSC 码作为分量码。一个生成多项式为(37,21)的16状态RSC 编码器结构如图13-3所示。

图13-13 递归系统卷积码编码器(g 1,g 2)=(37,21) 用RSC 码构成的Turbo 码的码率R 为: 121111

-+=

R R R

(13.4.1)

R 1、R 2为构成Turbo 码的分量码的码率,在经删除后,分量码RSC1与RSC2的码率R 1、R 2可以不同。

Turbo 码的最大似然译码性能分析指出,Turbo 码在高信噪比下的性能主要由它的自由距离所决定。因为Turbo 码的自由距离主要由重量为2的输入信息序列所产生的码字间的最小距离所决定,用本原多项式作为反馈连接多项式的分量编码器所产生的码字的最小重量为最大,因此当Turbo 码交织器的大小给定后,如果分量码的反馈连接多项式采用本原多项式,则Turbo 码的自由距离会增加,从而Turbo 码在高信噪比下的“错误平层(error floor)”会降低。错误平层效应,指的是在中高信噪比,误码曲线变平,也就是说,即使是再增大信噪比,误码率也降不下来。(一般的系统,比如说是BPSK 的误码曲线,误码率随着信噪比的增大是单调下降的。)具体结果如图13-14所示。

图中turbo 码的码率为1/2,迭代次数为6次,N 为交织长度。由图可见,在低信噪比区域,使用非本原反馈多项式的turbo 码的性能要优于采用本原多项式的turbo 码;而在高信噪比区域,却正好相反,本原turbo 码具有很低的错误平层。因此,为了兼顾turbo 码在两个区域的性能,一个分量码可以采用本原分量码,另一个为非本原分量码这种非对称编码

图13-14 采用本原反馈多项式与非本原反馈多项式的turbo 码性能的比较

二. 归零处理对Turbo 码性能的影响

在MAP 译码算法中,前向递推)(s k α与反向递推)(s k β的初始值一般是根据分量编码器的初始状态和终止状态进行初始化的。对于普通的非系统卷积编码器,很容易将其初始状态和终止状态置为一已知状态,比如零状态。而对于turbo 编码器,由于采用了递归结构,其分量编码器需要额外的结尾处理(trellis termination)才能达到终止于零状态,而且由于交织器的存在,将两个编码器同时归零就更为困难。为此,对)(s k α和)(s k β的初始化一般采用如下几种方法:

表13.2 )(s

编码器的归零处理对turbo 码性能的影响如图13-6所示,仿真中turbo 码的码率为1/2,分量码为16状态,生成多项式G 1=G 2=(37,21),迭代次数为6次,使用BCJR 译码算法。由图可见,当交织器的长度小于4096比特时,分量编码器终了状态的归零处理对turbo 码的性能略有改善,并且随着交织长度的增加,这种改善逐渐减小。当交织长度大于4096比特时,分量码的归零处理所带来的性能改善已可以忽略。由此我们得出,当交织长度大于4096比特时,turbo 码不必进行归零,这样也有利于码率的匹配。

一种将两个分量编码器均归零的解决方案如图13-16所示。

图13-15 归零处理对turbo 码性能的影响

图13-16 RSC 编码器的一种归零方法 G = (13,15)8

13.4.2 交织器

在Turbo 码的生成中,交织器扮演着重要的角色。交织器虽然仅仅是在RSC2编码器

s

k p k

之前将信息序列中的N 个比特的位置进行随机置换,但它却起着关键的作用,在很大程度上影响着Turbo 码的性能。通过随机交织,使得编码序列在长为2N 或3N (不使用删余)比特的范围内具有记忆性,从而由简单的短码得到了近似长码。当交织器充分大时,Turbo 码就具有近似于随机长码的特性。所以交织器的设计是Turbo 码设计中的一个重要方面。不同交织器对Turbo 码性能有着不同的影响。 一. 交织器的描述方法

交织器是一个单输入单输出设备,它的输入与输出符号序列有相同的字符集,只是各符号在输入与输出序列中的排列顺序不同。即它是整数Z 上的置换:

Z Z → :π (13.4.2)

如果交织器在第i 时刻的输出为)(i π,对于周期为T 的交织器,它满足下列方程:

i T i T i ?-=- ),()(ππ (13.4.3)

并且可以采用下列集合描述:

???? ??1-T 1

0 1 1 0πππ T- (13.4.4) 目前,Turbo 码交织器有多种设计方法和具体实现形式,常用的有伪随机S-交织器、分组交织器(block interleaver)和BG 非均匀交织器等。其中分组交织器的一种结构如图13-17所示:

图13-17 行写列读的分组交织器

由图可见,经过这种交织器的置换,信息序列中的首尾比特位置在交织前后保持不变。当分量编码器不归零时,从MAP 或SOV A 等算法的译码原理可知,分量译码器对一帧数据中的最后几比特译码的可信度较低,这样如果原帧数据中的最后几比特交织后仍处于帧数据的尾部,则整个turbo 码性能的提高就受到了限制,我们称此为尾效应(tail effect)。为了避免这个问题,在交织器的设计中应该将原帧数据中的最后几比特置换到RSC2的输入序列的前部(非尾部位置)。当分量编码器均归零时,则不存在尾效应。

关于伪随机交织器,目前所公认的性能较好的是伪随机S-交织器,即每一个随机产生的置换位置)(i π均与它前边的S 个值:)(,),2(),1(s i i i ---πππ 进行比较,如果距离

s j s j i i ,2,1 ,|)()(|=<--ππ,则)(i π被拒绝,必须重新产生。在本部分中的仿真数

据除特别说明外,均采用的是S-交织器。

不同交织器长度时的S-交织器与分组交织器比较结果如图13-18和图13-19所示,其中Turbo码的码率为1/2,两个分量编码器均归零。

图13-18 分组交织器与随机交织器的性能比较(16状态NP16-NP16)

图13-19 分组交织器与随机交织器的性能比较(4状态P4-P4)

关于信道编码中Turbo码的原理与实现

Turbo码的编码原理及实现 摘要 纠错码技术作为改善数字通信可靠性的一种有效手段,在数字通信的各个领域中获得极为广泛的应用。Turbo码是并行级联递归系统卷积码,在接近Shannon 限的低信噪比下能获得较低的误码率,现已被很多系统所采用。本文分析了Turbo码编码译码的原理,为了使Turbo码仿真更容易,研究并建立了基于Matlab 中Simulink通信模块的Turbo码仿真模型。使用所建立的模型进行仿真,结果表明,在信噪比相同的情况下,交织长度越大、迭代次数越多、译码算法越优,Turbo码性能越好,设计实际系统时,应综合考虑各因素。 关键词:Turbo码;Simulink仿真;交织长度;迭代次数 Abstract As an effective means to improve the reliability of digital communication, error correcting code technology is widely used in the field of digital communication.Turbo code is a parallel concatenated recursive systematic convolutional code, which can obtain lower bit error rate in the low SNR near Shannon limit,which is now used by many systems.In this paper,the principle of Turbo coding and decoding is analyzed,in order to make the Turbo Code simulation easier,a Turbo code simulation model based on Simulink module of Matlab is studied. Simulation result using the established model shows that the longer interleaving length,the more iteration times and the better decoding algorithm bring the better Turbo code performance with the same SNR value. Keywords:Turbo code;Simulink simulation;Interleaving length;Iteration times;

Turbo码详解

第十三章 Turbo 码 Shannon 理论证明,随机码是好码,但是它的译码却太复杂。因此,多少年来随机编码理论一直是作为分析与证明编码定理的主要方法,而如何在构造码上发挥作用却并未引起人们的足够重视。直到1993年,Turbo 码的发现,才较好地解决了这一问题,为Shannon 随机码理论的应用研究奠定了基础。 Turbo 码,又称并行级连卷积码(PCCC),是由C. Berrou 等在ICC ’93会议上提出的。它巧妙地将卷积码和随机交织器结合在一起,实现了随机编码的思想,同时,采用软输出迭代译码来逼近最大似然译码。本章首先介绍Turbo 码的提出与构成原理;介绍迭代反馈译码算法(包括AWGN 信道与Rayleigh 衰落信道下的译码);然后针对Turbo 码编译码特性,对几个问题进行了说明;最后介绍Turbo 码在3GPP 中的具体应用。 §13.1 Turbo 码的提出 Turbo 码,又称并行级连卷积码(PCCC),是由C.Berrou 等在ICC ’93会议上提出的。它巧妙地将卷积码和随机交织器结合在一起,实现了随机编码的思想,同时,采用软输出迭代译码来逼近最大似然译码。模拟结果表明,如果采用大小为65535的随机交织器,并且进行18次迭代,则在E N b /0≥0.7dB 时,码率为1/2的Turbo 码在AWGN 信道上的误比特率(BER )≤-105 ,达到了近Shannon 限的性能(1/2码率的Shannon 限是0dB )。因此,这一超乎寻常的优异性能,立即引起信息与编码理论界的轰动。图13-1中给出了Turbo 码及其它编码方案的性能比较,从中可以看出Turbo 编码方案的优越性。 由于Turbo 码的上述优异性能并不是从理论研究的角度给出的,而仅是计算机仿真的结果。因此,Turbo 码的理论基础还不完善。后来经过不少人的重复性研究与理论分析,发现Turbo 码的性能确实是非常优异的。因此,turbo 码的发现,标志着信道编码理论与技术的研究进入了一个崭新的阶段,它结束了长期将信道截止速率0R 作为实际容量限的历史。 需要说明的是,由于原Turbo 编译码方案申请了专利,因此在有关Turbo 码的第一篇文章中,作者没有给出如何进行迭代译码的实现细节,只是从原理上加以说明。此后,P. Robertson 对此进行了探讨,对译码器的工作原理进行了详细说明。人们依此进行了大量的模拟研究。 Turbo 码的提出,更新了编码理论研究中的一些概念和方法。现在人们更喜欢基于概率的软判决译码方法,而不是早期基于代数的构造与译码方法,而且人们对编码方案的比较方法也发生了变化,从以前的相互比较过渡到现在的均与Shannon 限进行比较。同时,也使编码理论家变成了实验科学家。

Turbo码原理简介

Turbo 码原理简介 1993年C.Berrou 、A.Glavieux 和P.Thitimajshiwa 首先提出了称之为Turbo 码的并行级联编译码方案。Turbo 码性能取决于码的距离特性。线性码的距离分布同于重量分布,如果低重量的输入序列经编码得到的还是低重量的输出序列,则距离特性变坏。该特性对于块码来说不存在问题;然而对于卷积码,则是个非常严重的问题。因为卷积码的距离特性是影响误码率的一个非常重要的因素。 在Turbo 码中,利用递归系统卷积码(RSC)编码器作为成员码时,低重量的输入序列经过编码后可以得到高重量的输出序列。同时交织器的使用,也能加大码字重量。实际上,Turbo 码的目标不是追求高的最小距离,而是设计具有尽可能少的低重量码字的码。Turbo 码由两个递归系统卷积码(RSC)并行级联而成。译码采用特有的迭代译码算法。 1 Turbo 码编码原理 典型的Turbo 码编码器结构框图如图2所示:由两个反馈的编码器(称为成员编码器)通过一个交织器I 并行连接而成。如果必要,由成员编码器输出的序列经过删余阵,从而可以产生一系列不同码率的码。例如,对于生成矩阵为g=[g1,g2]的(2,1,2)卷积码通过编码后,如果进行删余,则得到码率为1/2的编码输出序列;如果不进行删余,得到的码率为1/3。一般情况下,Turbo 码成员编码器是RSC 编码器。原因在于递归编码器可以改善码的比特误码率性能。 2 编码 方案中使用的Turbo 码为1/3码率的并行级联码,它的编码器由两个相同的码率为1/2的RSC 编码器及交织器组成,如图4所示。 由于与非递归卷积码相比,递归卷积码产生的码字重量更大,所以这里采 图7 Turbo 码编码器 输入信 息数据 编码器I I 编码器II 删 余 复接 器 编码 输出 图2 Turbo 码编码原理图

turbo码结构和编码方法

摘要:Turbo码,由于性能接近Shannon理论限,在低信噪比的应用环境下比其他编码好。因而第三代移动通信系统多种方案中,考虑将Turbo码作为无线信道的编码标准之一。本文介绍了Turbo码的结构和编解码方法,及其在第三代移动通信系统中的应用。 关键词:信道编码;Turbo码;RSC编码器;交织器;迭代译码;第三代移动通信 Abstract: Turbo codes,because of it’s outstanding performance in channel coding,has been considered by IMT-2000 as a plan of application. This paper introduces the principle of basic structure of Turbo codes.Also,the paper introduces the mainly application in 3G(3ird Generation) mobile telecomminucation systems. Key words: channel coding; Turbo codes; RSC; interleaver; recursive algorithm; 3G(the 3ird generation)mobile telecommunication systems 一、引言 信息论诞生50多年以来,人们一直努力寻找更加接近Shannon限、误差概率小的的编码方法。在1993年ICC国际会议上,C.Berrou,A.Glavieux和P.Thitimajshiwa提出了一种称之为Turbo Code的编、译码方案,并在交织器大小为:情况下,迭代18次,对它进行了计算机仿真。仿真结果表明,当归一化信噪比时,。其编码增益比Shannon信道容量的差距小于1dB。[1] 从第三代移动通信系统候选方案来看,普遍要求提供中速或者高速的数据业务,一般的数据业务信道为64kbps,144kbps,384kbps。在信噪比低的无线信道中,Turbo码的性能要优宜的多,比较用于第二代移动通信中的级联RS加卷积码,Turbo码性能可提高1dB以上。所以IMT-2000多种方案中,已经将Turbo 码做为传输高速数据的信道编码标准之一。[3] [4] 本文了介绍Turbo码的基本结构和编译码原理,以及Turbo码在第三代移动通信中的应用。 二、Turbo码的编、译码原理 Turbo码的编码 从编码器原理图可以看出,编码是由三部分组成的:两个RSC子编码器RSC1、RSC2,一个Nbit交织(Interleaving)器,一个删余(puncturing)单元。 2.1 编码器的设计 假设输入信息编码器的信息单元为,它一方面直接输入RSC1进行编码,生成校验序列x1p。另一方面经过交织后,产生一个经交织的系统序列u’和另一个校验序列x2p。当码率R大于2/3时,在任何大小信噪比情况下,由于系统递归卷积编码器RSC(Recursive SystematicConvolutional)的自由距离都比非系统卷加码NSC(Nonsystematic Convolutional)大,BER比其小,显出更好的性能,因而Turbo码中采用了RSC编码器[1]。其编码矩阵可以表示成:其中。编码器由个存储单元构成,其输入为信息比特。为使编码器初始状态置于全零

Turbo码编码的研究现状

一.T urbo码的提出 尽管每一次便译码方案的更新都会更加接近香农容量,但到1990年为止,对于二进制调制,即使在很好的信道上(如AWGN信道),编码性能在理论和实际上也存在大约3dB的差异。也就是说,应用于移动电话、卫星系统和其他应用领域的实际编码所需要的能量是理论值的两倍。对于衰落信道,这个差距将会更大。 在1993年的国际通信会议(ICC93)上,法国不列颠通信大学的Claude Berrou教授等人提出了Turbo码方案。Turbo码由于很好地应用了shallnon信道编码定理中的随机性编译码条件而获得了几乎接近ShallIlon理论极限的译码性能。仿真结果表明,在65536的比特交织长度下,Turbo码可以达到距shannon极限仅差0.7dB的优异性能。到目前为止,Turbo 码在现有的信道编码方案中是最好的,尚未有任何一种编码方案能与其相比拟。Turbo码的出现在编码理论界引起了轰动,成为自信息论提出以来最重大的研究成果。 Turbo码的提出,对信道编码领域产生了意义深远的影响。首先,Turbo码提供了一种在低信噪比条件下性能优异的级联编码方案和次最优的迭代译码方法;其次,它改变了研究者设计好码的思路,即从最大化码字最小距离转化为最小化低重码字个数,同时也改变了判断好码的准则,即从与截止速率比较转向了与Shannon理论极限进行比较;第三,Turbo迭代的思想为实现迭代信道估计、迭代均衡以及信号检测提供了新的思路。 二.T urbo码编码的研究现状 自从Turbo码提出以来,编码领域掀起了一股研究热潮,也取得了不少的成果。1995年,R.Podemskiski等给出了计算汉明距离谱(HDs)的算法,并利用最小汉明距离对Turbo 码的性能进行了分析,分析结果与模拟结果相当接近。此后,Svirid引用分组码的性能分析方法分析了交织器的设计与Turbo码的性能,给出了误比特率(BER)的联合界,并指出了交织器的设计原则是使Turbo码的最小重量尽可能大。Perez等从距离谱的观点分析了Turbo 码在低信噪比时的优异性能,在Turbo码的编码器中,指出交织器起着“谱窄化"的作用,使得Turbo码的小重量的码字数目减少,从而提高译码性能。Perez等还通过距离谱解释了Turbo码译码性能中出现的误码底限现象。 1996年,S.Belledetto和G.MontorSi引入了均匀交织器的概念,给出了Turbo码的一个BER联合性能上界,并指出好的交织器是存在的。1998年,他们对众多的RSC子码进行了研究,提出了一些性能优秀的RSC成员码。这些研究为构造优秀的Turbo码提供了参考。 另外,在Turbo码迭代译码器方面的研究也是层出不穷。在MAP类译码算法和SoV A 类译码算法的研究中,主要集中研究的问题又两类译码算法的比较、译码算法的次优简化、译码结构的局部改进、译码时延的改进、定点译码器实现时数据量化对译码性能的影响等等。 Turbo码迭代译码的思想还逐渐被应用于其他领域,诸如迭代均衡技术、迭代与多用户检测相结合、迭代与高效调制技术的结合,此外迭代译码技术还可以应用于信道编码与有记忆调制的级联系统。Turbo码本身也出现一些变体,1996年,MacKav提出了低密度校验码(LDPC)。 2001年,Li Ping提出了“Turbo(单校验)码”,它的译码复杂度比Turbo码低得多。 目前的研究表明,Turbo码急需解决的问题有:交织方法的选择、译码算法的改进以及相应终止技术。这些都妨碍了Turbo码能够应用于实际生产、生活中,是Turbo码研究的几个重要方向。

信息论与编码关于turbo码的讨论

信 息 论 与 编 码 结 课 论 文 班级:通信131 姓名:刘伟 学号:201300484310

摘要 信息论与编码研究的是整个通信的最基本的问题,可以说信息论是我们专业的大纲,从香农1948年发表《通信中的数学原理》到现在60余年的时间,信息论对整个行业的发展有着不可替代的指导意义。 信息论中最著名的是香农的四大定理(国内一般称三大定理),第一定理信源编码定理,是解决通信中信源的压缩问题,也是后来图像和视频压缩的基本定理;第二定理信道编码定理,是解决通信中数据能够在特定信道中传输的最大值的问题,即最大数据速率小于信道容量,容量问题是通信中研究最活跃的问题之一,比如4G或LTE中广泛用到的MIMO(多输入多输出,或多天线)技术,其理论本质是David Tse提出的该容量与天线数成线性递增的关系(这句话是概述,我凭印象写的);第三定理有损信源编码定理解决了在允许一定失真的情况下的信源编码问题,比如jpeg图像编码,mp3音频编码,都是有损的编码,其都是在香农第三定理的界之下得出的;第四定理信源信道分离定理,解决了信源编码和信道编码能够分开来解决的问题,所以现在做信源编码的可以是一部分人,做信道编码的可以是另一部分人。这门课是比较难,而且国内对信息论的引进也比较晚,更不用说国内学者对信息论的重视程度(几乎没有在该领域出名的国内的学者),但这门课确实是通信的基础,就像欧几里得的几何原本影响了西方学界近2000年一样,信息论在未来几百年内也必将影响通信的发展。 回到实际,要说这门课和专业哪方面联系得比较紧密的话,我觉得,研究物理层(主要是无线通信)、编码(信道编码或图像视频编码)、密码学有必要仔细研究下信息论,其他比如网络层、搞硬件设计、光纤通信等二级学科的话,学习这门课只要了解这四大(或三大)定理即可。

Turbo码的各种译码算法及比较

Turbo 码的各种译码算法及比较 Turbo 码有一重要特点是其译码较为复杂,比常规的卷积码要复杂的多,这种复杂不仅在于其译码要采用迭代的过程,而且采用的算法本身也比较复杂。这些算法的关键是不但要能够对每比特进行译码,而且还要伴随着译码给出每比特译出的可靠性信息,有了这些信息,迭代才能进行下去。用于Turbo 码译码的具体算法有:MAP(Maximum A Posterori)、Max-Log-MAP 、Log-MAP 和SOV A(Soft Output Viterbi Algorithm)算法。MAP 算法是1974年被用于卷积码的译码,但用作Turbo 码的译码还是要做一些修改;Max-Log-MAP 与Log-MAP 是根据MAP 算法在运算量上做了重大改进,虽然性能有些下降,但使得Turbo 码的译码复杂度大大的降低了,更加适合于实际系统的运用;Viterbi 算法并不适合Turbo 码的译码,原因就是没有每比特译出的可靠性信息输出,修改后的具有软信息输出的SOV A 算法,就正好适合了Turbo 码的译码。这些算法在复杂度上和性能上具有一定的差异,系统地了解这些算法的原理是对Turbo 码研究的基础,同时对这些算法的复杂度和性能的比较研究也将有助于Turbo 的应用研究。 MAP 算法 MAP 算法最初是用来估计无记忆噪声下的马尔可夫过程的,它是一种最优的算法。Bahl 等人于1974年把它用于线性分组码和卷积码的译码中,在用于卷积码的译码时,对于给定接收序列Y ,它不像Viterbi 算法那样以栅格路径上的比特组错误最少为目的, 而是以译码出来的符号i x 的错误最少为目的。即, (){}arg m ax i i i x x P x Y = (1.1) 不过在大多情况下,它和Viterbi 算法的作用是一致的。 由于在卷积码的译码中,MAP 算法要考虑栅格图中的所有可能路径,这样运算量就非常大,实际系统中很少用到。这样虽然MAP 算法早在1974年就被提出,但一直未

PCCC码(Turbo码)编码和译码算法

目录 一、概述 (1) 二、PCCC码的编码算法 (3) 三、PCCC码的译码算法 (13)

一、概述 虽然软判决译码、级联码和编码调制技术都对信道码的设计和发展产生了重大影响,但是其增益与Shannon 理论极限始终都存在2~3dB 的差距。因此,在Turbo 码提出以前,信道截止速率R0一直被认为是差错控制码性能的实际极限,shannon 极限仅仅是理论上的极限,是不可能达到的。 根据shannon 有噪信道编码定理,在信道传输速率R 不超过信道容量C 的前提下,只有在码组长度无限的码集合中随机地选择编码码字并且在接收端采用最大似然译码算法时,才能使误码率接近为零。但是最大似然译码的复杂性随编码长度的增加而加大,当编码长度趋于无穷大时,最大似然译码是不可能实现的。所以人们认为随机性编译码仅仅是为证明定理存在性而引入的一种数学方法和手段,在实际的编码构造中是不可能实现的。 在1993 年于瑞士日内瓦召开的国际通信会议(1CC,93)上,两位任教于法国不列颠通信大学的教授C.Berrou、A.Glavieux 和他们的缅甸籍博士生 P.thitimajshima 首次提出了一种新型信道编码方案——Turbo 码,由于它很好地应用了shannon 信道编码定理中的随机性编、译码条件,从而获得了几乎接近shannon 理论极限的译码性能。仿真结果表明,在采用长度为65536 的随机交织器并译码迭代18 次情况下,在信噪比E b/N0≥0.7dB 并采用BPSK 调制时,码率为1/2 的Turbo 码在AWGN 信道下的误比特率≤10-5,达到了与Shannon 极限仅相差0.7dB 的优异性能(1/2 码率的Shannon 极限是0dB)。 Turbo 码又称并行级联卷积码(PCCC,Parallel Concatenated Convolutional Code),它巧妙地将卷积码和随机交织器结合在一起,在实现随机编码思想的同时,通过交织器实现了由短码构造长码的方法,并采用软输出迭代译码来逼近最大似然译码。可见,Turbo 码充分利用了Shannon 信道编码定理的基本条件,因此得到了接近Shannon 极限的性能。 在介绍Turbo 码的首篇论文里,发明者Berrou 仅给出了Turbo 码的基本组成和迭代译码的原理,而没有严格的理论解释和证明。因此,在Turbo 码提出之初,其基本理论的研究就显得尤为重要。J.Hagenauer 首先系统地阐明了迭代译码的原理,并推导了二进制分组码与卷积码的软输入软输出译码算法。由于在Turbo 码中交织器的出现,使其性能分析异常困难,因此S.Benedetto 等人提出了均匀交织(UI,Uniform interleaver)的概念,并利用联合界技术给出了Turbo 码的平均性能上界。D.Divsalar 等人也根据卷积码的转移函数,给出了Turbo 码采用MLD 时的误比特率上界。对于Turbo 码来说,标准联合界在信噪比较小时比较宽松,

TURBO码的编译码原理及matlab仿真

Turbo码的编译码原理及MATLAB仿真

摘要 纠错码技术作为改善数字通信可靠性的一种有效手段,在数字通信的各个领域中获得极为广泛的应用。Turbo码是并行级联递归系统卷积码,在接近Shannon限的低信噪比下能获得较低的误码率,现已被很多系统所采用。本文分析了Turbo码编码译码的原理,为了使Turbo码仿真更容易,研究并建立了基于Matlab中Simulink通信模块的Turbo码仿真模型。使用所建立的模型进行仿真,结果表明,在信噪比相同的情况下,交织长度越大、迭代次数越多、译码算法越优,Turbo码性能越好,设计实际系统时,应综合考虑各因素。 关键词:Turbo码;Simulink仿真;交织长度;迭代次数 Abstract As an effective means to improve the reliability of digital communication, error correcting code technology is widely used in the field of digital communication.Turbo code is a parallel concatenated recursive systematic convolutional code, which can obtain lower bit error rate in the low SNR near Shannon limit,which is now used by many systems.In this paper,the principle of Turbo coding and decoding is analyzed,in order to make the Turbo Code simulation easier,a Turbo code simulation model based on Simulink module of Matlab is studied. Simulation result using the established model shows that the longer interleaving length,the more iteration times and the better decoding algorithm bring the better Turbo code performance with the same SNR value. Keywords:Turbo code;Simulink simulation;Interleaving length;Iteration times;

turbo码翻译

Turbo cod e 综述 Turbo编码器如下图1,它使用双比特循环递归系统卷积码。前导突发后面的第一个字节的MSB比特被分配到A,再其后的第二个比特分配给B,剩下的突发内容依次分配下去。 图1 turbo编码器 将k比特块或者N对块送入编码器中()。N是4的倍数(k是8的倍数)。 用于定义连接的多项式可以使用八进制或者符号记法表示如下: 对反馈支路:15(用八进制表示),等价的符号记法: 对Y校验比特:13,等价符号记法: 对W校验比特:11,等价符号记法: A端口输入的比特连接移位寄存器的“1”;B端口输入的比特连接移位寄存器的“1”,D和. 首先,送入编码器(使用循环状态进行初始化)的序列是自然正常顺序(开关打在位置1处),它有增加的地址.这第一个编码器称作。 其次,送入编码器(使用循环状态进行初始化)的序列是交织顺序(开关打在位置2处),它有增加的地址.这第一个编码器称作。函数

Turbo码排列描述 在两个等级水平上进行排列,首先在内部对上(level1),其实是对之间(level2):设置排列参数P0, P1, P2 和P3 j = 0, ...N – 1 level1 如果j mod. 2 = 0, 则让(A,B) = (B,A),即进行对翻转。 level2 下面的表1给出了使用的默认参数组合。这些参数能够通过TCT进行更新。交叉关系满足奇/偶规则(即当j是偶数的时候,i就是奇数,反正同理)这样就允许两个编码器有相同的打孔图样。 表1 循环状态的决定 编码器的状态表示为:S (0 ≤S ≤7) 其中S = 4 × + 2 ×+ (见图1)循环状态

Turbo码编解码

实验五Turbo码编码实验指导 一、实验目的 1、掌握TURBO码的编解码原理。 2、掌握TURBO码的软件仿真方法。 3、掌握TURBO码的硬件仿真方法。 4、掌握TURBO码的硬件设计方法。 二、预习要求 1、掌握TURBO码的编解码原理和方法。 2、熟悉matlab的应用和仿真方法。 3、熟悉Quatus的应用和FPGA的开发方法。 三、实验原理 1、Turbo码编码原理 Turbo码是1993年法国人Berrou提出的一种新型编码方法。它巧妙的将卷积码和随机交织器结合在一起;同时,采用软输出迭代译码来逼近最大似然译码。 Turbo码编码原理框图如图所示: a、编码器 图中编码器的结构图如图 输入为10010001时,输出为1110010 1、寄存器为00:输入为1,反馈位为1,状态为100,输出为1; 2、寄存器为10:输入为0,反馈位为1,状态为110,输出为1; 3、寄存器为11:输入为0,反馈位为0,状态为011,输出为1; 4、寄存器为01:输入为0,反馈位为1,状态为101,输出为0; 5、寄存器为10:输入为1,反馈位为0,状态为010,输出为0; 6、寄存器为01:输入为0,反馈位为1,状态为101,输出为0; 7、寄存器为10:输入为0,反馈位为1,状态为110,输出为1;

8、寄存器为11:输入为1,反馈位为1,状态为111,输出为0; 图中,两个方框为移位寄存器,⊕为异或器。 b、交织器 交织可以将长的突发错误分散到每个行码中去。以最常用的交织器-行列交织器为例,它的交织方式是采用行顺序写入、列顺序读出的方式,而解交织列顺序写入,行顺序读出。 交织时,输入序列为: a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a41 a42 a43 a44 通过行列交织后变为: a11 a21 a31 a41 a12 a22 a32 a42 a13 a23 a33 a43 a14 a24 a34 a44 上述序列为四组长度为四的码组。假设每组码的纠错能力为1位,设码组1:a11,a12 ,a13,a14在传输信道中遇到突发错误,a12,a13,a14出错。那么,码组一将不能正确纠错。如果输入码组在输入突发信道前先交织,则遇到相同突发错误后,a21,a31,a41出错,在数据收到并解交织后,错误分散到了各码组中(二、三、四组),因此错误可以正常识别和纠正。因此,通过交织器将信道中产生的突发错误随机化,信道抗突发错误的能力得到了增强。通过交织,原有的只能纠随机错误的码,可以纠正较长的突发错误或突发错误与随机错误的组合。 c、开关单元 开关单元输入为两个编码器的编码输出,通过开关器件用于选择输出某一路或两路编码输出。当码率为1/3时,将两路编码输出一起输出;当码率为1/2时,轮流输出两路编码输出。 d、复接器 复接器将两路或三路信号,串接起来变为一路信号,码率为原来码率的1/2或1/3。设:编码器输入为:a1,a2,a3……;编码器1输出为b1,b2,b3……;编码器2输出为c1, c2, c3 ……。当码率为1/2时,开关电路的输出为:b1,c2,b3,c4……复接器的输出为:a1,b1,a2,c2,a3,b3,a4,c4……当码率为1/3时,开关电路的输出为:b1,c1,b2,c2……复接器的输出为:a1,b1,c1,a2,b2,c2,a3,b3,c3,a4,b4,c4……。 2、Turbo码的译码原理 由于Turbo码是由两个或多个分量码经过不同交织后对同一信息序列进行编码,Turbo码译码算法为

双比特Turbo码编码分析与译码实现

DOUBLE BINARY TURBO CODES ANALYSIS AND DECODER IMPLEMENTATION A THESIS SUBMITTED TO THE DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING AND THE INSTITUTE OF ENGINEERING AND SCIENCES OF BILKENT UNIVERSITY IN PARTIAL FULLFILMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE By ?zlem Y?lmaz September 2008

I certify that I have read this thesis and that in my opinion it is fully adequate, in scope and in quality, as a thesis for the degree of Master of Science. Prof. Dr. Abdullah Atalar (Supervisor) I certify that I have read this thesis and that in my opinion it is fully adequate, in scope and in quality, as a thesis for the degree of Master of Science. Prof. Dr. Erdal Ar?kan I certify that I have read this thesis and that in my opinion it is fully adequate, in scope and in quality, as a thesis for the degree of Master of Science. Assist. Prof. Dr. ?brahim K?rpeo?lu Approved for the Institute of Engineering and Sciences: Prof. Dr. Mehmet B. Baray Director of Institute of Engineering and Sciences

Turbo码原理及仿真

Turbo 码原理及仿真 1993年C.Berrou 、A.Glavieux 和P .Thitimajshiwa 首先提出了称之为Turbo 码的并行级联编译码方案。Turbo 码性能取决于码的距离特性。线性码的距离分布同于重量分布,如果低重量的输入序列经编码得到的还是低重量的输出序列,则距离特性变坏。该特性对于块码来说不存在问题;然而对于卷积码,则是个非常严重的问题。因为卷积码的距离特性是影响误码率的一个非常重要的因素。 在Turbo 码中,利用递归系统卷积码(RSC)编码器作为成员码时,低重量的输入序列经过编码后可以得到高重量的输出序列。同时交织器的使用,也能加大码字重量。实际上,Turbo 码的目标不是追求高的最小距离,而是设计具有尽可能少的低重量码字的码。Turbo 码由两个递归系统卷积码(RSC)并行级联而成。译码采用特有的迭代译码算法。 1 Turbo 码编码原理 典型的Turbo 码编码器结构框图如图2所示:由两个反馈的编码器(称为成员编码器)通过一个交织器I 并行连接而成。如果必要,由成员编码器输出的序列经过删余阵,从而可以产生一系列不同码率的码。例如,对于生 成矩阵为g=[g1,g2]的(2,1,2)卷积码通过编码后,如果进行删余,则得到码率为1/2的编码输出序列;如果不进行删余,得到的码率为1/3。一般情况下,Turbo 码成员编码器是RSC 编码器。原因在于递归编码器可以改善码的比特误码率性能。 2 编码 方案中使用的Turbo 码为1/3码率的并行级联码,它的编码器由两个相同的码率为1/2的RSC 编码器及交织器组成,如图4所示。 由于与非递归卷积码相比,递归卷积码产生的码字重量更大,所以这里采 图7 Turbo 码编码器 图2 Turbo 码编码原理图

Turbo码详解

第十三章 Turbo 码 Shannon 理论证明,随机码是好码,但是它的译码却太复杂。因此,多少年来随机编码理论一直是作为分析与证明编码定理的主要方法,而如何在构造码上发挥作用却并未引起人们的足够重视。直到1993年,Turbo 码的发现,才较好地解决了这一问题,为Shannon 随机码理论的应用研究奠定了基础。 Turbo 码,又称并行级连卷积码(PCCC),是由C. Berrou 等在ICC ’93会议上提出的。它巧妙地将卷积码和随机交织器结合在一起,实现了随机编码的思想,同时,采用软输出迭代译码来逼近最大似然译码。本章首先介绍Turbo 码的提出与构成原理;介绍迭代反馈译码算法(包括AWGN 信道与Rayleigh 衰落信道下的译码);然后针对Turbo 码编译码特性,对几个问题进行了说明;最后介绍Turbo 码在3GPP 中的具体应用。 §13.1 Turbo 码的提出 Turbo 码,又称并行级连卷积码(PCCC),是由C.Berrou 等在ICC ’93会议上提出的。它巧妙地将卷积码和随机交织器结合在一起,实现了随机编码的思想,同时,采用软输出迭代译码来逼近最大似然译码。模拟结果表明,如果采用大小为65535的随机交织器,并且进行18次迭代,则在E N b /0≥0.7dB 时,码率为1/2的Turbo 码在AWGN 信道上的误比特率(BER )≤-105 ,达到了近Shannon 限的性能(1/2码率的Shannon 限是0dB )。因此,这一超乎寻常的优异性能,立即引起信息与编码理论界的轰动。图13-1中给出了Turbo 码及其它编码方案的性能比较,从中可以看出Turbo 编码方案的优越性。 由于Turbo 码的上述优异性能并不是从理论研究的角度给出的,而仅是计算机仿真的结果。因此,Turbo 码的理论基础还不完善。后来经过不少人的重复性研究与理论分析,发现Turbo 码的性能确实是非常优异的。因此,turbo 码的发现,标志着信道编码理论与技术的研究进入了一个崭新的阶段,它结束了长期将信道截止速率0R 作为实际容量限的历史。 需要说明的是,由于原Turbo 编译码方案申请了专利,因此在有关Turbo 码的第一篇文章中,作者没有给出如何进行迭代译码的实现细节,只是从原理上加以说明。此后,P. Robertson 对此进行了探讨,对译码器的工作原理进行了详细说明。人们依此进行了大量的模拟研究。 Turbo 码的提出,更新了编码理论研究中的一些概念和方法。现在人们更喜欢基于概率的软判决译码方法,而不是早期基于代数的构造与译码方法,而且人们对编码方案的比较方法也发生了变化,从以前的相互比较过渡到现在的均与Shannon 限进行比较。同时,也使编码理论家变成了实验科学家。

Turbo码的性能分析与仿真

目录 一、简述信道编码 (3) 1.信道编码的原理 (3) 2.信道编码的码型 (3) 2.1分组码 (3) 2.2 卷积码 (4) 2.3 格型码 (4) 2.4 Turbo 码 (4) 二、Turbo码介绍 (5) 1.Turbo的提出 (5) 2. Turbo码编译码原理 (5) 3. Turbo码仿真建模 (7) 4.仿真结果分析 (9) 三、总结 (12) 四、参考文献 (12)

一、简述信道编码 1.信道编码的原理 上了信息论与编码这门课我们知道,图像信号信源压缩编码的目的就是要去掉图像中的空间冗余和时间冗余,从而降低了总的数据率,提高了信息量的效率。这样,容许保证一定图像质量的数字信号能以较少的数据量快速传输出去。与此同时,经信源编码的去冗余而提高信源的信息熵(每个符号的平均信息量)后,数字信号的抗干扰能力明显下降了,这是不言而喻的,因为未压缩之前每个符号的信息量很低。因此,压缩后的数字信号很容易受到传输通道中引入的噪声、多径反射和衰落等的影响而造成接收端发生程度不同的误码,有的甚至无法恢复出原始数据。为解决这个问题,信道编码应运而生了。所谓信道编码就是为提高信息传输可靠性而进行的编码(在信源编码的基础上以降低传输的信息量为代价来提高可靠性)。信道编码可以检测、纠正由于传输造成的误码,所以这种编码也常称为差错控制编码。信道编码是数字通信系统中的重要组成部分,其作用是完成检错纠错,码形变换的任务,从而提高传输信道的可靠性。 信道编码的原理简言之就是要使传输符号间具有某种特定的关系,通常将要传输的信息分组,根据某种规则,使每组信息映射(映射是数学上的一个术语,源于集合论,映射又称为变换,意思是两个集中的元素有某种对应关系。)到一组信道符号,这组符号相互之间具有某种特定关系,即使其中某些符号在传输中会出错,也会发现这些错误,并进一步纠正它们。显然,要实现信源具有检错和纠错能力,必需按一定的规则在信源编码的基础上再增加一些冗余码元(又称监督码),使这些冗余码元与被传信息码元之间建立一定的关系,发送端完成这个任务的过程称为纠错编码。 2.信道编码的码型 目前,常用的信道编码的码型有两种:分组码和卷积码。如我们所熟悉的RS 码就属于分组码,当然还有一些其它码型,如TCM 和Turbo 码等,广电中现阶段己使用了分组码、卷积码和格型码,下面简要介绍目前信道编码使用的四种码型。 2.1分组码 在每组信息映射到一组符号的过程中,如果映射过程只与当前这组信息有关,相应的编码就是分组码。分组码将信息码元序列划分成段落,每一段包含若干个信息码元,然后由这若干个信息码元按一定规则产生出一些监督码元,信息码元和监督码元组合在一起形成一个码组,在每个码组中,监督码元与本码组中的信息码元有关,与其他码组

Turbo码原理简介

Turbo 码原理简介 1993 年 C.Berrou 、A.Glavieux 和 P.Thitimajshiwa 首先提出了称之为 Turbo 码的并行级联 编译码方案。 Turbo 码性能取决于码的距离特性。线性码的距离分布同于重量分布,如果低 重量的输入序列经编码得到的还是低重量的输出序列, 则距离特性变坏。 该特性对于块码来 说不存在问题; 然而对于卷积码, 则是个非常严重的问题。 因为卷积码的距离特性是影响误 码率的一个非常重要的因素。 在 Turbo 码中,利用递归系统卷积码 (RSC) 编码器作为成员码时,低重量的输入序列经 过编码后可以得到高重量的输出序列。同时交织器的使用,也能加大码字重量。实际上, Turbo 码的目标不是追求高的最小距离,而是设计具有尽可能少的低重量码字的码。 Turbo 码由两个递归系统卷积码 (RSC)并行级联而成。译码采用特有的迭代译码算法。 1 Turbo 码编码原理 图 7 Turbo 码编码器 由于与非递归卷积码相比,递归卷积码产生的码字重量更大,所以这里采 用了两个相同的系统递归卷积码 (RSC )。信息序列分成相同的两路,第一路 典型的 Turbo 码编码器结构框图如图 2 所示:由两个反馈的编码器 (称为成员编码器) 通过一个交织器 I 并行连接而成。如果必要,由成员编码器输出的序列经过删余阵,从而可 以产生一系列不同码率的码。例如,对 于生 成矩阵为 g=[g1,g2] 的(2,1, 2)卷 积码通过 编码后,如果进行删余,则得 到码率为 1/2 的编码输出序列;如果不 进行删余,得到的 码率为 1/3。一般情 器是 RSC 编码器。原因在于递归编码器可 以改善码的比特误码率性能。 2 编码 方案中使用的 Turbo 码为 1/3码率的并行级联码, 它的编码器由两个相同的 码率为 1/2 的RSC 编码器及交织器组成,如图 4 所示。 图 2 Turbo 码编码原

Turbo码的编译码算法仿真讲解

电子信息类实践课III 通信系统仿真 题目Turbo码的编译码算法仿真 专业 学号 姓名 日期 注:本报告仅供参考

1、课程设计目的(黑体小三,段前段后个一行) 通过完成在在衰落信道下采用不同调制信号进行Turbo码编译码的编程实现,进一步了解了Turbo码的编码解码过程,以及在不同调制方式不同信道下的性能比见。通过对卷积和交织器的设计,深入了解卷积和交织的作用。以及熟悉了通信仿真的整体流程。 2、课程设计内容 具体叙述课程设计的主要内容和原理。 表1 主要课程设计内容列表 在进行本次Turbo仿真时,采用了两种不同编程方式。在程序一中是直接调用matlab Communications System Toolbox中的Turbo编码和解码工具箱,通过配置参数进行仿真。而在程序二中则根据Turbo码编译码原理编写。如果程序一更像是一个黑匣子,只能知道通过编解码模块前、后的数据,而具体做了哪些则不得而知。 a.编码 图1 Turbo码编码器结构 典型的Turbo码编码器结构框图如图所示:由两个反馈的编码器通过一个交织器并行连接而成。如果必要,由成员编码器输出的序列经过删余阵,从而可以产 1

生一系列不同码率的码。例如,对于生成矩阵为g=[g1,g2]的(2,1,2)卷积码通过编码后,如果进行删余,则得到码率为1/2的编码输出序列;如果不进行删余,得到的码率为1/3。一般情况下,Turbo码成员编码器是RSC编码器。原因在于递归编码器可以改善码的比特误码率性能。 通俗理解1/2码率就是信号中有一半都是“无用信号”,这些“无用信号”就是两个分量编码器的生成的校验码,而删余则是各删除一部分校验码,把剩下的再和信息比特合在一块,形成编码好的矩阵。 b.译码 图2 Turbo译码结构 Turbo码获得优异性能的根本原因之一是使用了迭代译码,通过与分量编码器对应的分量译码器之间软信息的交换来提高译码性能。对于 Turbo 码这样的并行级联码,如果分量译码器的输出为硬判决,则不可能实现分量译码器之间软信息的交换,从而限制了系统性能的进一步提高。从信息论的角度来看,任何硬判决都会损失部分信息,因此,如果分量译码器能够提供一个反映其输出可靠性的软输出,则其他分量译码器也可以采用软判决译码,从而系统的性能可以得到进一步提高。为此,人们提出了软输入软输出译码(SISO)的概念和方法。Turbo 码的分量码 SISO 译码算法总体上可分为MAP和SOV A 两类主要算法。其中MAP算法是一种最佳后验概率算法。SOV A类算法主要包括软输出的维特比算法(SOV A)和连续列表输出维特比算法(SLV A)。 SOV A算法实际上就是veterbi算法的扩展,保留的路径数不是两条而是和状态数有关从所有可行的路径中找最优的是最大似然序列检测。 d.衰落信道 由于多径和移动台运动等影响因素,使得移动信道对传输信号在时间、频率 2

相关主题
相关文档
最新文档