您好,欢迎来到九壹网。
搜索
您的当前位置:首页高码率自适应Turbo编译码器的设计与FPGA实现

高码率自适应Turbo编译码器的设计与FPGA实现

来源:九壹网
维普资讯 http://www.cqvip.com 第48卷第3期 2008年3月 奶讥技 Telecommunication Engineering Vo1.48 No.3 Mar.2oo8 文章编号:1001—893X(2008)03—0082—04 高码率自适应Turbo编译码器的设计与FPGA实现 黄懿 ,周兴建2,余金权2,阎鸿森 (1.西安交通大学信息与通信工程系,西安710049;2.中国西南电子技术研究所,成都610036) 摘要:提出了一种高码率自适应Turbo编译码器的FPGA实现方案。在编码模块中采用特定参数 的分组螺旋对称交织器,使编码器能通过删余构造高码率,且能通过相同的结尾比特使两个分量编 码器的寄存器状态均归零。在SOVA译码模块中,各状态下路径的累积度量值的并行计算和可靠性 值的并行更新使译码速度大大提高。仿真结果表明,该高码率自适应编译码器有良好的误码性能和 较高的实用价值。 中图分类号:TN911.22 , 文献标识码:A 关键词:Turbo码;SOVA算法;分组螺旋对称交织器;删余;FPGA Design and FPGA Realization of High Code—rate Adaptive Turbo Encoder and Decoder HUANG Yi ,ZHOU -fian , Jin—quan , ⅣHong—sen (1.Department of Information and Communication Engineering, Xi’all Jiaotong University,Xi’an 710049,China; 2.Southwest China Institute of Electronic Technology,Chengdu 610036,China) Abstract:A new FPGA realization scheme for high code—rate adaptive Turbo encoder/decoder is pro— posed.In encoding module,the block helix symmetic interleaver witrh speciic parameterfs was used to construct hi gh code—rate by puncturing and insure termination of both encoders by appending the same set of bits.In SOVA decoding module,parallel computation for the cumulative metric values of two candidate paths at each state and parallel update orf he rteliability values improve the decoding speed.The simulation result shows that the hish code—-rate adaptive encode ̄decoder has good BER performance and call be put into practical use. Key words:Turbo code;SOVA(soft output viterbi algorihtm);block helix symmetric interleaver;punctu— ing:FPGA r1993年ICC国际会议上提出的Turbo码,其纠 错性能逼近香农提出的有噪信道编码定理中的纠错 码性能极限[1】。Turo码的优良性能很快引起了编 b码界的高度重视,关于其原理、性能等各方面的研究 都取得了不同程度的进展。近年来,Turbo码在各 通信应用领域也有很大发展。本文所实现的高码率 自适应编码器可构造不同码率与信道条件匹配,充 1 高码率自适应编码器的设计与实现 自适应编码器的结构如图1所示。与经典编码 器结构不同,自适应编码器外部增加了一个信道估 计值的输入端口。信道估计值经过码率选择器得到 码率选择使能信号。由于采用不同的码率,复接时 进行并串转换所需的输出时钟也不同,故需通过时 钟管理器得到删余复接器所需的时钟。删余复接器 分利用信道带宽;译码器能在保证良好误码性能的 基础上通过并行算法实现高速译码。 }收稿日期:2007—09—20;修回日期:2008—0l—l5 ・82・ 维普资讯 http://www.cqvip.com

