突发通信中Turbo码的FPGA实现

发布者:zukeq2009最新更新时间:2010-05-10 来源: 北京理工大学关键字:Turbo码  FPGA  突发通信 手机看文章 扫描二维码
随时随地手机看文章

  Turbo码是一种低信噪比条件下也能达到优异纠错性能的信道编码。早期为了强调Turbo码接近香农限的优异性能,研究的码字长度非常大[1~2],存在译码复杂度大、译码时延长等问题。突发数据通信以传输中小长度的数据报文业务为主,所以突发通信中的Turbo码的码长也是中等长度以下的。本文面向突发数据通信中的信道编码应用,研究了短帧长Turbo码编译码算法的FPGA实现。实现中采用了优化的编译码算法,以降低译码复杂度和译码延时。最后仿真和测试了Turbo译码器的纠错性能和吞吐量。

  1 Turbo码编码器的FPGA实现

  Turbo码的编码器是由两个RSC(递归系统卷积码)分量编码器和一个交织器组成。RSC码不仅具有系统码的优点,而且对于一个RSC码,总存在一个具有完全相同栅格结构的NSC码(非系统卷积码)。本系统中使用两个相同的RSC编码器,生成的多项式都是G=[1,15/13],系统编码率为1/3。

  交织器的功能是利用随机化的思想将两个相互独立的短码组合成一个长的随机码。本课题中Turbo码交织器的实现是构造一个交织地址发生器,并根据输入的帧长信息,实时地产生交织地址序列。

  图1为编码器的FPGA实现结构图。编码前,地址发生器获取帧长信息,完成交织地址生成的准备过程。编码时,信息序列被依次写入双口RAM,待写完一帧数据后,地址产生器开始生成顺序地址和交织地址。双口RAM按两个地址读取信息序列X和交织后的信息序列X’进行RSC编码;最后编码器输出系统位X和校验位P0和P1。

编码器的FPGA实现结构图

  2 Turbo码译码器的FPGA实现

  Turbo码译码器比较复杂,下面从译码器的接口、内部结构、内部的时序控制、分量译码MAX-Log-MAP算法和SISO模块的实现五个方面来详细阐述译码器的FPGA实现。

  2.1 译码器的接口

  Turbo码译码器顶层模块的接口管脚如表1所示。

Turbo码译码器顶层模块的接口管脚[page]

  2.2 译码器的内部结构

  Turbo码译码器由两个软输入/软输出分量译码器、交织器以及相应的解交织器构成。译码是信息在两个分量译码器之间迭代运算的过程。在迭代运算中,上一次运算得到uk的外信息Λe(uk)作为下一次运算uk的先验信息Λa(uk)。Turbo码分量译码器译码算法主要有MAP类(最大后验概率译码算法)和SOVA类(软判决Viterbi译码算法)[3]。本文采用运算复杂度和性能都适中的MAX-Log-MAP算法。Turbo码译码器FPGA实现的内部结构如图2所示。

Turbo码译码器FPGA实现的内部结构

  地址发生器与编码器相同,用于数据的交织和解交织。输入数据存储器用于存储输入的接收数据,包括系统信息序列存储器以及各个校验序列存储器。外信息存储器用于存储迭代译码产生的外信息。由于外信息要作为下一次译码的先验信息,所以这里的外信息存储器有两块,交替存储两个分量译码器的外信息。SISO模块即为软输入、软输出分量译码器。整个Turbo码译码器有两个SISO分量译码模块。但为了节省资源,本方案只设计了一个SISO模块,将时分复用作为两个分量译码器。图2中,表示接收码字中的系统位,表示接收码字中的校验位。

  2.3 译码器内部的时序控制

  Turbo码译码器内部的时序控制由状态机完成。整个译码过程分为初始化、接收数据存储、迭代译码及硬判决输出四个过程,且对应于状态机的INIT、STORAGE、SISO和OUT四个状态。译码器的内部状态转移如图3所示。初始状态INIT完成帧长设定等初始化工作,并完成交织地址生成的准备过程,一旦指示第一个数据输入的fd信号有效(高有效)时,则进入STORAGE状态;状态STORAGE完成将接收数据序列存入单口RAM中,待一帧数据写完后,指示存储完毕的rdyStr信号置高,进入SISO状态;在状态SISO下,SISO分量译码器根据设定的迭代次数对接收数据进行迭代译码。当迭代完成时,rdySiso置高,进入OUT状态;对数据硬判决输出并计数,此时输出有效信号ready置高,待全部判决完毕后返回INIT状态。

