Turbo码的编译码及其性能仿真
2018-03-02马媛媛彭娜
马媛媛 彭娜
摘要:本论文旨在研究Turbo码的几种迭代译码算法,包括Log-MAP译码算法和Max-Log-MAP译码算法。在介绍Turbo码基础并推导Turbo码的各种译码算法(Max-Log-MAP算法、Log-MAP算法和SOVA算法)的原理后,通过性能仿真,我们分析了迭代次数、交织长度等参数对Turbo码的纠错能力的影响,并横向比较了三种算法的性能,从而得出结论。
关键词:级联码;Turbo码;交织器;Log-MAP算法;Max-Log-MAP算法
中图分类号:TN929 文献标识码:A 文章编号:1007-9416(2018)12-0110-03
1 Turbo碼的译码器
一般情况下,在单个传统编码的译码器的最后获取到的是硬判决译码比特,但是Turbo码译码算法不局限于在译码器中通过的是硬判决[1]。Turbo码一般是由两个分量码经过不同交织后对同一信息序列进行编码,所以译码算法采用软判决信息代替了硬判决可以更好的利用译码器之间的信息。
本文推导Turbo码的各种译码算法(Log-MAP算法、Max-Log-MAP算法和SOVA算法)的原理,通过性能仿真,分析迭代次数、交织长度等参数对Turbo码的纠错能力的影响,对不同算法进行性能仿真对比,对采用那种算法更优得出结论。
2 译码算法
2.1 Log-MAP算法
MAP算法将Turbo码的两个编码器一起使用反馈码的结构还利用性能优异的卷积码,并且达成软输入软输出和递推迭代译码。MAP算法实施工程量大,为了避免复杂操作的数目和数字表示问题[2],Log-MAP算法对MAP修改直接在对数域里对对,,和进行计算,去除了大量的指数和对数运算,很大程度上减少了计算复杂度,提高了运算速率。
=2
(1)
对q(·)=1得到下面的表达式:
=++
+K (2)
可以忽略常数K。
对于lnαk(sk),我们得到:
lnαk(Sk)=
-
(3)
对dk一个先验的对数似然比(LLR)简称为L(dk)。在式(2)中确定一个先验信息。
如果:
q(dk=1|Sk,Sk-1)=1 (4)
那么:
L(dk)== (5)
所以:
= (6)
对的近似可以在式(12)中找到引用:
≈ (7)
如果:
(8)
那么:
L(dk)== (9)
因而,
= (10)
类似地,
≈ (11)
由于近似的算法,Log-MAP算法比起MAP算法是次优的,其产生的是一个较低的软输出。
=max(δ1,δ2)+=max (δ1,δ2)+ (12)
其中,定义是修正函数。由此,
==
+=max(δ,δn)+ (13)
其中,Δ==eδ.通过计算fc(x),失去了一些Max-Log-MAP的低复杂度[3]。
2.2 Max-Log-MAP算法
Log-MAP算法仍然需要很大的计算量,通过下面的表达式再次减少计算量:
(14)
可以通过连续使用n-1个最大函数只计算两个值。定义:
= (15)
, (16)
得到:
≈
-+ (17)
类似地,
≈
- (18)
这就是更进一步简化了Log-MAP算法的Max-Log-MAP算法。
类似的:
≈
-+ (19)
2.3 SOVA算法
维特比算法(Viterbi)也是一种估计在无记忆噪声条件下马尔科夫过程最优的算法,它区别于MAP算法的特点在于最优的准则不同它是给定接收序列,维特比算法找出了错误最少的发送序列[10]。SOVA(Soft output Viterbi Algorithm)是对原维特比算法做了一些修改,使其适合于Turbo码的迭代译码。所做的修改主要是以下两个方面:
第一,选择栅栏图中的最大似然路径时要考虑先验信息;
第二,再把每个比特uk是“+1”(1)或“-1”(0)译码出来的同时,给出uk译码的可靠度,即,以LLR形式给出L(uk),作为软输出,从中可以获取关于uk的先验信息,为下次迭代所使用。
3 性能仿真
3.1 不同迭代次数下性能的仿真
Turbo码的译码性能极其优异主要归结于Turbo码的循环迭代译码结构。各个译码单元彼此之间传递外信息,该外信息作为先验概率交付于下一次迭代译码。以Max-Log-MAP算法为例,在交织长度为640,采用随机交织器,并且删余后码率为1/2的条件下,采用控制变量法仿真对比不同迭代次数下的性能差异。结果如图1所示。
由仿真结果中分析对比可知,最初几次迭代次数的增加很大程度上提高了Turbo码的译码性能,然而从增加到五次迭代以后,再增加迭代次数增益就变得很小,如图中第五次和第七次的译码性能差不多。在硬件流水线结构中,迭代次数很大程度上决定了硬件规模,迭代次数越多,所用硬件规模越大,综合考虑应该选择5次迭代才能达到更好的译码性能。
3.2 不同交织长度下译码性能的仿真
从Turbo码的性能分析得到,交织长度也是影响Turbo码译码性能的重要原因之一。交织长度增加使得Turbo码的性能就越接近Shannon极限。同样Max-Log-MAP算法为例以再次采用控制变量法仿真对比不同交织长度的性能差别得出结论。在迭代次数为5,采用随机交织器,并进行删余,码率为1/2的条件下,得出结果如图2所示。
从图2中对比分析可知,加长交织长度能够明显的提高Turbo码的性能,如图2中所示,交织长度为120的曲线明显高于其他曲线,即性能远差于其他。
3.3 不同译码算法性能比较
为了更详细的了解MAX-Log-MAP、Log-MAP和SOVA这三种算法,下面对这些算法进行研究讨论,具体来研究这些算法的相同点与不同点:
相同点:
(1)四种算法的译码输入都是从接收信道传来的软判决信息与信息比特uk的先验信息,而其译码输出可以做出判决的同时给出uk的后验概率LLR的值(L(uk)),这可以统称它们为SISO(soft in soft out)算法[8]。
(2)单次译码结果中,Max-Log-MAP算法和SOVA算法都是寻找在栅栏图中的最大似然路径。
(3)为减少大量的加法运算量,MAX-Log-MAP算法在Log-MAP算法上做了近似。在理论的基础上二者基本相同,都是在栅栏图中考虑所有有可能的路径。
不同点:
(1)在Turbo码译码中,MAP算法是其最优的译码算法,Log-MAP算法在对数域内计算法MAP算法很大程度减少了译码的运算量。
(2)Max-Log-MAP算法复杂度比Log-MAP低主要在于修正函数上。在计算uk的后验概率时,Max-Log-MAP算法只考虑两条路径,其中一条是最大概率的-1路径,另一条是最大概率的+1路径,在计算αk(Sk)和βk(Sk)的时候,只考虑到了最有可能的一种状态转移。
(3)SOVA算法寻找到最大似然路径的译码所以复杂度相对来说最低。它计算方法αk (Sk)的方法和Max-Log-MAP算法是一致,但不同的是,它不计算βk(Sk)。
在参数相同的条件下,仿真这三种算法,图3所示在交织长度是1024,采用随机交织器,删余后码率为1/2的条件下,Turbo码三种译码算法性能比较。
从仿真结果进行性能比较,性能从优到次为Log-MAP,Max-Log-MAP,SOVA。通过译码复杂度(仿真运算时间)則正好相反。由此看来,Log-MAP算法只是比Max-Log-MAP算法多了些查表和加法运算,增加了计算量,而性能也有较大的提高。
4 结语
本文推导出了各种译码算法的原理,通过在这些算法下性能的仿真可知,迭代次数初始增加迭代性能改善,迭代到5次之后性能相差不大。增大交织长度可改善Turbo码的性能。最后对比各种算法的工作过程和异同点,从仿真结果上看性能比较从优到次依次为,Log-MAP,Max-Log-MAP,SOVA。译码复杂度(仿真运算时间)则正好相反。综上所述,在实际运用中决定使用何种算法,需要折中考虑其性能和运算量。
参考文献
[1]王视环.LTE中Turbo码内部交织器的研究[J].南京邮电大学学报(自然科学版),2010,30(4):90-94.
[2]Patrick Robertson, Emmanuelle Villebrun ,Peter Hoeher, A Comparison of Optimal and Sub-Optimal MAP Decoding Algorithms Operating in the Log Domain, IEEE International Conference on Communications (ICC'95)[C].1995:1009-1013.
[3]Jason P. Woodard and Lajos Hanzo. Comparative Study of Turbo Decoding Techniques: An Overview[J].IEEE Transactions on Vehicular Technology,2000, 49(6):2208-2233.
[4]Patrick Robertson. Illuminating the Structure of Code and Decoder of Parallel Concatenated Recursive Systematic (Turbo) Codes[C]. Global Telecommunications Conference (GLOBECOM '94),1994:1298-1303.
[5]賴克中.CDMA2000家庭基站与Turbo编码技术研究[J].移动通信.2009(5):50-53.
[6]何海建.基于OFDM技术电力线通信系统的编码方案的研究[D]. 东南大学硕士学位论文.2006.
[7]王育民,李晖,梁传甲.信息论与编码理论[M].北京:高等教育出版社,2005.
[8]武冬冬,赵刚.Turbo码的几种译码算法及性能比较[J].仪器仪表用户,2008(3):98-100.
Encoding and Decoding of Turbo Code and Its Performance Simulation
MA Yuan-yuan, Peng Na
(Information Engineering school, Changan University, Xian Shaanxi 710064)
Abstract:This article is to study several iterative decoding algorithms of Turbo code, including LOG-MAP decoding algorithm and MAX-LOG-MAP decoding algorithm. After introducing the fundamentals of Turbo code and deriving various decoding algorithms (Max log map algorithm, log map and SOVA algorithm) of turbo code, simulations of these decoding algorithms are performed. Based on the simulation results, we analyze the impact of iteration number and interleaver length on the error correcting capabilities of Turbo codes. Horizontal comparisons of the performances of these three kinds of decoding algorithms are also made, and get the conclusions。
Key words:concatenated code; Turbo code, interleaver; Log-MAP algorithm; Max-Log-MAP algorithm