第48卷第3期 2008年3月 内部有几个能构造不同码率的删余矩阵,可根据码 率选择使能信号灵活地选择对应的删余矩阵。 删 ————1器1 l 余 复 — 接 器 笪 笪 . 瓯 f . 日 . 图1 自适应编码器的结构 分量编码器采用(37,21)RSC编码(递归系统卷积码), 反馈多项式为本原多项式(为配合交织器实现双归零特 性)。分量编码器的结构如图2所示。叫∞  蓥 咖 ∞ (37,21)RSC编码器的结构 5 |C C¨ 图3 (37,21)RSC编码器的状态转移格图 编码器的状态转移格图及相应的编码输出如图 3所示。图中.s0、.s 、.s:、.s3分别对应 、D 、D2、D3 的状态,c柚、 分别为输入0、1时的编码输出,实线 表示输入为0,虚线表示输入为1。因为是递归系统 卷积码,故编码器状态归零不能简单通过在输入序 列末尾添加4个0比特来实现。如果 代表需添 加的结尾比特,则在FPGA中可用下式计算d : d ≤S0 xor S1 xor S2 xor S3 (1) 在FPGA里分量编码器的主要功能可由1个4 bit寄存器和5个异或门来实现,此外还需要一些寄 存器、计数器、比较器和触发器等来完成时间同步及 输入输出地址的存放和索引等辅助功能。 Vo1.48 No.3 Mar.2008 Turbo码中交织器可以减小校验比特之间 的相关性,在迭代译码过程中降低误码率。故交织 器的选择很重要。设计中采用分组螺旋对称交织 2 ∞∞∞∞ ∞ n叭叭u ∞∞ 叭叭叭叭n n¨n 叭叭u ∞ 器。该交织器易实现双归零特性(分量码反馈多项 式为本原多项式即可),且设计与实现都较简单。 其实现方法如下 2 J:如果交织器大小为L=M X N (要求 与Ⅳ互素),则将0至L一1序 ̄JJg,序写人 M X N矩阵。当M=4,N=3时,如图4(a)所示。∞∞∞∞ ∞ ¨叭叭n ∞∞ n u¨¨叭叭叭叭 n叭叭¨  ∞ 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 圈匿 图4分组螺旋交织示意图 然后从矩阵的左上角开始向右下方读取数据, 每向下一行同时右移一位,即行索引递增的同时列 索引也递增,递增步长为1。在行的方向和列的方 向分别对索引取模 和Ⅳ,若令rl和c 分别表示第 个比特的行索引和列索引,则数据读取顺序为 :C“  =r1 :C  ̄ mmod od MⅣV++l 式中i=1,2,3,…,L。上述递归运算的初值分别为 r】=1和c =1。按上述顺序读出的即为交织序列, 将它顺序写人矩阵,如图4(b)所示。在FPGA里用 一个ROM存放交织序列,当一组数据序列需要交 织时,数据的序列号为ROM的输入,则输出即为该 数据交织后的序列号。 采用xc2vp30芯片实现自适应编码器,资源利 用情况如表1所示。 表1 自适应编码器资源利用表 、、、\ 数目 资源、、\ 利用数 总数 利用率 Slices 1 059 13 696 8% Slice Flip Flops 1 208 27 392 4% 4 input LUTs 1 751 27 392 6% bonded IOBs 9 416 2% GCLKs 2 16 12% DCM ADVs 1 8 12% 2 Turbo译码器的设计与实现 Turbo译码器及其子译码器的结构如图5所示。 子译码器包括路径度量计算,可靠性值△ 更新和时 钟控制3个部分。整个译码器则由子译码器和交织 器组成。 ・83・ 国~讥.技 维普资讯 http://www.cqvip.com 第48卷第3期 2008年3月 .国抛杖 Telecommunication Engineering Vo1.48 No.3 Mar.20o8 先验厂—————————————一 信息比特.1器I .I器卜_——— 墨 校验比特2  I1.圈型 l器l 图5 Turbo码译码器及子译码器的结构 子译码器采用SOVA译码。SOVA译码过程与 Viterbi译码过程类似,区别在于SOVA是利用修正 的度量来寻找最大似然序列。这个修正的度量值结 合了当前时刻之前的度量值、信道接收信息和先验 信息,可表示为 = 一1+uIL Y 1+∑ IJL。YtjuI (uI)(3) 式(3)表达的是某状态下,某分支路径上修正度量 值的计算。其中 为度量值,Ⅱ为系统比特, 为码 长为Ⅳ的编码码字,L。为信道置信值(假设其为 1),Y为对应 中各比特的信道接收值, (Ⅱ )为先 验信息。 SOVA的译码过程如下:首先从t=0时刻开始 计算各状态下的路径度量值直到一帧结束。在每一 时刻为每个状态搜索最大度量值,表示为幸存路径 度量 ,其它表示为竞争路径度量,则可靠性值△ =I 一M I/2。然后更新可靠性值。从竞争路径 远端(译码深度为 )回溯到待更新的时刻,采用HR —SOVA原则,回溯结果的判决和估计比特一致则 可靠性值保持,如不同,则更新为当前时刻幸存路径 可靠性值与竞争路径回溯到此的可靠性值中的较小 者。 SOVA译码器在硬件实现过程中有必要对其所 存储和发送的数值做量化处理,如接收比特序列、译 码器之间传送的外信息值以及译码器内部运算的中 间变量和可靠性度量 等。本设计对接收比特序 列采用8 bit量化_3】,对外信息值和中间变量采用 16 bit量化,最高位均为符号位。符号位为0表示比 特为1,值越大可靠性越大;符号位为1表示比特为 一1,值越大可靠性越小。 为减少SOVA译码的延迟,采用每一时刻为每 个状态并行计算路径度量值和可靠性值的方法。为 存储各状态的可靠性值,调用16个位宽为16(量化 ・84・ 比特)、存储深度为256(帧长度为240)的RAM,为 存储所有状态下的幸存比特,调用一个位宽为16 (状态数)、存储深度为256(帧长度为240)的RAM, 再自定义一个位宽16(量化比特)长度为16(状态 数)的数组来存储每一时刻各状态的路径度量值。 采用并行算法,计算一帧数据的路径度量值和 可靠性值需要的时间为 T=Frame length X CLK (4) 按照一帧信息长240 bit,译码时钟8 ns计算, 仅耗时1.92 s。 为减少SOVA译码延迟,除对路径度量值与可 靠性值的并行计算,选择合理的可靠性值更新方法 也非常必要。本设计的可靠性值更新过程如下: (1)由于编码实现了双归零,故两个编码器的 寄存器结尾状态均为0状态。从结尾出发,利用编 码格图和幸存比特序列回溯,得到输入信息的估计 序列和最大似然状态序列。 (2)译码深度 的大小,一般为编码器约束长 度的3~5倍 J,本设计的编码约束长度为5,为减 少译码延时,选择 为15。更新t时刻可靠性值时, 由t+1时刻开始到t+ —1时刻从近到远逐个进行 更新。为简化说明,假设译码深度为5。先从t+1 回溯到t,按照HR—SOVA原则首次更新可靠性值, 然后再从t+2回溯到t,进行第二次更新,直到从t +4回溯到t得到第4次(最终)更新结果,t时刻的 可靠性值更新完毕。 图6可靠性值回溯更新图 回溯时由近到远依次需要1、2、3、4、5个时钟, 如图6所示。按前面的更新方法需要1+2+3+4 +5=15个时钟。分析发现,当从t+2时刻回溯到t (2个时钟),需从t+1时刻回溯到t的更新值来做 比较更新的时候,从t+1时刻开始的回溯已经更新 完毕(1个时钟)。由此可见,这5个回溯过程可并 行进行,只需5个时钟,而不是15个时钟。当译码 深度为15,译码时钟为8 ns,更新一个比特仅耗时 0.12 s。 (3)t时刻可靠性值更新完毕后,继续更新t+1 时刻,依次从t+2,t+3,t+4,t+5回溯到t+1。方 法同(2)。 按上述3个步骤进行可靠性值更新,直到一帧 信息更新完毕。 维普资讯 http://www.cqvip.com 第48卷第3期 2008年3月 更新后的可靠性值经交织作为下一个译码器的 先验信息。此处不利用外信息(可靠性值减去系统 信息和前一次输入的先验信息)作为下一个译码器 的先验信息是因为量化误差的存在。量化已经产生 了误差,如再通过运算,那误差就很可能会扩大,从 而造成错误。比如100.6~50.3—50.4=一0.1本 应是负值,量化后为101—50—50=1却成正值了。 采用xe2vp30芯片实现译码器,资源利用情况 如表2所示。 表2译码器资源利用表 、、、\ 数目 资源—\ 利用数 总数 利用率 Sli ces 5 344 13 696 39% Slice Flip Flops 2 381 27 392 8% 4 input LUTs 10 243 27 392 37% bonded 10Bs 28 416 6% 咖 BRAMs 23 136 16% GCLKs 1 16 6% 3 Turbo编译码器的硬件仿真性能 利用ModSim SE PLUS 5.8b仿真FPGA上实现 的编译码器,设定条件如下:分量码为(37,21),码 率分别为1/3、1/2、2/3、4/5,交织器为分组螺旋对 称交织器,交织长度为240位,数据经编码和QPSK 调制再通过AWGN信道加噪送到接收端,接收信号 采用8 bit量化,译码器采用SOVA算法,迭代5次 (通过子译码器5次),在不同的信道条件下,各取 50帧数据(12 000比特)进行仿真,得到不同码率下 误码率达到10 时分别所需的信噪比。如不经过 编码,仅通过QPSK调制,误码率达到10 需11.5 dB的信噪比,由此可得采用不同码率时的编码增 益,如表3所示。 表3 Turbo译码器硬件仿真性能表 、、—\ 码率 1/3 1/2 2/3 4/5 性能—\ 信噪比/dB 2.5 4.5 7.0 10.0 误比特数/个 2 1 2 2 误比特率(×10 ) 1.67 0.83 1.67 1.67 编码增益/dB 9.0 7.0 4.5 1.5 误码率为10 时,1/2码率的编码增益为 7.0 dB,比1997年Sklar给出约8.5 dB 的增益少 1.5 dB,由于本设计采用SOVA算法译码,从性能上 Vo1.48 No.3 Mar.2008 较Sklar给出8.5 dB增益所采用的Log—MAP译码 算法差约0.5 dB,且考虑到本设计为实现硬件仿 真,信息采用8 bit量化,交织采用240 bit短序列, 这些设计使误码性能有所降低。故表3给出的结论 与理论值相符,说明本设计正确可行。 4 结论 本文设计的Turbo编译码器能实现与信道条件 匹配的自适应编码,有效提高信道带宽利用率,译码 速率最高可达0.652 MHz,较最高译码速率 0.507 MHz高约145 kHz。此外,采用xc2vp30芯片 实现该编译码器,总的资源消耗不超过50%。本设 计在保证良好误码性能的基础上,数据吞吐率高,硬 件实现资源耗费小,具有较高的实用价值。 参考文献: [1] Claud Berrow,A.tain Glavieux,Thitimasjshima.Near Shannon Limit Error—Correcting Coding and Decoding: Turbo—Codes(1)[C]//IEEE Int.Conf.on Commun. Geneva:IEEE,1993:1064—1070. [2]刘东华.Turbo码原理与应用技术[M].北京:电子工 业出版社,2004. [3]Wu Yufei,Brian D Woemer.The Influence of Quantiza— tion and Fixed Point Arithmetic upon the BER Perform— ance of Turob Codes[C]∥IEEE 49th Veh.Tech.Conf, Houston:IEEE,1999:1683—1687. [4] 张俊.卷积码维特比译码算法最佳反馈深度研究[J]. 现代电子技术,2006,(3):45—46. [5]Leon W.Couch II.Distla and Analog Communication Systems[M].6th Ed.BeiJing:Science Press,2003:25 —28. [6]李涛护,李建东,周旭.CCSDS标准的Turbo译码器的 硬件设计[J].无线电工程,2005,35(11):59—61. 作者简介: 黄懿(1982一),女,四川I内江人,西安交通大学电信 学院信息与通信工程系硕士研究生,研究方向:信号处理及 无线传输,(电子信箱)woshihuangmaomao@163.com; 周兴建(1970一),男,高级工程师,研究方向:通信系统 设计,(电子信箱)zxjzjy@163.com; 余金权(1972一),男,工程师,研究方向:信号处理及无 线数据传输,(电子信箱)vuthili@yahoo.com; 阎鸿森(1945一),男,教授,研究方向:信号与系统及宽 带交换网络,(电子信箱)yanhs@mail.xjtu.edu.cn. ・85・ 国一技 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务