译码器的内部状态转移[page]

  2.4 分量译码算法——MAX-Log-MAP算法

  MAP算法需要大量的乘法运算和指数运算以及大量的存储,运算十分复杂。Log-MAP算法则将MAP算法中的乘法运算转换为对数域中的加法运算(不需要对数运算),适合工程实现。因此在工程实现时,可以将原来在对数域内的加法运算转换为取两个数的较大者加上一个修正项的运算。如果将修正项的运算也省略,则Log-MAP算法可简化为MAX-Log-MAP算法。MAX-Log-MAP算法的主要计算步骤如下[4~5]:

  (1)计算Turbo码编码网格图上分支的路径度量值:

公式

  由于Lc值对译码性能影响不大[6],为了方便定点实现,本文中简化为Lc=1。

  2.5 SISO模块的实现

  分量译码器的FPGA实现的SISO模块采用模块化设计,主要包括前向度量计算模块、反向度量计算及对数似然比计算模块、前向度量存储器以及归一化度量存储器。由于前向度量计算和反向度量计算均需要计算分支度量,因此可以预先计算并存储分支度量。但在本方案中,为了节省存储空间,并没有对分支度量进行存储,而是在前向与反向度量计算时均计算一次,而且在反向度量计算收敛后同时计算对数似然比。

  用FPGA对算法进行定点实现时,需要考虑到溢出的问题。为防止计算过程中出现溢出,对前向度量和反向度量计算过程进行归一化处理。若某时刻的归一化度量值选择当前时刻前向度量中的最大值,则归一化便是前向度量和反向度量减去此最大值。归一化后的前向度量和反向度量计算公式如下:

公式[page]

  SISO模块内部处理流程分为初始化、前向度量计算和存储、反向度量计算和对数似然值计算三个部分,且对应于状态机的三个状态INIT、FSM和RSM。SISO模块的内部时序如图4所示。INIT状态完成内部寄存器的初始化设置,当外部输入信号Siso_start有效时,启动SISO模块,进入FSM状态;FSM状态中,每8个时钟周期内,用式(1)和式(2)计算出一个时刻对应的8个前向度量值,并选择出其中的最大前向度量值作为归一化度量值,用式(8)计算归一化后的前向度量值。启动一次前向度量写信号,存储当前计算得到的8个前向度量值和当前归一化度量值。当所有前向度量计算完毕时,启动Fsmrdy信号,进入RSM状态;每10个时钟周期内,用式(1)和式(2)计算出一个时刻对应的8个反向度量值,用式(9)计算归一化后的反向度量值,用式(4)和式(5)计算出相应时刻的对数似然比和外信息对数似然比,并将外信息对数似然比存储起来。当所有计算都完成时,启动Rsmrdy信号,进入INIT状态。

SISO模块的内部时序

  由于本方案中SISO模块将时分复用作为两个分量译码器,对应于一次译码迭代的两个半迭代过程。因此图4中的Decoder_num为低时,SISO模块作为第一个分量译码器,进行第一个半迭代运算;Decoder_num为高时,SISO模块作为第二个分量译码器,进行第二个半迭代运算。每次半迭代产生的对数似然比信息作为下次半迭代的先验信息。用两块RAM存储两次半迭代产生的外信息对数似然比。第一个半迭代时,从第二个外信息存储器中读取上一次半迭代产生的外信息对数似然比作为先验信息,计算得到外信息对数似然比后存储到第一个外信息存储器中;第二个半迭代时,从第一个外信息存储器中读取上一次半迭代产生的外信息对数似然比作为先验信息,计算得到外信息对数似然比后存储到第二个外信息存储器中。每帧数据译码的第一次迭代中的第一个半迭代的先验信息设为0。

  迭代满足迭代终止准则后,译码器停止迭代,由信息的对数似然比值硬判决输出译码结果。工程中常用的迭代终止准则是设置最大迭代次数。最大迭代次数的设定需要综合考虑误码率性能和系统吞吐量性能。

  3 Turbo码编译码器的性能

  基于以上提出的Turbo码编译码器的FPGA实现方案,本文在Xilinx公司的Virtex2系列的XC2V500-6fg256 FPGA芯片上,实现了帧长在64~1 024范围之间可变的Turbo编译码器。输入数据4bit量化,内部数据位宽选择12bit,编码器模块和译码器模块在同一块FPGA芯片上实现。综合后时钟最小周期为7.188ns ,对应最高时钟频率为139.121MHz,所占的资源如表2所示。

