跳频系统下Turbo编译码器的设计

时间:2022-06-23 02:21:16

跳频系统下Turbo编译码器的设计

摘要:在介绍Turbo码编译码原理基础上,针对特定跳频系统,设计了一种Turbo编译码方案。详细论述了该方案中编译码器的设计、建模和仿真过程。该方案中采用MAXLOGMAP的迭代译码算法,仿真验证了译码器采用6次迭代可以在保证抗干扰性能的前提下,面向硬件实现计算量适中。因此,该方法具有一定的工程应用价值。

关键词:跳频; Turbo码; 交织器; 迭代译码

中图分类号:TN91434文献标识码:A文章编号:1004373X(2011)23006304

Design of Turbo Coder and Decoder in Frequencyhopping System

ZHANG Bifeng, GUO Ying, ZHANG Bo

(Telecommunication Engineering Institute, Air Force Engineering University, Xi’an 710077, China)

Abstract: A scheme of Turbo coder and decoder in special frequencyhopping system is introduced on the basis of introducing the principle of Turbo coder and decoder. The design, modeling and experiment process of the coder and decoder are discussed. The scheme used iterative decoder arithmetic of MAXLOGMAP. Simulation results show that using 6 times iteration for decoder can ensure the antijamming performance and the hardware implement calculation moderates. This method can be taken in project and has stated application value.

Keywords: frequencyhopping; Turbo codes; interleavers; iteration decoding

收稿日期:201107120引言

跳频系统具有良好的抗干扰特性,因此广泛应用于军事通信中。Turbo码具有接近Shannon限的性能[14],但实验显示Turbo码的误比特率曲线或帧错率曲线存在“错误平层”现象。为了降低错误平层,人们根据输出位的错误特性给出了几种方法。文献[5]提出了跳频系统中Turbo码的译码算法,但算法较为复杂,难以高效地在工程中实现;罗常青等给出了跳频系统中Turbo码译码器的FPGA实现方案,具有一定的抗干扰效果[6];文献[7]介绍了基本的Turbo码译码方法;文献[89]优化了基本的译码方法,使得译码算法得到了简化,但抗干扰性能有损失。本文针对以上不足,设计了一种Turbo码的编译码算法,在保证抗干扰性能的前提下,译码过程简单,方便工程应用。

1Turbo码编译码原理

1.1Turbo码编码原理

图1为Turbo编码器结构。信息位uk直接送入分量编码器1编码,产生校验位x1kp,而经过交织后的信息位u1k进入分量编码器2产生校验位x2kp,由于Turbo码是系统码,所以信息位直接输出产生xks,即xks等于uk。编码器每输入一个信息位,可产生三位输出,这三位输出复合在一起作为k时刻的信道码字。

图1Turbo码编码器基本结构1.2Turbo码译码原理

Turbo码译码器的基本结构如图2所示。它由两个分量译码器DEC1和DEC2串行级联组成,交织器与编码器中所使用的交织器相同,解交织器的作用与交织器的作用相反。每个译码器处理接收到的N长的输入序列,这个长度也是交织器大小。第一个译码器利用接收到的与第一个编码器有关的信道符号进行译码,然后把产生的N长的软信息送给第二个译码器。第二个译码器使用第一个译码器送来的信息和从信道接收到的与第二个编码器有关的信道符号进行译码,因此,它比第一个译码器有更多关于消息的信息。第二个译码器产生的外部信息再送给第一个译码器作为先验信息重新对接收到的信道符号进行译码,同样由于有了更多的关于消息的信息,可以使译码过程更精确。持续这样的过程就完成了Turbo码的迭代译码。

图2Turbo码迭代译码器的框图2Turbo编码的建模

Turbo码编码器最常用的结构如图3所示。

图3编码器结构图编码器采用两个分量编码器的并行级联方式。交织器为伪随机奇偶交织器。分量编码器1和分量编码器2采用同样的结构。删余模块交叉选择编码器1和编码器2输出的校验比特。

在设计中,Turbo码以每跳为对象进行编译码操作,预设Turbo码码长为一跳的数据长度,为800个符号,交织深度为800个符号。每个Turbo码符号为3 b。因此,可选编码效率为1/3,2/3,设计时选取2/3的这种码率较高的方案。所以Turbo编码器的输入为2 b,输出为3 b。

