基于Turbo码的交织器设计与实现

基于Turbo码的交织器设计与实现,第1张

在对几种交织器原理进行分析的基础上,通过对其在Turbo码编解码中的应用,结合具体信道进行了性能仿真,最后比较了它的性能,提出了一种优化的设计方案,采用FPGA技术实现并验证了设计的正确性。?
    关键词:Turbo码, 交织, S-随机算法?


1 引言
    C.Berrou等学者于1993年首先提出了Turbo码这一信道纠错编译码新概念,它是在综合过去几十年来的级联码、乘积码、最大后验概率译码与迭代译码等理论的基础上的一种创新。Turbo码的基本原理是,通过编码器的巧妙构造,即多个子码通过交织器进行并行或串行级联(PCC/SCC),然后,以类似内燃机引擎废气反复利用的机理进行迭代译码,从而获得卓越的纠错性能,Turbo码也因此得名。
    在Turbo码的编解码中,无论是编码还是解码,交织单元都是其中很重要的一个环节,图1所示为Turbo译码的原理框图,在成员译码器1与成员译码器2之间的前向通路和反馈通道分别存在有交织和解交织单元,他们的交织方式和规模影响着整个译码的性能。本文将就Turbo码中交织器参数的选择及其性能和实现进行探讨。

基于Turbo码的交织器设计与实现,第2张

2 Turbo码交织器原理及结构
    根据交织器的来源和交织方式不同,我们可以把交织器概括为三类:一类是Turbo码论著中的标准交织器(Standard Interleavers);一类是已经设计出来的经过测试发现一些问题的;另外一类就是结合具体应用,选用一些优化的交织器设计方法来设计的。本文将通过对前两类的总结,结合Turbo码在通信传输系统中的具体应用,提出一种优化的交织器设计方案。

基于Turbo码的交织器设计与实现,第3张

    交织的目的就是将信道中突发错误的位置随机化,对于级联纠错码中使用的交织器来讲,衡量其性能的很重要的参数就是它对突发错误的扩散能力。通信系统中常用的标准交织方式一般有这样几种:一种为分组交织(矩形交织)方式。这种交织器采用R×C矩阵形式,图2(a)为码字重量为4的矩形交织示意图,按行顺序地写入数据,然后按列读出,序列的重量不会改变。作为矩阵的特殊形式T×T,正方形交织的行和列各有一个1和(T1)个0,如果1出现在第I行第j列,则交织器将输入的第I个符号移到输出的第j号位置。我们可以通过增大块交织的规模来提高系统的性能。另外一种标准交织方式是对上述矩阵形式的改进,其中,序列按照i行和j列写入,按照iT行和jT列读出,iT和jT表达式如式(1)和式(3)所示。其中,ξ的值见式(2),从图2(b)可以得到P(ξ)的值。式(1)中,基于Turbo码的交织器设计与实现,第4张是交织器的维数。
基于Turbo码的交织器设计与实现,第5张
    标准交织器的第三种形式为螺旋交织器,它是矩形交织器的另外一种改进形式,由R行和C列组成,数据按行顺序写入,沿对角线读出,从左下角开始依次读出。还有一种标准交织方式叫做卷积交织,它将输入序列通过递增的I个移位寄存器分路成I个子序列,这样,对每个序列来讲,就会引入不同的时延。如图3所示,输出采用相反的方法还原成原来的顺序。

基于Turbo码的交织器设计与实现,第6张

    上述第二类交织方式一般有均匀交织、平面交织、桶型移位交织和时延交织等方式。这些交织方式也为我们的设计提供了一些可资参考的思路。?
3 Turbo码交织器的优化设计方案?
3.1 S-随机交织原理?
    下面,我们讨论Turbo码交织器一种优化的设计方案。实际上,所有的Turbo码交织设计技术都是基于S随机交织产生算法的。在图4中,我们给出了S随机交织算法的实现框图。

基于Turbo码的交织器设计与实现,第7张

    这种交织器是在其扩展范围内随机交织,该算法的交织是随着图4中S的变化而改变的。该算法的搜索时间也随着S的增加而增加,但是并不能保证一定成功。根据参考文献〔1〕,一般选择基于Turbo码的交织器设计与实现,第8张是交织块的尺寸。这时,可以在合理的时间内完成交织。这种技术的主要问题是不能保证一定能产生所需要的交织器,只能保证得到一个扩展值S。所以,在S随机算法的基础上,我们采取一种叫做模拟退火的方法进行交织,它将温度和序列值同时作为变量,采用模拟的方法,如图4所示,开始给温度和序列同时赋一初值,假设序列任意值为X,和X对换的为XI,则,通过温度计算出X的能量E(X)和Xi的能量E(Xi),然后,计算两者的差值ΔE= E(Xi)E(X)。把ΔE和〔0,1〕间的随机数同时作为判决条件,当ΔE<0或者〔0,1〕间的随机数小于基于Turbo码的交织器设计与实现,第9张时,就将X置换成Xi,一直进行到按退火方案配置的温度值,并且译码的迭代次数足够多,最终温度达到一个稳定值时交织便结束。其流程与S随机算法类似,这里不再列出。
3.2 交织器的性能仿真及实现
    上面已经介绍了交织器有很多种形式,为了比较几种交织方式性能的优劣,我们选择了生成多项式为g=(15,17)OCTAL的RSC,选取交织器的大小均为1024的情况下,仿真出了分组交织、对角线交织、螺旋交织、PN交织、S随机交织等五种不同交织方式对译码性能的影响。仿真结果如图5所示,从几条曲线的比较可以看出,S随机交织器的性能较之其他方式来讲性能最好,在我们所关注的10-6附近,它和分组交织之间有大约0.5dB的增益。
    基于以上讨论,我们选择S随机交织方式,在译码迭代次数为10的译码条件下,选择迭代结构,对交织规模N不同情况下的误码性能进行了仿真,结果如图6所示,分别给出了交织规模N为160、320、640、5120时,误码率随信噪比的变化而变化的曲线。显然,在信噪比较低,SISO模块迭代次数均为10的情况下,交织单元的规模越大,其交织的一致性越好,如图6所示,当N=5120时,误码率在信噪比略有增大时就有剧烈的衰减,表现出了良好的提高译码性能的能力。

基于Turbo码的交织器设计与实现,第10张

    依据上述设计方案和性能仿真结果,我们采用硬件描述语言可以很方便地实现上述算法的交织,本设计是基于ALTREA公司Quartus环境,采用Verilogic HDL语言编程,经过FPGA验证,实现了上述交织器的设计,在不同性能要求下,可以选择参数来满足不同的要求。

基于Turbo码的交织器设计与实现,第11张

4 结束语?
    本文通过对不同类型交织器原理的分析,在结合信道模型对其性能进行仿真的基础上,提出了一种适用于Turbo码编译码的交织器的优化设计方案,并基于可编程逻辑器件技术用硬件描述语言实现了该交织器,该设计可直接应用于Turbo码的模块化设计中,提高Turbo码在恶劣信道环境中的纠错性能。

参考文献

1 Johann Briffa. Interleavers for Turbo Codes. A Disserta-TIon Submitted in Fulfilment of the Requirements for the Award of Master of Philosophy of the University of Malta, October 1999
2 C. Berrou, A-Glavieux, P-ThiTImajshima. Near Shannon Limit Error?CorrecTIng Coding: Turbo Codes. Proc. 1993 IEEE ICC, Geneva, Switzerland, May 1993:1064-1070
3 王立宁,乐光新,詹 菲.MATLAB与通信仿真.北京:人民邮电出版社,1999?
4 刘宝琴.ALTERA可编程逻辑器件及其应用.北京:清华大学出版社,1995

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2471891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存