所占的资源

  延迟与吞吐量是衡量译码器性能的两个主要指标。延迟定义为从第一个数据输入到第一个数据输出间的时间差。吞吐量定义为平均每秒能处理的数据量。在帧长为1 024、迭代次数为5的条件下,译码器延时约为1.4ms,吞吐量约为0.72Mbps。[page]

  最后,对帧长为128、256、512和1 024四种条件的Turbo码译码器进行了误码率性能测试。测试系统中加入高斯白噪声,数据采用 BPSK调制,译码器5次迭代。测试结果的性能曲线如图5所示。测试结果表明,在信噪比低于4dB的条件下,跳频数传通信系统采用Turbo编译码方案,误码率小于10-5,达到了数据传输可靠性的要求。由于译码器的帧长在64~1 024范围内可变,因此非常适合应用在突发数据通信中的差错控制中。

测试结果的性能曲线

  参考文献

  1 Berrou C, Glavieux A, Thitimajshima P. Near shannon limit error-correcting codeing and decoding: turbo codes. in Proc.ICC′93, Geneva, Switzerland, May. 1993:1064~1070

  2 Berrou C. Near optimum error correcting coding and decoding-turbo-codes. IEEE Transcations On Communications, 1996;44(10)

  3 万 蕾. Turbo码及其在第三代移动通信系统中的应用. 北京理工大学博士学位论文,2001

  4 Robertson P, Villebrun E, Hoeher P. A comparison of optimal and suboptimal MAP decoding algorithms operation in the log domain. in Proc.ICC’95,Seattle,WA,June 1995:1009~1013

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

  6 Worm A, hoeher P, When N. Turbo-decoding without SNR estimation. IEEE Commmun,2000;(4):193~195

关键字:Turbo码  FPGA  突发通信 引用地址:突发通信中Turbo码的FPGA实现

上一篇:一种基于FPGA的NoC验证平台的构建
下一篇:Altera Q1收入创新高,28nm FPGA延续领航

推荐阅读最新更新时间:2024-05-02 21:03

赛灵思推出全新下一代FPGA系列产品
2009年2月6日,全球可编程逻辑解决方案领导厂商赛灵思公司(Xilinx)在北京宣布:公司隆重推出全新一代旗舰产品系列-高性能Virtex® -6和低成本Spartan® -6 FPGA,开启了 “目标设计平台”新时代。新的目标设计平台将帮助系统设计工程师极大地提高生产力, 并将开发成本降至最低。 在当前充满挑战的商业和技术环境中,为了保持创新能力和竞争力,可编程能力越来越多地成为电子产品生产商的必需。赛灵思联合第三方合作伙伴新推出的目标设计平台为系统设计师提供了更简单、更智能且在战略上更可行的设计方法,帮助他们更容易地创建基于FPGA的面向多种不同市场和应用的片上系统(SoC)解决方案。   Virtex-6
[嵌入式]
美国莱迪思半导体发布中端FPGA新产品
   美国莱迪思半导体硅解决方案营销总监Shakeel Peera (点击放大)   美国莱迪思半导体(Lattice Semiconductor)于2011年11月28日(当地时间)发布了成本和功耗都比较低的中端FPGA新产品“ECP4”系列。特点是与上一代产品“ECP3”一样,也利用65nm工艺技术制造。制造中端FPGA时,与利用最尖端的28nm工艺相比,利用已成熟的65nm工艺“在今后3~5年里能降低晶圆成本”(该公司硅解决方案营销总监Shakeel Peera)。   “ECP4”系列的主要用途是“最后一英里(Last Mile)的网络设备”(Shakeel Peera)。除无线及有线通信设备外,还能用于各种图像处理装