Turbo码编码的具体设计分为以下三个模块进行介绍。

2.1交织器的设计

伪随机交织是Turbo码的最佳性能交织器,交织映射没有规律,近乎随机。选择伪随机奇偶交织是为了在不降低性能的前提下,减弱编码器1与编码器2之间的相关性,简化编码器的结构,增加编码增益,并且奇数位置的符号映射后还在奇数位置,偶数位置的符号映射后还在偶数位置。

2.2分量编码器

编码器1和编码器2采用相同结构,使用约束长度为3 b、码率为2/3的递归系统卷积码,其功能框图如图4所示。

图4中,编码器的输出Code_bit1和Code_bit2为信息比特,Code_bit0为校验比特。基本特性从图5分量编码器的状态转移图中得到体现。

2.3删余操作

删余本质就是一个二选一的选择器,在奇数时刻,选择编码器1的输出,在偶数时刻,选择编码器2的输出。

图4分量编码器结构图5分量编码器状态转移图3Turbo译码器的设计

Turbo码译码的基本思想是将接收到的复杂长码译码成若干步,并通过迭代完成译码。Turbo译码器的三种算法分别为MAP算法、LOGMAP算法和MAXLOGMAP算法。从性能上说,MAP算法最好,LOGMAP次之,MAXLOGMAP最差。从计算复杂度上讲,MAXLOGMAP最简单,LOGMAP次之,MAP算法最复杂。综合考虑,实现时选择MAXLOGMAP算法[10]。

整个译码器采用并行算法,其功能框图如图6所示。

3.1解调软判决输出格式

定义解调输出数据格式如图7所示。

解调器的输出以跳为单位,每跳输出800(每跳的符号数)组数据,每组数据由8个7 b量化的有符号数组成,分别描述当前符号是0,1,2,…,7的对数概率,如:demout = [-29;-33;-26;-17;-9;-4;0;-4;…]上式表示第1个符号为0的概率:M*e-29;为1的概率:M*e-33;…;为7的概率:M*e-4;…。其中M为常数,在解码运算中,关心的是概率值的相对大小,因此,常数M在解码运算中可以忽略。

图6Turbo译码器功能框图图7解调输出数据格式3.2对数路径度量值γ的计算

根据图5分量编码器状态转移图得知,从N时刻到N+1时刻,总共存在32条转移路径,每条路径都有相应的路径度量。

A译码器计算路径度量值γ时,编码时有删余操作,编码器输出的码字的奇数位置是分量编码器A的输出,偶数位置是分量编码器B的输出,因此,A译码器在计算γ时,只能利用奇数时刻的解调信息;相应地,B译码器只能利用偶数时刻的解调信息。A译码器在奇数时刻对γ的计算公式是GAMA=apr+demout,在偶数时刻对γ的计算公式是GAMA=apr。apr为起始状态对应的先验信息,apr值在首次迭代时初始化为0,在后续的迭代运算中,apr来自B译码器的输出。B译码器也是一样的,只不过它在偶数时刻采用A译码器奇数时刻的算法,在奇数时刻采用A译码器偶数时刻的算法。

3.3前向对数概率值α的计算

如图8为前向态转移示意图,在N时刻,每一个状态都有一个对应的α值,在N+1时刻,每一个状态都有四条到达路径,每条路径都有一个对应的γ值,把每条路径的出发状态对应的α值和路径对应的γ值相加,得到四个值,选出其中最大的一个,就是N时刻各个状态对应的α值。其中A译码器和B译码器的算法没有任何区别。

图8前向状态转移示意图3.4后向对数概率值β的计算

图9为后向状态转移示意图,在N时刻,每一个状态都有一个对应的β值,在N-1时刻,每一个状态都有四条出发路径,每条路径都有一个对应的γ值,把每条路径的出发状态对应的β值和路径对应的γ值相加,得到四个值,选出其中最大的一个,就是N-1时刻各个状态对应的β值。

图9后向状态转移示意图3.5对数似然概率LLR的计算

在N时刻,编码器存在8种可能的状态。输入确定信息符号C后,存在8种可能的路径,到达N+1时刻的8种状态。LLR的计算公式为:LLRC=MAX(αi+γi+βi)式中:i=0,1,2,…,7;LLRC表示从N到N+1时刻,信息符号为C的概率,C=0,1,2,3;αi为N时刻路径出发状态对应的前向对数概率;βi为N+1时刻路径到达状态对应的后向对数概率。

3.6先验信息APR的计算

从LLR中减去在γ计算中使用的APR值,就是本次迭代的APR值。A译码器输出的APR值经过交织后,送给B译码器,作为B译码器下次迭代的输入信息;B译码器输出的APR值经过解交织后,送给A译码器,作为A译码器下次迭代的输入信息。

3.7迭代次数的确定和判决输出

迭代停止准则分为硬判决准则和软判决准则两种。不论采用哪种准则,都会造成迭代次数动态变化,在设计中,硬件资源要按照可能的最高迭代次数来配置。

此外,译码器的输出选择硬判决输出,即输出A译码器的LLR值。

图10是从第1次迭代到第6次迭代译码器A的LLR输出结果图。

图10译码器多次迭代输出结果图从图10可以看出,随着迭代次数的增加,输出结果的变化越来越小,第6次迭代和5次迭代的结果差别已经很小,6次迭代后,译码器都能达到收敛状态。因此将迭代次数定为6次。

3.8Turbo译码器仿真结果

图11是某次迭代后,译码器A的对数似然概率LLR的输出结果。

图11译码器解码软输出图中,每一小格4个点,表示一个符号的4种可能取值(0,1,2,3)的对数概率,例如:第一格的信息表示该符号对应0的对数概率为0, 对应1的对数概率为-28,对应2的对数概率为-33,对应3的对数概率为-34。可以看出,该符号为0的概率最大,应判决为0。

4结语

本文通过对Turbo编译码原理的深入研究,设计了一种针对特定跳频系统的Turbo编译码方案。仿真表明,该方案可行性好,计算量适中,可作为一种工程应用的硬件实现方案。

参考文献

[1]COVER T, THOMAS J. Elements of information theory \[M\] . New York : Wiley Interscience, 1991.

[2]BERROU C, GLAVIEUX A, THITIMASJSHIMA P. Near Shannon limit errorcorrecting coding and decoding: turbocodes(1) \[C\]// Proc IEEE Int. Conf. Comm.. Switzerland: Geneva: IEEE, 1993: 10641070.

[3]BERROU C. Near optimum error correcting coding and decodingturbocodes \[J\]. IEEE Transactions on Communications, 1996, 44(10): 12611271.

[4]王新梅,肖国镇.纠错码[M].西安:西安电子科技大学出版社,2001.

[5]KANG J H, STARK W E. Turbo codes for noncoherent FHSS with partial band interference \[J\]. IEEE Trans. on Communications, 1998, 46(11): 14511458.

[6]罗常青,安建平,沈业兵.跳频系统中Turbo码译码器的FPGA实现[J].北京理工大学学报,2007,27(1):6367.

[7]COLAVOLPE G, GERRARI G, RAHELI R. Reducedstate BCJRtype algorithms \[J\]. IEEE J. Selected Areas in Commun., 2001, 19(5): 847858.

[8]FRANZ V, ANDERSON J B. Concatenated decoding with a reduced search BCJR algorithm \[J\]. IEEE J. Selected Areas in Commun., 1998, 16(2): 186195.

[9]许成谦,林雪红,陈嘉兴.Turbo码LogMAP译码算法的一种改进算法[J].燕山大学学报,2002,26(4):286288.

[10]刘东华.Turbo码原理与应用技术[M].北京:电子工业出版社,2004.

作者简介: 张碧锋男,1983年出生,陕西渭南人,硕士研究生。主要研究方向为通信信号处理。

郭英女,1961年出生,山西临汾人,教授,博士生导师。主要研究方向为通信信号处理。

张波男,1987年出生,陕西兴平人,博士研究生。主要研究方向为通信信号处理。

上一篇:侵彻引信电路的可靠性预计 下一篇:探秘操作系统的影子世界