第50卷第9期 电讯技术 VoI.50 No.9 2010年9月 Telecommunication Engineering Sep.2010 文章编号:1001—893X(2010)09—0001—05 帧长可配置Turbo码编译码器的设计与实现 赵旦峰 ,朱铁林 ,刘 渊2 (1.哈尔滨工程大学信息与通信工程学院,哈尔滨150001;2.西北工业大学电子信息学院,西安710129) 摘要:针对固定帧长Turbo码灵活性和适应性差的缺点,提出了一种帧长可配置的Turbo码编译码 器的FPGA实现方案,可以由用户根据数字通信参数设计要求自行改变交织深度,以使译码性能与 信息速率达到最佳平衡。采用“自上而下”的设计思想和“自下而上”的实现流程相结合的方法,对 Turbo码编译码系统进行模块化设计,优化调试后下载配置到Xilinx公司的Vitrex一2 Pm系列中。测 试结果表明,该设计具有良好的移植性和通用性,为Turbo码在不同环境下的应用建立了统一平台。 关键词:Turbo码;编译码器;交织器;帧长可配置;模块化设计 中图分类号:TN764 文献标识码:A doi:10.3969/j.issn.1001—893x.2010.09.00l Design and Implementation of Turbo Encoder and Decoder with Variable Frame Length ZHAO Dan-feng ,ZHU Tie 1in , Yuan2 (1.College of Information and Communications Engineering,Harbin Engineering University,Harbin 150001, China;2.Electronic Ifnormation Institute,Northwestern Polytechnical University,Xi an 710129,China) Abstract:For the poor lfexibility and adaptabiliyt of Turbo codes with fixed frame length,all implementation of turbo encoder and decoder whose frame length can be confign ̄is proposed based on FPGA.The interleaving depth can be changed freely by users according to the parameter request of digi ̄communication,SO that the decoding peffonnance and data rate Can achieve the best balance.The options of combining the top-down design thought and the bottom-up emthod are used.The Turbo encodign and decodign system adopts module design and programs down to Xilinx S Vir- tex一2 Pro series after optimum debugging.Test results show that the design has good portbaility and versatility,and constitutse a uniform platform for hte application of Turbo codes in diferent enviornments. Key words:Turbo code;encoder and decoder;interleaver;variable frame lengths;modular desing 选择单一的参数进行固化设计E3 J,指标变化时则需 1 引 言 要对程序进行大幅度修改及重新配置,甚至更换系 1993年,在瑞士Lt内瓦召开的国际通信会议 统方案,缺乏通用性。因此,如何在不同的应用场 上,C.Berrou等人提出了一种新型的信道编码方案 合,根据系统对信息可靠性和数据实时性不同的指 ——Turbo码l 。经过近20年的研究与发展,Turbo 标要求,由用户对两者进行灵活地折衷选择以适应 不同目标背景具有重要的现实意义。 码已广泛应用于深空通信、移动通信l_2]等各个领域。 Turbo码的误码性能和延时在很大程度上取决于 然而,传统编译码器的硬件设计都是根据仿真结果 信息帧长,帧长越长,译码性能越好,随之而来的是译 *收稿日期:2010—05—06;修回日期:2010—06—08 基金项目:哈尔滨市科技创新专项(2009RFXXG029) Foundation Item:Harbin Speciifc Program for Scientiifc and Technological Innovation 电讯技术 2010往 码延时的增大。因此,设计一种帧长可配置的Turbo 其能否根据帧长参数产生相应的交织图样也是本设 计的关键所在。为了兼顾性能及硬件实现难度,交织 模块采用二次置换多项式(QPP)伪随机交织方案,该 方案采用多级交织算法,帧长范围为40~6 114,对不 同帧长产生不同的交织图样,能够有效改善码字的汉 明距离和码重分布。假设输入交织器的比特序列为 码编译码方案,使译码延时与译码性能在不同信道环 境下均能达到最佳平衡,具有广泛的应用价值。 基于此,本文将二次置换多项式(QPP)交织器 集成于FPGA内部,在系统初始化时计算交织地址、 映射交织图样;同时,对数据存储模块进行深度可调 设计,并将编译码电路中涉及到帧长参数的变量连 接于10电路,由用户自行输入,完成了一种帧长可 do,d ,d:,…, ~ ,其中K为信息位帧长,交织器输 出序列d 0,d 1,d 2,…,d 一1,则有: 配置的Turbo码编译码器的硬件方案,为其专用集 成芯片的开发与改进提供了参考。 2可配置Turbo码编译码器的系统设计 ‘ Turbo码译码过程中需要多次循环迭代运算(一 般为4 8次),每次迭代都需要对整帧信息进行软 输入软输出(SISO)算法处理,每增加1 bit,就会增加 相应的运算时延,因此帧长对系统吞吐率有重要影 响。同时,由于帧长直接关乎到交织后信息的汉明 距离和码重分布_4 J,从而影响码字抗突发错误的能 力,因此帧长也是影响译码性能的关键因素之一。 帧长可配置Turbo编译码器的设计思想是:在 编译码之前,首先由键盘电路输入帧长等参数,系统 根据指标要求对编译码器进行初始化,该过程主要 是设置电路中存储器的深度,进行交织地址的计算、 映射,并通过显示设备输出状态信号;初始化过程结 束后,编译码器进人准备状态,一旦有数据输入,即 启动编译码流程。由此得到Turbo编译码器系统框 图如图1所示。 蒸法H帧赣数H帧益票步l I帧益票步H帧篷数H交 蕞 H H籍H 麓卜 图1的Turbo码编译码器中,所有有关信息长 度的参数均设置为输入变量,包括存储器深度、计数 器周期、状态机控制等。根据系统框图,接下来进行 模块化设计。 3 FPGA功能模块的设计实现 3.1交织器设计模块 交织器是Turbo编译码器的主要构成部分之一, ・2・ d =dⅡ( ), =0,1,2,…,K一1 (1) 交织地址Ⅱ(i)由如下公式计算得到: II(i)=( i+f2i )mod K (2) 式中,参数 和 取决于交织长度K,具体值可参 考文献[2]。 传统交织器的FPGA设计一般采用软件编程(C 语言)的方法,根据通信协议,将系统所需帧长的交 织图样预先计算出来,生成存储器初始化文件载入 到ROM中ll5 J。这样虽然降低了硬件复杂度,却不能 自行配置编码帧长,缺乏灵活性和通用性。因此,设 计中将交织算法集成于FPGA内部,帧长改变时启 动交织器重新计算交织地址存储于RAM中。因为 并不是每帧信息编译码时都需要运行交织算法模 块,只是在初始化阶段载人交织地址,使交织算法与 编译码器分时工作,在编译码交织时只需读双口 ARM即可,不会增加译码延时。0PP交织器的硬件 结构框图如图2所示。 帧长采集H辟掣褊H产鑫茬入 蠡营 查囊 算H交羹惹法H交 址 信息 顺序 帧长 输入 地址 输入 图2 QPP交织器的硬件结构框图 Fig.2 Block diagram of QPP interleaver 在编译码器初始化阶段,首先从外部输人信息 帧长K,经过防抖动处理,由帧长采集电路传送到 、_厂2运算单元,查表得到-厂l、l厂2的值,提供给交织运 算模块。 交织算法集成单元是交织器设计的核心单元。 主要功能是根据LTE协议标准以及参数K、 、 , 在时序控制模块的约束下,计算交织地址。 计算中涉及到FPGA不支持的对任意整数取余 的操作,均转化为固定次数的加减循环操作,采取小 第9期 赵旦峰等:帧长可配置Turbo码编译码器的设计与实现 总第262期 时钟计算、大时钟输出的措施,保证交织数据的正确 读取。 储于RAM中,开始信号启动编码过程。在时钟管理 模块和时序控制模块的指引下,计数器产生顺序地 址,再以此顺序地址访问交织器得到交织地址,分别 计算交织地址的同时产生写入地址,将交织地 址顺序存储到双口RAM中,由此完成了交织器的主 以顺序地址和交织地址从存储有信息序列的RAM 中读取数据进入对应的RSC进行编码,同时复接电 体设计。整个交织计算过程是在时序控制模块下有 条不紊地管理运行的。随后发送握手信号,可以开 始Turbo码编译码流程。调用交织器模块时只需将 路对信息位和校验位进行串并转换,一帧信息编码 完毕对子编码器做归零处理。编码器的工作流程图 如图5所示。 顺序地址输入到双口RAM的读地址端,便能得到既 定的伪随机交织地址。Turbo码编译码器中交织、解 交织的实现流程框图如图3所示。 — , 、 双口 谢写地址产生 双口 RAM RAM (交织 f数据 地址1 信息) 图3交织、解交织工作原理框图 Fig.3 Principium of interleaving and deinterleaving 图3中时序控制模块的管理下,读/写地址产生 器产生顺序地址,将信息序列顺序写入到数据存储 双口RAM中,同时用此顺序地址去访问存储有交织 地址的双口RAM,将此双口RAM的输出作为数据 存储双口RAM的读地址,将信息序列按照交织地址 读出,即得到交织后信息序列,完成数据的交织 6。 而解交织为交织的逆过程,即先将交织后信息 序列按照交织地址写入双口RAM中,然后按照顺序 地址将数据读出,即得到原始信息序列,完成数据的 解交织。 3.2 Turbo码编码器的设计 Turbo码编码器由递归系统卷积码(RSC)子编码 器、交织器、复接电路等构成,实现框图如图4所示。 RSC 子编码器 信息 RAM RSC 子编码器 图4 Turob码编码器实现结构图 Fig.4 Turbo encoder structure 图4中,系统初始化完毕后,交织器已存储有对 应帧长的交织图样,编码器首先接收到一帧信息存 否 否 否 否 图5 Turob码编码器工作流程 Fig.5 Turbo encoder work ̄low 图5中,编码器默认处于空闲状态(IDLE),信息 存储结束后,开始信号(start)启动编码器进入CODE (交织、编码、复接)状态,当一帧信息编码完毕cover =1)分别对两个子编码器进行归零处理(TAIL、 TAII_2状态),归零结束后返回IDLE状态,等待下一 帧信息数据的到来。 3.3 TurDo码译码器的设计 根据译码原理和交织器实现方式,得到译码器 实现结构图如图6所示。 顺序 地址 ys子译码器 交织 地址 读 图6 Turbo码译码器结构图 Fig.6 Turbo decoder structrue 图6中,为节省硬件资源,采用子译码器单核复 用的结构模式。当子译码器模块作为子译码器1 时,信息比特ys顺序写入存储器后顺序读出到子译 码器中,L_a2以交织地址写人存储器,顺序地址读 出作为子译码器1的先验信息,同时校验位选择 ・3・ WWW.teleonline.cn 电讯技术 2010正 ypl,子译码器1根据3个输入进行软输入软输出 图8中,帧长设置为512,由于没有删余,每输入 1个信息位,对应输出3位系统码字。经多次验证, (siso)译码运算,得到新的L_a2及L—e;此后子译 码器作为子译码器2,以交织地址将ys从存储器中 读出,L—a2以顺序地址写入存储器,交织地址读出 作为子译码器2的先验信息,同时校验位选择yp2, 子译码器2根据3个输入进行SISO译码运算,得到 与Matlab仿真数据进行对比,结果正确。 将编码码字量化后传递给译码器,译码迭代6 次,帧长设置为512,得到Turo码译码器时序仿真 b波形图如图9所示。 新的L—a2及L—e,完成一次迭代。在达到指定的迭 代次数后,将L—e解交织后进行硬判决,得到译码 序列。设计中,子译码器采用复杂度与性能折衷的 Max—Log—MAP译码算法,计算过程如下:根据输 人的信息位、校验位及先验信息的软信息,在时序控 制模块的管理下,分别进行分支转移度量、前向状态 度量、后向状态度量和对数似然比的计算及存储,以 备下次译码运算调用。 4系统实现与仿真结果分析 在Xilinx ISE开发工具上,用Verilog HDL语言 对上述各功能模块进行编程描述;在对整体系统进 行时序设计及算法优化的基础上,用ModelSim SE 6.2a进行布局布线后仿真。 编译码系统初始化时,可配置帧长QPP交织器 的时序仿真图如图7所示。 图7帧长128的交织图样波形图 Fig.7 Interleaver waveforms of frame length 128 图7为输入帧长K:128时,交织模块输出的 交织地址波形图。在每个大周期内将交织地址计算 出来并在每个大时钟周期的最后一个小时钟周期将 此交织地址写入双口RAM,完成交织模块的设计。 交织器通过验证后,对Turbo码编码器进行时 序仿真,得到仿真波形图如图8所示。 ’clk165MHz l S{0 椿 f1 s’tea 1 0 。d l1 ” l 0 f 0 nc幽o‘l-enI St0 'ercode out 1 0 'wecount l0 钳ate f1 图8 Tm-bo码编码器仿真波形图 Fig.8 Simulation waveforms of Turbo encoder ・4・ ◆,d。∞如『j吲l^破 l 0 ◆,de∞d。L ,蛙舐 l o ◆,d ad 姆 慷 f0 ◆,d 洲 枷口 }512 ◆,d od 妣 }0 ◆,d od I 吨州 Ie ◆,d∞od 妇 啊 i0 ◆,deco如u酬t伽 t l45 ◆/des ̄ ̄te=tt/yplout l 31 ◆,d 叱 置I, I245 ・◆,d 。融 甜虬 f4州2 ◆/de∞ 『j t,b_啪。ddo I 514 ◆,柏∞d 础眦0岫I 514 ◆,d。c。de『J 地 、L骱 l s婚 ◆,de。。d 妇托, 能 {sl0 ◆,d∞ 嫩伽 lSt1 ◆刈ecode e州,d∞odefo i StO ◆, 啦leII Is10 图9 ,rJ)o码译码器波形仿真图 Fig.9 Simulation waveforms of Turbo decoder 图9中,译码器首先根据帧长设置初始化交织 图样,然后对系统码字解复接,得到信息序列(ys)、 校验位1(yp1)、校验位2(yp2),与外信息(L~al1)一 起输入子译码器进行SISO译码运算,迭代6次后判 决得到译码结果(decoderout)。多次仿真无误后,将 程序下载配置到Xilinx公司Viaex一2 Pro系列的 XC2VP30 FPGA中,利用串口调试助手,软件编写测 试窗口,进行测试。结果显示,本设计可以利用外围 键盘电路自行输入帧长,进行交织运算,得到交织图 样,并能依据帧长参数正确实现Turbo编译码功能, 达到了设计要求。 5结语 本文提出并实现了一种可根据具体参数要求现 场配置帧长的Turbo编译码器设计方案,与固定帧 长系统相比,具有更强的灵活性,是一种比较理想的 通用型方案。然而曲于FPGA自身特点的,即 使选择算法相对简单的QPP交织方式,当信息帧长 6 144时交织地址初始化过程仍耗时将近40 S,虽然 不对后续编译码速率产生影响,但是如何有效缩短 待进一步研究。 [1]Berrou C,Glavieux A,Thitimajshima P.Near Shannon Limit 初始化时间,根据算法特点简化交织运算电路仍有 参考文献:第9期 赵旦峰等:帧长可配置Turbo码编译码器的设计与实现 总第262期 Error-Correcting Coding and Decodig nTuro—bCodes[c l// ̄一 ceedings of ICC’93.Geneva:IEEE,1993:1064—1070. LUO Qing—hua.The desin and Igmplementation of Turo bEncoder nd aDecoder Based on FPGA[D].Harbin:Harbin Engineefing Univemity,2008:36—37.(in Chinese) [2]沈嘉,索士强,全海洋,等.3GPP长期演进(LTE)技术原理 与系统设计[M].北京:人民邮电出版社,2O09:92—96. SHEN a,SUO Shi—qiang,QUAN Hal—yang,et a1.3GPP Long Term Evolution:Principle and System DesignlM].Bei— iig:nPosts&Teleeom Press,2O09:2—96.9(in Chinese) 作者简介: 赵旦峰(1961一),男,湖南湘潭人,2006年于哈尔滨工程 大学获博士学位,现为教授、博士生导师、副院长,主要研究 [3]罗绮丽,刘应状,萧奋洛.一种高效的Turbo码硬件实 现算法[J].电讯技术,2006,46(4):36—40. LUO Qi—li,LIU Ying—zhuang,XIAO Fen—luo.A High Efficient Implementation Algorithm for Decoding Turbo Codes 方向为通信与信息系统、信道编码与调制技术等; ZHAO Dan—feng was bom in Xiangtan,Htman Province,in 1961.He received the Ph.D.degree from Harbin Engineering Uni— versity in 2006.He is nOW a professor and subdecanal wih tthe Col— lege of Information and Communications Engineering.His research interests include communications and information systems,channel [J].Telecommunication Engineering,2(106,46(4):36—40. (in Chinese) [4]刘东华.Turbo码原理与应用技术[M].北京:电子工 业出版社,2004:236—238. LIU Dong—hua.Principle and Application Technology of coding and modulation techniques. 朱铁林(1985一),男,河北保定人,博士研究生,主要研 究方向为现代通信系统与通信技术; ZHU Tie一1in Was bom in Baoding,Hebei Province,in 1985. He is currently working toward the Ph.D.degree.His research in— Turo Cobde l M J.Beijing:Publishing House of Electronics Industry,2004:236—238.(in Chinese) [5]薛礼妮,崔维新.Turbo码随机交织器的设计与实现 [J].电讯技术,2009,49(10):70—73. XUE Li—ni,CUI Wei—xin.Desin and Implgementation of terests include modem communications systems and technologies. Email:zhutielin@hrbeu.edu.an 刘渊(1983一),女,河南南阳人,2010年获硕士学位, Turbo Codes Random Interleaver[J].Telecommunication En— gineering,2009,49(10):70—73.(in Chinese) 主要研究方向为信道编码、数据采集与信号处理。 UU Yuan Was bom in Nanyang,Henan Province,in 1983. [6]罗清华.Turo码编译码器FPGA设计与实现[D].哈 b尔滨:哈尔滨工程大学,2008:36—37. She received the M.S.degree in 2010.Her research interests in— clude channel coding,data acquisiiton and sign ̄processing. ..-.-. ◆ ◆一+ 恭喜冯超成为本刊网站第1万个访问者 根据读者(访问者)提供的屏幕截图信息,本刊编辑部确认菏泽学院机电工程系冯超为本刊网站第1万 个访问者,在此向他表示祝贺。 为了及时监测本刊网站的访问量,特别是对具有重要意义的访问计数出现周期进行分析,为进一步改进 本刊工作提供有关信息,本刊编辑部决定,凡第1万、2万、3万……个访问者,将获得本刊连续1年的免费赠 阅,以及年终的期刊精装合订本1套。如果您符合要求,请将页面截图(应有屏幕右下角通知区域的13期显 示,或能表明计数出现日期的相关信息)以及个人详细联系信息发送到dianxunjishu@china.COB或axjs@swi— et.con.an,我们将及时在网站发布。 感谢对本刊的关注与支持。 《电讯技术》编辑部 ・5・