[嵌入式]
美高森美发布高性能 SmartFusion2 SoC FPGA双轴电机控制套件
IP集和参考设计简化电机控制设计,并且提供 30,000 RPM性能 致力于在电源、安全、可靠和性能方面提供差异化半导体技术方案的领先供应商美高森美公司(Microsemi Corporation,纽约纳斯达克交易所代号:MSCC) 宣布提供带有模块化电机控制IP集和参考设计的SmartFusion2 SoC FPGA双轴电机控制套件。这款套件使用单一SoC FPGA器件来简化电机控制设计,可加快上市速度并可扩展用于工业、航空航天和国防等多个行业,典型应用包括工厂和过程自动化、机器人、运输、航空电子和国防电机控制平台。这款SoC器件集成了多个系统功能,有助于降低总体运营成本。 SmartFusion2
[嵌入式]
基于FPGA的FIR数字滤波器的优化设计
    在图像处理、语音识别等数字信号处理中,数字滤波器占有重要的地位,其性能对系统有直接的影响。随着系统在宽带、高速、实时信号处理上要求的提高,对滤波器的处理速度、性能等也提出更高的要求。目前数字滤波器的硬件实现方法通常采用专用DSP芯片或FPGA,DSP特有的一些硬件结构和特性使其非常适合作数字滤波电路,但由于其软件算法在执行时的串行性,限制了它在高速和实时系统中的应。FPGA最明显的优势在于其实现数字信号处理算法的并行性,可以显著提高滤波器的数据吞吐率,随着FPGA技术的不断发展,现在的FPGA不仅包含查找表、寄存器、多路复用器、分布式块存储器,而且还嵌入专用的快速加法器、乘法器和输入/输出设备,因而成为高性能数字信号处理的理
[嵌入式]
FPGA设计中的时序管理
    当FPGA设计面临高级接口的设计问题时,该采取什么办法来解决呢?美国EMA公司的TimingDesigner软件可以简化这些设计问题,并提供对几乎所有接口的预先精确控制。下问文将向你娓娓道来。    一、摘要   从简单SRAM接口到高速同步接口,TimingDesigner软件允许设计者在设计流程的初期就判断出潜在的时序问题,尽最大可能在第一时间解决时序问题。在设计过程的早期检测到时序问题,不仅节省时间,而且可以更容易的实施设计方案。美国EMA公司的设计自动化工具--TimingDesigner,允许创建交互式时序图来获取接口规范,分析组件接口时序的特点,在项目工程师团队中沟通设计要求。        
[嵌入式]
利用FPGA实现模式可变的卫星数据存储器纠错系统
摘要:比较讨论了航天器数据存储器中汉明码和TMR两种典型纠错系统的原理、实现以及数据可靠性的估计,在此基础上提出了一种集成这两种系统模式并可在实际应用中根据需要切换模式的纠错系统设计方案,探讨了该系统的特点和优势,介绍了利用FPGA实现该系统的过程和经验。 关键词:单粒子翻转 汉明码 数据存储器 纠错编码 微小卫星 空间飞器在太空环境中面临的主要问题之一就是辐射。太空中的各种高能粒子(包括高能质子、中子、α粒子、得离子等)具有很高的动能,通过时可能会影响半导体电路的逻辑状态,甚至对半导体材料造成永久损害。单个高能粒子对电子器件功能产生的影响称之为单粒子效应。其中,导致存储内容在"0"、"1"之间发生变化的单粒子翻转(SEU)问
[应用]
基于单片机C8051F120和FPGA器件实现嵌入式显示系统的设计
嵌入式设备凭借其与使用者之间的亲和力、自然的人机交互界面,得到了迅速的发展,渗透到生活中的各个角落。本文介绍的设计方法是以高性能的8位单片机C8051F120作为核心处理器,SRAM作为系统的显存,FPGA实现时序转换,构建低温(-10℃)下嵌入式显示系统。通过PC机键盘和触摸屏实现界面操作,最终在液晶显示器上显示国标一/二级汉字、ASCII字符和65 536色的彩色图形和图片,并制作了简单的操作界面。 1 系统工作原理 显示汉字、英文字符和彩色图形的过程就是将字符和图形信息转换成液晶显示器可以显示的点阵信息。为了显示字符,可以将ASCII码字符点阵字库和按区位码排列的汉字点阵字库存储在单片机外接的Flash ROM中(构成点
[单片机]
基于单片机C8051F120和<font color='red'>FPGA</font>器件实现嵌入式显示系统的设计
EL7564C的双电压FPGA电源解决方案
概述 Xilinx公司的FPGA(现场可编程门阵列)芯片正向高密度化发展,FPGA的内核在提供低成本和高性能的同时还林求低功耗。当今选进的亚微米IC工艺正趋于采用低电压供电,同时这将导致对大电流的不断需求。工程线路板的设计必需满足这类电源供电的需要。 现在FPGA的内核和I/O的电源需要双电源供电。通常来说,I/O部分的供电电压是由设备中其它元器件所决定的,而FPGA的内核则依赖于产品本身的设计,其内核的供电电源分别为2.5V,1.8V或1.5V。电源的跟踪(Tracking)/顺序(Sequencing)的功能可以用来满足这一系列的电压要求。    
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved