datasheet
超过460,000+ 应用技术资源下载
pdf

Turbo码编译器FPGA设计与实现

  • 1星
  • 日期: 2014-03-05
  • 大小: 5.43MB
  • 所需积分:1分
  • 下载次数:1
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: Turbo码编译器FPGA设计与实现

1993年,Turbo码的提出,以其接近Shannon极限的优异的性能在编码界引起了轰动,并成为研究的热点。随着研究的不断深入和技术的发展,目前,Turbo码已经应用到很多实际通信系统中。同时,如何实现Turbo码编译码器成为了人们研究的重点。 论文以基于FPGA实现Turbo码编译码器为研究目标,首先分析了Turbo码的基本编译码原理和3GPP标准的Turbo码编码结构。然后分析了MAP译码算法,Log-MAP译码算法和Max-Log-MAP译码算法,接着仔细分析了对系统性能影响的各个参数并逐一进行选择,最后对各个选择的系统进行仿真,对仿真的结果进行比较论证,确定满足系统性能要求的各个参数。 论文在系统仿真分析论证的基础之上,进行了Turbo码编码器的设计实现和硬件测试,选择Max-Log-MAP译码算法进行了Turbo码译码器的FPGA设计实现和硬件测试。最后完成整个通信系统的搭建和调试。主要针对FPGA实现的数据量化、定点数据表示方式、Max-Log-MAP算法子译码器关键运算单元的FPGA设计和译码的时序控制进行了深入研究,完成了固定译码长度的Turbo码译码器的FPGA设计实现,并利用ModelSim和MATLAB分别对译码器进行了时序功能验证和FPGA定点仿真测试。

分类号: U D C: 密级: 编号: 工学硕士学位论文 Turbo码编译码器FPGA设计与实现 硕士研究生: 罗清华 指导教师 : 赵旦峰 教授 学位级别 : 工学硕士 学科、专业: 通信与信息系统 所在单位 : 信息与通信工程学院 论文提交日期: 2008年1月 论文答辩日期: 2008年1月 学位授予单位: 哈尔滨工程大学 哈尔滨f‘科人学硕十学位论文 III 摘要 1993年,Turbo码的提出,以其接近Shannon极限的优异的性能在编码 界引起了轰动,并成为研究的热点。随着研究的不断深入和技术的发展,目 前,Turbo码已经应用到很多实际通信系统中。同时,如何实现Turbo码编 译码器成为了人们研究的重点。 论文以基于FPGA实现Turbo码编译码器为研究目标,首先分析了Turbo 码的基本编译码原理和3GPP标准的Turbo码编码结构。然后分析了MAP译 码算法,Log—MAP译码算法和Max.Log.MAP译码算法,接着仔细分析了对 系统性能影响的各个参数并逐一进行选择,最后对各个选择的系统进行仿真, 对仿真的结果进行比较论证,确定满足系统性能要求的各个参数。 论文在系统仿真分析论证的基础之上,进行了Turbo码编码器的设计实 现和硬件测试,选择Max.Log.MAP译码算法进行了Turbo码译码器的FPGA 设计实现和硬件测试。最后完成整个通信系统的搭建和调试。主要针对FPGA 实现的数据量化、定点数据表示方式、Max.Log.MAP算法子译码器关键运算 单元的FPGA设计和译码的时序控制进行了深入研究,完成了固定译码长度 的Turbo码译码器的FPGA设计实现,并利用ModelSim和MATLAB分别对 译码器进行了时序功能验证和FPGA定点仿真测试。 关键词:Turbo码;FPGA;Max.Log.MAP译码算法 哈尔滨I:科人学硕十学位论文 AB STRACT Since Turbo code was proposed in 1 993,it has received great auemion and become a research hot spot due to it's near Shannon limited good coding performance.With the continuous research and the development of technique, Turbo code has begun to apply in the real communication systems.Now,how to implement the Turbo encoder and decoder with hardware effectively has become a research hot spot. In order to implement the Turbo encoder and decoder based on FPGA,firstly, this thesis has analyzed the principles of Turbo code and the 3GPP Turbo encoder. Secondly,this thesis has carried on detailed theory analysis MAP algorithm, Log。MAP algorithm and Max—Log·MAP algorithm,and has also analyzed the maj or factors affecting the Turbo coding performance with MATLAB simulations. And thirdly it determined the factors those met performance demanded through simulation. Based on analysis and comparison the results of simulation,this thesis has designed the Turbo encoder and verified the encoder.It has adopted Max’_Log’·MAP decoding algorithm to carry on the design and implementation of Turbo code based on FPGA and verified it.And finally has designed the whole communication and debugged it.Data quantizmion,fixed-point presentation,the FPGA design of key compute modules in Max-Log—MAP sub.decoder and time sequence control in Turbo decoder of 3GPP standard have been discussed.Finally, a fixed decoding length Turbo encoder and decoder based on FPGA has been designed,and function timing verification and FPGA fixed.point simulation has been separately carried on with ModelSim and MATLAB。 Key words:Turbo code;FPGA;Max—·Log··MAP algorithm 哈尔滨工程大学 学位论文原创性2声明 本人郑重声明:本论文的所有工作,是在导师的指导 下,由作者本人独立完成的。有关观点、方法、数据和 文献的引用已在文中指出,并与参考文献相对应。除文 中己注明引用的内容外,本论文不包含任何其他个人或 集体已经公开发表的作品成果。对本文的研究做出重要 贡献的个人和集体,均已在文中以明确方式标明。本人 完全意识到本声明的法律结果由本人承担。 作者(签字): 日日期期::厶二。。吝留年f年f月月ff/7 E1 哈尔滨T稗大学硕十学何论文 第1章绪论 在现代数字通信系统中,为了保证各种数据在信道中可靠、有效地传输, 往往要利用纠错编码技术。近年来,随着近年来,随着无线数字通信的发展 及各种高速率、突发性强的新业务的出现,研究并利用好的纠错码技术就越 来越显得非常必要。尤其是在一些频带或功率受到限制的系统中,这种必要 性更为突出。 1.1课题的背景及研究意义 1948年香农(Shannon)在他的开创性论文《通信的数学理论》¨1中, 首次阐明了在有扰信道中实现可靠通信的方法,提出了著名的有扰信道编码 定理,奠定了纠错编码理论的基石。从Shannon信道编码定理可知,在信息 传输速率R不大于信道容量c的情况下,从码组长度趋于无穷大的码集合中 随机的选取编码码字,并且在接收端译码采用最大似然译码算法时,译码错 误率可趋于零。这种无差错传输必须满足以下3个基本条件: 1.采用随机性编译码。 2.编码长度L_∞,即分组的码组长度无限。 3.译码过程采用最佳的最大似然译码(ML)方案。 虽然该定理仅仅是一个存在性定理,没有给出具体实现差错控制编码的 方法,但却从理论上给出了纠错码的理论极限,同时也指明了纠错码研究的 方向和目标。 1993年,在瑞士日内瓦召开的国际通信会议(ICC’93)上C.Berrou, A.Glavieux和P.Thitimajshima提出了一种震惊整个编码界的新型信道编码方 案——小lrbo到21。仿真结果表明,在采用长度为65536的随机交织器并迭代 译码18次的情况下,信噪比等于0.7dB,采用BPSK调制,码率l/2的Turbo 哈尔滨T程大学硕七学位论文 码在加性高斯白噪声信道上的误比特率达到10一,和Shannon极限仅相差 0.7dB,从而掀起了研究Turbo码的热潮。 Turbo码经过了经过了十多年的发展,无论是编码方案还是译码算法方 面的研究都相对很成熟。随着对Turbo码的理论和实践研究的不断深入和通 信技术的飞速发展,由于Turbo码优异的性能,Turbo码已经逐步广泛应用 到实际的各种通信规范和通信系统中。空间数据标准咨询委员会(Consultative Committee for Space Data Standard,CCSDS)已将l 6状态Turbo码列为一个新 的信道编码标准,支持1/2、1/3、1/4和1/6码犁31,2003年后,美国国家航 空和宇宙航行局(NASA)与欧洲空间局(ESA)支持该标准。Turbo码被卫 星通信标准(INMARSAT)采用作为一种新的多媒体传输业务。在个人移动通 信领域,3GPP正式将Turbo码作为IMT2000的高速数据通信的信道标准之 一。其中被国际电联采用的、具有代表性的3个3G标准 (WCDMA,CDMA.2000和TD.SCDMA)均在信道编码中使用了Turbo码, 用以传输高速率、高质量的通信业务。代表性的4G标准(LTE,UMB和 WlMAX)也采用Turbo码做为信道编码方案之一。 本文就是基于这种背景,在低信噪比信道情况下,信道编码采用高码率 的Turbo码,采用连续相位调制(如MSK),在归一化信噪比低于2dB时, 要求系统误码率低于104。以此为设计的性能指标,来实现整个通信系统。 本文主要研究Turbo码编译码的FPGA设计与实现。 1.2 Turbo码的研究现状 1.2.1 Turbo码的算法研究 Turbo码,又称并行级联卷积码(PCCC),它是由C.Berrou等在93年的 ICC国际会议上提出的一种新型信道编码方案。由于其优异的性能,引起了 编码界的强烈关注。 2 哈尔滨T程大学硕士学位论文 一方面,Tl曲O码的优异性能来源于其独特的编码结构和软输入译码。 C.Berrou选用的Turbo码编码器包括两路码率为1/2的递归系统卷积码(RSC) 子编码器与一个随机交织器。两路子编码器对同一帧输入信息进行编码,但 由于随机交织器的存在,编码器各自的信息输入顺序不同。随机交织器保证 了子编码器之间编码的独立性H1。Shannon信息论中长期以来被忽视的随机编 码的思想在这里得到了体现。通过随机交织器,原始输入的信息序列顺序被 随机打乱,这样编码输出也呈现随机特性,起到随机编码的作用。 C.Berrou选用的交织器长度为65535比特。只有当全部的信息比特到达 后,编码器才能开始编码工作,这是分组码的特点。1995年,Svirid引用了 分组码的性能分析方法分析Turbo码的性能瞪1,那么Turbo码就可以看成一种 特殊的线性分组码。65535比特的信息长度是一个很长的长度,应该说是一 种“长码"。这样,Turbo码的编码结构使Shannon信息论中的随机化长码 思想得以实现。 在早期的译码方式中,接收端一般对接收符号先判决为“0”,“1”这样的二 进制符号或者二进制符号表示的多进制符号,然后输出到译码单元。译码单 元没有任何关于这些硬判决符号的可靠性消息。若把接收符号量化后再传输 给译码单元,这些量化输入包含了接收收符号的可靠度信息,我们称之为“软 输入(Soft Input)"。这些“软输入”能带来更好的译码性能。在卷积码的 软输入维特比译码中,这种“软输入”所带来的译码增益得到了体现。Turbo 码借鉴了这种译码方式,输入到子译码器的都是接收符号的量化输入。 另一方面,Turbo码的优异性能还体现在于迭代软输出译码算法的思想。 在译码时,两路子译码器间软输出信息不断相互交换,循环迭代完成译码。 子译码器采用BCJR算法,也就是MAP译码算法——最大后验概率译码算法。 这样,Turbo码的译码算法使Shannon信息论中的最佳的最大似然译码(ML) 方案思想得以实现。 Turbo码优异的误比特率(BER)性能使其成为近百年来纠错码研究领 域的一个热点。目前,Turbo码已经从简单的试验室仿真过渡到实际应用阶 3 哈尔滨ulj程大学硕士学位论文 段,如Turbo码已经在深空通信,卫星通信以及多媒体通信等领域得到了广 泛应用;此外,Turbo码在文本传输和数据存储等方面的也有应用。目前Turbo 码已被ITU2T确定为第三代移动通信(IMT2000)编码方案之一,在2003 年发布的IEEE802.16以及后来的IEEE802.16e标准中,卷积Turbo码也成为 信道编码方案之一。同时,Turbo码在数字电视、数字广播、第四代移动通 信系统中也有着非常光明的应用前景。 Turbo码迭代译码的思想还逐渐被应用到其他领域,诸如迭代均衡技术, 迭代与多用户检测相结合、迭代与高效调制技术相结合,此外迭代译码技术 还应用于信道编码与有记忆调制的级联系统。Turbo码本身也出现了一些变 体,1996年,MacKay提出来低密度校验码№1。 Turbo码在拥有优异性麓的丽时,也壶于在其很长码长的迭代译码过程 中信息序列和外信息序列需经过反复的交织与解交织,从而导致非常大的译 码延时。同时崮译码器熬结构决定了其译码算法具有较大觞运算量。这些也 是由Turbo码本身的编译码体制决定的。这在实时要求比较高时,就限制了 它的应焉。 因此如何减小译码时延、快速高效地实现Turbo码编译码系统具有重要 的研究价值和应用前景。当翦主要从两方面减小译码时延: 一方面是在译码算法上做一些改进,Turbo码译码基本算法主要是最大 簧验概率算法(MAP)弼和软输出维特泌算法(SOVA)灏。MAP算法是一种 最优算法,但其运算量非常大,加之运算中的非线性运算不利用硬件实现, 嚣悉一般只媚手理论分析,为此人们提出了次最优算法LOG.MAP算法及 MAX.LOG.MAP算法网。SOVA算法虽然性能不如MAP算法,但因其计算量 比较低,便于硬件实现的优点瑟颇受人们青睐。根据以上的几种基本算法, 不少学者也提出了很多改进算法,如由MAP算法改进过来的滑窗 MAP(SW-MAP)算法um,F.MAP算法Ⅲl:LOG.MAP进行改进的线性拟合 法¨21constant.LOG。MAP算法[131; 由MAX.LOG,MAP改进来的 SW2.MODIFIED.MAX.LOG-MAP算法n小,MAX.F.LOG.MAP算法;由SOVA 4 哈尔滨T程人学硕士学傅论文 算法改进的如双向SOVA、SM.SOVA算法、new-SOVA算法n卯、BI.SOVA算 法H61等等。这些改进是通过简化计算量,在纠错性能和实现复杂度上做了一 定的折中,以达到所要求的纠错性能并保证译码时延减小。 另一个方面是通过增加译码器的数量以减小译码时延,即在译码端使用 N(N>=2)个译码处理器并行译码以减小译码延时。国内外都有不少的科研 成果。如国外的Jah.Ming Hsu等人于1998年在“一种并行Turbo码译码方 案’’中提磁来并行译码方案¨露。在该方案中,使用了帧分裂并且在分裂处重 叠部分信息比特,该编码的纠错优劣性能和重叠的比特数相关。后来不少学 者陆续提供了各种改进方案,如U.Dasgupta等入提出的“使用软输出T算法 的并行Turbo码译码’’【l 81。2001年,LiPing提出了“Turbo—SPC(单校验) 码’’,它的译码复杂度比Turbo码低很多瑟霹。Seokhyun Yoon等人于2004 年在“并行Turbo码译码”一文中使用图形分析了几种现有的并行Turbo码 译码方案蹦,并结合“双流"操作提出了自己鹩新并行Turbo码方案。 国内也有一些科研单位研究了并行Turbo码译码并取得一定的成果。南 京邮电学院的刘拣等入于20睨年在“Turbo码并行译码算法的研究”搿’中, 将Turbo码译码和图论结合起来,利用Bayesian网络图模型描述了Turbo码 的译码过程,基于模型使用Pearl的信息传播算法,建立了Turbo码的并行 译码算法。两南交大的万科等人于2003年提出了一种基于帧分裂和篱笆图归 零处理斡译码方案瑟引搬,该方案对编码器的两令分量帧分裂和篱笆图归零处 理,并在译码端对边界计算条件进行了调整。清华大学的Xiujun Zhang于2003 年提毒了一种荠行融bO码译码方法融l,该方法可以节省存储空闻和提高译 码效率,但会损失~定的纠错性能。哈尔滨工程大学的赵旦峰等人于2004 年提出分块并行译码方案瞄1,该方案将帧长分成几个子块,并行译码方案, 该方案性能较好,但是实现起来复杂度较高。 S 哈尔滨T程大学硕十学能论文 1.2.2 Turbo码的硬件实现现状 Turbo码的良好性能受到了科学界的广泛重视,欧蓑国家投入了大量的 入力,物力和财力对其进行研究,并取得了重大成就,Turbo码芯片国外已 经形成产品,并应用到军事侦察卫星的回传等领域。美阑JPL(Jet Propulsion Laboratory)试验室设计了JPL型Turbo码译码芯片,采用MAP算法,误码 率为lO{,延时为3s。JPL型芯片已经应用在侦察卫星中;美国的AHA公司 设计的AHA4501型是最早用集成电路实现的Turbo码产品,最高信道速率 达到36Mb/s,AHA4540型最高信道速率达到300Mb/sI捌。目前,国内还没有 Turbo码产品问世,但有很多科研机构和科研人员正在进行这方面的研究。 唇前,Turbo码编译码器的硬{孛实现主要有三种方案: (1) 使用DSP器件实现。TMS32054X系列是德州仪器公司(TI)推出高 性能、低功耗的定点芯片,丽且它带有Viterbi译码秀瓣速器,有实现vi钯内i 译码算法的专用指令。用该芯片实现基于SOVA算法的Tllrb0码译码器。 另外,骶公司推出的TMS32G5416在片上除了有高性能的数字信号处理 内核外,另外集成了用于维特比译码的协处理器VCP,Turbo码译码的 协处理器TCP。这样可以给系统开发带来缀大的方便,以及足够鲶灵活 性。 (2) 使用FPGA器件实现。现场可编程fj阵列(FPGA)器件由于其毒≥常 适合进行乘法和累加(MAC)等重复性的运算,因此非常适合进行高速 数字信号处理任务。可以震VHDL或者Verilog HDL等硬件描述语言来 实现Turbo码的编译码算法。由于这种方法的编解码器性能取决与采用 的算法,器彳牛本身的性麓以及程序编写的效率,所以设计者可以根据采 用的算法选用器件。这个方案对设计者来说是非常方便、灵活和省时的。 由于考虑到实现的复杂性实现的复杂性,翳前来说,大多数设计采用的 算法都是SOVA或者MAX.LOG。MAP算法,常用的器件有Xilinx公司 产品和Altera公司的芯片。为了熊够让设计者节省开发时闻,缩短开发 6 哈尔滨下程大学硕+学位论文 周期,减少开发风险,FPGA芯片的研发公司为Turbo码解码专门设计 了IP Core,这些IP Core集成了设计这所需要的复杂逻辑,并预先定义和 验证了的模块。例如Xilinx公司的IP Core支持帧长40"--5114,工作频 率可达40M,吞吐量可达2Mb/s,迭代次数可配置。这使采用FPGA实 现Turbo码译码变的更加方便了。但是,这些IP Core都是需要付很昂贵 的价格才能使用的,并且是得不到源代码的。一般的研发项圈难以承受。 (3) 用专用芯片实现。目前,随着对Turbo码研究的逐渐升温,以及Turbo 码应用的逐渐广泛,一些半导体厂家也开始推出自己的专用Turbo码编解 码芯片。其中Advanced Hardware公司的单芯片Turbo乘积谒(TPC)前向 纠错(FEC)编解码器AstroLE能以O.25~O.95的编码率处理高达36Mb/s的 编码数据。可以支持2Kb/s和4Kb/s码组长度。可以工作予全双工和半 双工模式。另外,新加坡Oki公司也推出了用于Turbo码编解码的 EMIK07。然而这些专震ASIC芯片一般价格较高,丽置还有一定起定数 量要求。因此,对于项目的前期样机研发来说是不宜采用的方案。 1.3本文主要内容和结构 本文以基于Turbo码信道编码的通信系统实现为研究目标,分析了对系 统性能影响的参数,然后根据不同的生成多项式,交织器,帧长组合面成的 各种系统进行了深入的仿真分析论证。确定满足性能指标的各个参数值。在 此基础上,完成基于FPGA的Turbo码编译码器的设计和测试。最后完成了 信源,调制,信道,解调用软件实现,Turbo码编译码用硬件实现的整个通 信系统的搭建。本文具体内容安排如下: 第l章主要介绍课题研究背景、意义及目前研究现状。 第2章主要介绍Turbo码的基本编译码原理和编译码算法,然后根据对 系统性能影响的各个参数进行详细的论证和仿真分析。最后确定满足整个系 统性能指标情况下的编译码予系统中的各个参数值,为后面FPGA设计提供 7 哈尔滨工程大学硕士学位论文 理论基础和技术参数。 第3章主要对Turbo码编译码器的FPGA实现设计和测试。对Turbo编 译码器的关键运算单元的结构设计,编译码器的时序控制逻辑的设计做了详 细的贪绍,完成各个功能模块的设计,仿真,验证。最后给出了Turbo码编 译码器的测试方案和最终的硬件下载和测试结果。 第4章详细介绍了整个测试系统的搭建和测试工作,其中的信源,MSK 调制,信道,MSK解调采用采用Visual C*软件实现,Turbo码编译码用硬 件实现。最后给出了整个系统的测试方案和测试结果。 8 哈尔滨T程大学硕十学l『{7:论文 iiiii 第2章Turbo编译码算法和系统仿真论证 Turbo优异的译码性能源皇于它独特的编码结构和迭代译码的愚想。本 章详细地介绍基本的Turbo码编码结构和迭代译码过程,并详细介绍Turbo 码译码算法,最后对系统各个参数进行分析,对系统进行仿真分析论证,确 定满足系统性能指标的各个参数值。 2.1 Turbo码编码原理 2.1.1 Turbo码的编码结构 1993年,C.Berrou等入最襁提出酶Turbo码编码器采用的是著行级联 卷积码结构∞1,即PCCC(Parallel Concatenated Convolutional Codes)。它主 要由主要毒两个递麴系统卷积码(RSC,Recursive Systematic Convolutional Codes)分量编码器、交织器、删余矩阵和复接器组成。图2.1所示,即为一 典型的PCCC编码结构。 图2.1 PCCC编码绪构 在Tm'bo玛编码过程中渊,长度必N的信息序列岳露;在送入第一个分量 编码器的同时作为系统输出k}直接送至复接器,同时函。}经过交织器,后 的交织后序列函。)送入第二个分量编码器。其中胛=J『酝),0≤%k黑N—l。,(.) 必交织映射函数,Ⅳ为交织长度。两个分量码的输入信息序列的内容是完全 O 哈尔滨jT:程大学硕+学位论文 一致的,只是信息码元的输入顺序不同。两个分量编码器对应的输出为校验 序列§:p}和k尹}。为提高传输速率和系统频带利用率,可以将两个校验序列 经过删余矩阵删余校验位后(得到&f})再与系统输出k)一起经过复接器 构成Turbo码编码器输出码字序列溆}。 2.1.2 RSC递归系统卷积码 在Turbo码编码器中,为了得到趸好的编码性能,我们一般采用递超系 统卷积码(RSC)作为分量编码器。和传统的卷积码相比较,递归系统卷积 码最大的特点是它存在着反馈。常用的RSC编码器一般由2《缀移位寄存器 构成,用生成多而式表示为:G(D)L--l9l8,W”测卜”表示系统比耗g。∞)表 示为反馈多项式,gl(D)表示为前向多项式,gop)和g,∞)用八进制数表示, 图2.2所示为生成多项式为(7,5)的递归系统卷积码。 2.1.3交织器 图2.2(7,5)递归系统卷积码 在很早以前,人们已经将交织器产生的交织编码应用于通信系统中。其 中最典型的应用是采角纠随枫错误的信道纠错谒来纠正突发形式麓错误。另 外一个应用是在级联码系统的内码和外码之间,利用交织器尽可能分散外译 码器输出麴突发错误,使进入内译码器靛错误基本上是随机的。 lO 哈尔滨一l:程大学硕士学能论文 在n曲O码的编译码系统中,交织器扮演着一个非常重要的角色,它的 主耍作用是将输入信息序列比特顺序重置,减小分量码输出的校验比特之间 的相关性,同时提高输出校验序列的码重,从而在迭代译码过程中降低误比 特率。C。Be糟ou等人在提出Turbo码时就绘出了设计性能较好的交织器的特 点和基本原则田I:1.通过增加交织器的长度,可以使译码性能得到提高;2. 交织器应该使输入序列尽可能地随机化,从而避免编码生成低重码字的信息 序列在交织后仍旧生成低重码字,导致Turbo码的自由距离减小。 2,1.4删余矩阵 测余的露的是为了尽量提葱码字的码率焉‘达至l套鲶错误概率的传输。勰 图2.1所示,两个分量编码器输出的校验比特扛≯j和kPj通过删余矩阵周期 性的删除一些校验眈特后就褥到了校验序列扛;}=b≯,甄2p;。通过设置不围 的删余矩阵,我们可以得到不同的码率。删余矩阵PI=[I l,l 1】,P2=[1 0, 1 l】,P3=[1 0,0 l】分别对应的码率为1/3,2/5,1/2。在实际通信系统中用的 最多的是l/3和1/2码率。 2.1.5归零处理 在MAP译码算法中,前向递推掰。(J)和后向递推从(s)的初始条件值, 一般都是要根据RSC分量编码器的初始状态和编码结束状态而确定的。对于 普通的非系统卷积编码器,很容易将其初始状态和结束状态置为一已知状态, 院如零状态。面对于Turbo编码器,由于采用了递归结构,其分量编码器需 要额外的结尾处理才能达到结束于零状态。对于不同的Turbo码编码器的归 零处理,一般都赋予不砑的递推初始僮。对分量码的不嗣归零处理,对Turbo 码的译码性能有不同的影响,其中双归零对应的性能最好。 ;掌iIiYiiiiiii .... 哈尔滨丁程大学硕+学能论文 III IIII 2.1.6 3GPP标准的Turbo码编码器 I黼茹;;;;;i;眷黼薯;;;;iii誊茹麓薯 前面介绍了普遍的Turbo码编码结构,下面具体介绍一下3GPP协议中 Turbo码编码器,本文中的Turbo码编译码算法和仿真和FPGA实现,都是 围绕着该编码器进行的。 2.1.6.1 3GPP标准的Turbo码编码维构 3GPP标准的Turbo码编码器结构如图2。3所示,整个编码器豳两个RSC 分量编码器和一个内交织器组成口91。 其中分量编码器采用生成多项式为(13,15),码率为1/2的RSC编码 器,没有删余矩阵,所以3GPP标准的Turbo码编码器码率为1/3。 输入信息序列每,,菇:,..。,X符},直接逶过RSCl生成信息序列k}和校验 比特序列舷),经过内交织器詹的信息序列K}通过RSC2产生校验比特序列 馘j,并按序输出编码码字一,z。,zl,x:,z:,z:,.,‰,靠,茗二。 郧i出一 奔朔 RSel 獠 墨斗一- 内交织器 。龠RSC2-龠三 … 、、!_/’ 匿2.3 3GPP标准熬Turbo玛编码结构 12 哈尔滨T程大学硕士学能论文 2.1.6.2 3GPp标准的Turbo码的归零 3GPP标准中的Turbo码编码器在每一帧数据编码完成时,需要对两个分 量编码器迸行归零处理。当编码开始时,编码器的3个移位寄存器都处于“0” 状态,随着信息序列的移入,寄存器的状态随之改交。当编码结束时,如图 2.3编码结构所示,每个RSC分量编码器的输入端开关向反馈端(虚线端) 闭合,根据RSC分量编码器的移位寄存器状态,形成反馈妇零码字,从丽使 分量编码器回到“0’’状态,同时输出归零尾码字序列x川,z鬈+。,奴+2,z封+2, X拦+3’ , Z茁+3,XK+l’ ● 孑K+l’XK+2’ ● Z置+2’ ● Xr+3’ ● 孑K+3。 2.1.6.3 3GPP标准的Turbo码交织方案 为适应移动通信信道的要求,3GPP标准的Turbo码内交织器渊,采用了 独具特色的分级交织算法,不同的帧长有不同的交织图样,交织深度为 40~51 14。具体算法步骤见文献【3国。 2.2 Turbo码译码源理 与Turbo码的编码结构相比较,Turbo码的译码过程就显得更为复杂。 图2.4所示为Turbo码的译码结构,其译码器主要包括予译码器1、子译码器 Lal № yklP yd' 图2。4 Turbo玛译码结构 13 哈尔灏一1.程大学硕士学能论文 2、交织器和解交织器。 Turbo妈的译码过程是一个循环迭代译码的过程,首先,接收到的信道 信息序列被解复为信息位序列k},予译码器1校验位序列侈≯}和子译码器 2校验位序列侈:尹}三顼。对予子译码器1,信息位亭列k;子译码器量校验 位序列拟p)和先验信息位序列仁口,}(前一次迭代子译码器2输出的外信息 位序列扛g:)经过解交织后得到,对于第一次迭代犯口。)∞{o))输入子译码器 l,经过译码运算得到子译码器1的外信息位序列{Le,;,经过交织器后褥到 子译码器2的先验信息位序列扛口:},连同交织质的信息位序列溉},子译码 器2校验位序列◇:,}输入子译码器2,经过译码运算得到子译码器2的外信 息位序列(Le:;,经过解交织器后得到子译码器l的下一次迭代酶先验信息位 序列扛q},至此完成一次迭代译码过程。当循环迭代译码达到一定迭代次数 后,停止迭代运算,子译码器2的软输出信息序列解交织后通过硬判决得到 译码后信息序列k;,从瑟完成整个译码过程。 2.3 Turbo码译码算法 Turbo码译码算法主要分为嚣大类,一类是由Viterbi演化丽来的SOVA 算法,另一类是性能优异的MAP算法,以及由MAP算法延伸而来的 LOG-MAP算法和MAX.LO@MAp算法。SOVA算法具有最低的译码复杂度, 但是性能最差,并且译码性能不够稳定。MAP算法具有最优的译码性能,但 是内于计算中存在着大量的乘法和指数运算,译码复杂度高,不便于硬件实 现,通常作为理论分析的参考。LOG.MAP算法和MAX.LOG.MAP算法都是 由MAP算法简化丽来,通过将原来的运算转化到对数域进行,从而将乘法 14 哈尔滨丁程人学硕+学伉论文 运算变成了加法运算,避免了指数运算,降低了译码复杂度驺11 p2]。就译码性 能丽言,LOG.MAP算法仅次于MAP算法,MAX.LOG-MAP算法次于 LOG.MAP算法但要好于SOVA算法。就译码复杂度而畜,MAX—LOG.MAP 算法的译码复杂度低于LOG.MAP算法,更易于硬件实现p31。 2.3.1 MAP译码算法 1974年Bahl,Cocke,Jelinek和Raviv共同提出了最大后验概率(MAP) 译码算法,也是以他们命名的著名的BCJR算法。它是基于网格的软输入软 输出译码算法,译码准则是在噪声信道下对马尔可夫过程的状态或输入输出 进行逐一饿计。下面,本文将完整丽详缨遗推导MAP译码算法。 图2.5为MAP子译码器,输入信息序列Y=yf'=(yl,y2,…,yI,…,YⅣ)。 其中,此=◇i,yfj。Ⅳ表示信息序列的帧长,三口瓴)怒关于‰韵先验信息, 三Q;)是关于壤的对数似然比。 醚AP 嘉) 子译码器 图2.5 MAP子译码器 其定义如下: 圳扎剁 沼一) 三0。)三In (2.2) 对于BPSK调制,在加性高斯自噪声(AWGN)信道上的输入输出关系 为 15 哈尔溟j1:程大学硕士宁位论又 以=厄(2x:一1)十以: (2—3) 群=厄(2《一1)+以f(2-4) 其中,2《一l,2x爹一l力已调双极性编码符号,《,《∈{o,l},Es为每 一码字簸量,通常取疋=1,嚣;,《p为独立同分布的嵩斯噪声样值,其均值为 0,方差∥2=No/2。 MAP译码器的圈的就是要根据式(2.2),按照下列规则进行**JR- 咖器然: 协5, 下面我们将利用BCJR算法对式(2.2)的计算进行详细的推导。根据 Bayes规则和联合概率性质,式(2-2)可以写为: L(u女)=In P0。=l,yfyP◇芦) 浆:雾PS‰川 ∑P慨,s’,。=蹦,)/P◇iv) 协限66、> =ln 式(2.6)中,求和是对所有由U^=1(或材女=0)弓f起的S川专S≈的状 态转移进行的,Sk一,代表网格图的后一1时刻的状态,&代表网格图的k时刻 的状态。为了表示简单,文中后面将用s’表示露一1时刻的状态,s表示k时刻 的状态。 为了计算五饥)就要计算P圆“=s‘,瓯=s,yiⅣ),可按如下进行: PG‘,s,y,)=PG’,s,夕:~,y。,必;) (2—7) 由Bayes规则,并假定信道为无记忆信道,式(2—7)又可写为: 16 喻尔溟1.程大学帧十掌佗论文 PG’,s,y,)嚣尸◇是。l§‘,s,y:~,魄D.JPG’,最j,:}~,.攻) =P◇苎l l s)·p(s’,s,j,lk--'f,),^) =P(yk芝;l s)。P({'玫,s}l§‘,罗;_≥.P0’,罗:越) (2。8) 拳P◇乏,Is).尸◇。,si s’}).尸G‘,y?。1) 等反G)·‰心’,s).搿。一。G‘) 式(2-8)中: ark_1G’)=PG’,y?一1) 反G)=P坛;I s) Yk(s’,J)=P◇。,s i s’) (2—9) (2.10) (2.1 1) 其中,式(2.9),(2.10),(2.11)分别定义为前向递推,后向递推和状 态S’和状态s之间的分支转移概率。 将式(2.7)~(2.II)代入式(2.6)可得%的对数似然比£@|i})的表达式: ∑嚷一,G‘)-以G’,葶).孱G) z也)乩夏11k=[/巧网习确 ‘2地’ II’。k,=叫U 2.3.1.1前向递推 由式(2.9)前向递推的定义,根据Bayes规则,无记忆信道的特点和联 合概率的性质,可以将式(2.9)进行如下推导: 17 哈尔溟r:程大学硕七学何论文 口。S)=Pb,y÷) 、 =P-,y:-'1,y。; =∑P◇‘,s,y■y‘) --Zp(§,Y。}l§‘,y?。})·PG’,罗?_) =∑P佟,Y2}l葶。).夕G+,y:_) =∑款G’,s)。g。一,0+) (2—13) 由于RSC分量编码器初始状态为零状态,故前向递推的初始条件值为: 口。G)={:}三i芸 协… 通常情况下,为了防止前向递推计算溢出,需要对前向递推值进行归一 化处理: 玩◇)=搿。G)/∑瑾。O) (2—15) 2.3。1。2后向遂推 由式(2-10)后向递推的定义,和前向递摊相似,迸仃如卜于匡导; 腓’三擞k.) =∑P◇≯,s弦j =∑尹甑,必∥弦) :∑夕(y墨;峨蹦;≥.P眇∥埘) (2舶’ =∑尹(y竺,I s)。尹眇。,s}|s‘) =∑反O)。玩§‘,s) 由前面介绍的3GPP标准的Turbo码编码器可知,在每一帧数据编码结 束时,两个RSC分量编码器都要进行了归零处理,所以后向递推的初始条件 18 哈尔滨T释人学硕十学位论文 值为: 夕.Ⅳb)={:三二三 c2一,7, 通常情况下,为了防止薏向递推计算溢出,露样需要对后向递推值进行 归一化处理: 反G)=屈G)/∑鼠G) (2-18) 2.3.1.3分支转移概率 从上述推导可以看出,要计算前向递推,后向递推和/,/。的对数似然比 L(u;),都需要分支转移概率‰G‘,s)的僮。下殛将详缨的推导分支转移概率 的计算。 由式(2.11)分支转移概率以◇‘,s)的定义和Bayes删,则有: ll S ll s P Lp 2 07 A;捋势 协,杪◇ II P尸户 妖%% 0~FoP 苫 0 P S、I, 其中,材。为引起状态瓯一。=s‘到状态Sk=s转移所必需的输入比特, P如。)是“。的先验概率,P◇。l§’,s})等效于尸◇。l以),由信道转移概率决定。 其中,以为状态瓯。,=S’到状态瓯=s转移所对应的发送码字。由于是无记 忆信道,则有: 夕(y。l §’,s))箍P◇。l故):1-”IP(y舣l‰) l=1 (2.20) 粕和Y甜是发送码字‰和接收码字鲰中相互独立的眈特位,雅表示发送 码字坼和接收码字),≈的码字长度。假定发送码字以经过BPSK调制,通过 19 哈尔滨T程大学硕士学能论文 均值为0,方差为口2=No/2的加性高斯白噪声(AWGN)信道,则有: 户帆㈦=丽1 ex攻告时叫(2-21) 式(2.20),E。表示每一发送比特的能量。并结合式(2—19)和式(2-20) 可得: P◇。I kJ)) 。密去唧(专¨柚2] 三2丽蠡唧卜1参妻喜bk裂2%‰2也训挑)协)~捌‘ =嘤·c轴pb秘0 嘤2南燃p(告别 协23> 磐唧旧20.2喜x;a2] 沼24, 式(2-23)只依赖于信道SNR值和接收码字y材的幅值,式(2-24)只依 赖于信道SNR的值。所以对于式(2.21)来说,这两项都相当于是常数。 为了计算分支转移概率‰S‘,s),还需要计算关于致的先验概率pQ。)。 由译码器的先验信息£反0。)的定义式(2—1)可以推池: 圳地翱地蕊高 弦25, 南式(2.25)可得: 20 哈尔滨T程人学硕十学能论文 P也=1)=瓦exp翮(La(u,)) (2126) 由式(2.26)P(uI=o)则有 地=。)=而翮1 (2·27) 盹)=粼 盘式(2.26),式(2-27)可得到尹0々) 协28, 式(2.28)中 ‰3广雨未硼 Q-2” 式(2.29)只依赖于“。的对数似然比,和“≈是0或是1没有关系。 由式(2.19)~(2.29),分支转移概率以G’,s)可以写为: 敬o’,s)=嘤·《’·c蹴).exp纸£髫。渺e文争陲y内))e2瑚, 式(2·29)中,c婴,《’和c躁‰)不依赖于“。和发送码字奴,所以在计 算甜。的对数似然比五0。)时从分子、分母中同时删去,又因为Yk=◇;,鳄), 靠=e:,xf),所以式(2—30)可以简写为: 以㈥=eXp鼬如)).ex牾鼢叫鳄))(2-31) 若定义戌G’,J)=expG秽fxf/2);定义信道可靠值髓=4蛾/虬;d为 信道衰落因子,对于加性高斯白噪声信道,BPSK调制而言,衰落因子a=1, 方差盯2=No/2。所以式(2.31)又可写为: 2l 哈尔滨T程大学硕十学何论文 纸G’,s):ex4壤三握o;)+喜£%S成1。成0’,s) (2.32) \ ‘ / 2.3.1.4对数似然比 前面三个小节,本文就前向递推,后向递榷和分支转移概率进行了详细 的推导,现将式(2.15),(2.18)和(2。32)代入式(2.12)中,则可以推导 出魄的对数似然比五纸)为: ∑壤 (一’,一) 五《‰)=In ‰=l ∑瓯 《o,0 ‰=O 文¨ ,孱 (S) 一0¨ 訾反 (S) =La(uk)+Lc·联+Le(uk) (2—33) 式(2.33)中,第一项为前一个译码器为厝一个译码器提供的关于U。的 先验信息,第二项为信道信息值,第三项为计算产生的外信息。在Turbo迭 代译码的计算过程中,需要子译码器的外信息£90;),通常是先计算出封。的 对数似然比三k),再减去上一个子译码器提供的先验信息帮接收到的信道信 息得到,如式(2.34>: Le(u;)=三0女)一La(u。)一Lc·虻 (2—34) 2.3.2 LOG.MAP译码算法 由2.3.1节可以看出,MAP译码算法中存在着大量的乘法运算和指数运 算,要用硬件实现这些运算,将{}常的匿难。所数,在硬件实现Turbo译码 器时都不会采用MAP译码算法。为了降低译码复杂度,便于硬件实现,通 常将MAP译码计算转化到对数域上来进行,从而将乘法变为了加法,避免 IW尔须I.程大掌坝士宁能论文 了指数运算。本文中采用取负对数的近似计算方法㈣351,那么加法运算就转 化成了MAX‘等效运算: 一ln(P吖+P”y)=MAX+G,J,)=minG,y)一1n(1+e-I扣y1) (2.35) 函数min(x,y)和卜一夕l可以通过减法器和数据选择器来实现,函数/G): f(z)=InO+e一2) (2—36) 下蘧将详细阐述MAP算法通过取负对数转化到对数域运算形成 LOG.MAP译码算法的步骤: 令:以G)蕊一ln(cr。G)) (2.37) 吃G)=一ln(flkG)) (2.38) 玟G)=一In(yk(s’,s》 (2—39) 盘前向递推公式(2.13),式(2.37)可以写为: 40)=一ln缸。G)) =一1nl∑%。∽以∽)l k x+ / =一文莩eXpo“一;G‘)+p。o’,s)))) ‘2—4。’ =脚‘0茁一,§‘)+反§+,s游 同理,由后向递推公式(2.16),分支转移概率公式(2.32)可将式(2.38) 和式(2。39)改写为: Bk一;G’) =一l珏饭一;0’》 =一1n!∑反¥).段G。,s)} \片 / , 、 (2.41) =一In|Eex玉慨§)+魏§‘,s泐; =哗+幢O)+轨∽苫舅 I竹刀i獗I.程灭7坝下子何抛义 D。b’,s):一lnp。G’,J)) 一n一山㈣.exp(羚Yi+Xk Yk’))) =~,n(exp。。五口。。)).exp(等ok’Yk5+x参y?))) ‘2_42’ \ \二 // =一魄勋瓴)一了Lc陬I s魏+苫fy善) 前扁递推和后向递推的初始条件值式(2。14)和式(2.17)可以改写为: 彳。o):彳!∞ S=0 s≠0 k (2.43) 氐o):fo S=0 L—00 S≠0 (2.44) 前向递推项和后向递推项的归一化公式(2一15)和(2-18)可以改写为: ~4 0 -罾, 、l, = 蠢 ,Ⅳ ,l~S 、l, 一 n ,l、 彳 七 0p 疆∥ (2.45) 箴G)=坑G)一min(BO)) j (2。46) 将式(2.37),式(2.38)和式(2.39)代入式(2.12),则关于U。的对数 似然比上0。)可以写为: 引n甚i阿孤硼 ∑魄一;G‘)·y。G‘,s).反◇) £以) 州n薹磊可再耳蕊翮 芝eXp(_-¨0’)+哦G’,s)+玩G勘 筑菇 嚣M…AX。‘0川∽+玻b)◆壤G)) 一M舻AX,+kS‘卜域b)+致O剪 哈尔滨下稗大学硕十学位论文 利用式(2.45)和式(2.46)分别对前向递推项和后向递推项进行归一 化处理,则式(2-47)关于“。的对数似然比三他)改写为: 三瓴)=M驴AX。‘阮一。G’)+仇G’,J)+反G))一M铲AX。‘伍一心’)+n∽s)+箴G)) (2.48) 2.3.3 MAX.LOG.MAP算法 LOG—MAP算法将MAP舁法运算转化到对数域上来进行,并利用雅可比 等式(2.35)简化了运算。为了更进一步的降低译码复杂度,将雅可比等式 (2.35)后面的修正项函数去掉,即令/(z)=0,则此戗‘运算就简化成了求 最小值运算: 一ln(e一。+P—y)=MAX’X,y)=min(x,力 (2.49) 则式(3.40),式(3.41)和式(3.48)可以改写为: 以G)=min(A。一。G’)+D。G’,J)) Bk_G’)=mi.n(暖G)+D。G’,s)) (2.50) (2.51) 三0。)=m驴in。7Ak一。G。)+见G‘,J)+鼠G”一鼍弹伍一。G’)+哦∽5)+反G”(2-52) 2.4系统仿真论证中各个参数的分析 本文结合了通信系统的要求:调制采用MSK,信道编码码率为1/2,在 归一化信噪比SNR=2dB时,系统的误码率要达到10‘4。以此为目标,这里的 信道编码采用性能优异的Turbo码,深入分析了对系统性能影响的各个因素, 进行分析和仿真论证。确定满足系统性能要求的系统参数。本文就对系统性 能影响的因素如:编码器的生成多项式、交织器类型、迭代次数、译码算法 等进行深入的分析和论证。然后对多种预选方案进行仿真,并分析论证仿真 25 暑—1—I I—I———薯il 誓;;i;警葺i;;;赫;哈;;尔;滨;茹下;;程;;大警茹学;硕;i;十眷学 薯;位;;论;茹文蔷;;;笛篇;;i;;薯;;;;眷喾;;;薯茹i l 结果,确定满足系统性能指标的各个参数值。 2。4。1算法生成多项式的选择 本文考虑了一些常见的通信系统采用的Turbo码生成多项式,如 CDMA2000采用的多项式是(13,15),(13,17),WCDMA采用的多项式 是(13,15),CCSDS采用的多项式是(23,25),(23,33>,(23,37),还 有其他常见的生成多项式(7,5),(15,13),(15,17),(3l,33),(37, 27)。当然还有相关长度更大的生成多项式,由于它们的译码实现复杂度随相 关长度呈指数增加的,故这里没有考虑。由此,共有11种备选方案。 2.4.2归零处理 MAP译码算法中,前向递推%G)和后向递推反G)的初始递推值一般是 型 山 ∞ SNRfdB'I 图2.7归零方式对译码性能的影响 根据分量编码器的初始状态和编码后的结束状态决定的。在本章中已给出了 哈尔滨1:程大学硕十学位论文 对于编码器不同归零处理方式所对应的前后向递推初始值。图2.7为编码器 不同归零处理对译码性能影响的仿真比较。从图中可以看出,对Turbo码编 码器进行魑零处理,能改善译码性能。3条误码率涟线中,不归零的Turbo 码性能略差于两种进行过归零处理的Turbo码,双归零的Turbo码性能又略 好于单归零的Turbo码。在本文采用的编码方案中,在每一帧编码数据结束 时,分别对两个分量编码器进行了归零处理。 2A3交织器的选择 在Turbo码的编译码系统中,交织器扮演着一个非常重要的角色,它的 主要作用是将输入信息序列比特顺序重嚣,减小分量码输出的校验比特之间 的相关性,起到随机编码的终用,同时提高输出校验序列的码重,扶瑟在迭 代译码过程中降低误比特率。由于分组交织器的抗周期性错误性能差,分组 螺旋交织器去相关性不彻底,这里没用采用它们作为备选方案,而是采用性 能最好的几种伪随机交织器作为备选方案。如WCDMA采用的3GPP交织器, CDMA2000采用的交织器,S随机交织器。 2.4.4帧长的选择 在辎同译码算法和迭代次数的条件下,帧长越长,Turbo码静译码性能 就越好。但是帧长越长,虽能褥到更好的译码性能,却增加了Turbo码的译 码时间,同样增加了Turbo码的译码延时,降低了Turbo码译码器的数据处 理速度。所以,在实际工程应用中,帧长所带来的编码增益与同时带来的译 码延时,要根据实际需求,进行折中选择。由于本系统要求的帧长不长。综 合考虑,这里仿真采用三种帧长:256,512,1024作为备选方案。 哈尔滨T程大学硕十学伉论文 2.4-5调制解调的选择 由于MSK调制有两种调制方案:带差分编码和不带差分编码。它们的 误玛率性能如图2.8所示。为提高整个逶信系统的性能,这里采孀了不带差 分编码的MSK调制方案。 图2.8 MSK调制方案性能比较圈 2.4.6译码算法的选择 在3种译码算法中,MAP译码算法具有最优的译码性能,在低信噪比的 情况下,仍具有优异的译码性能,随着信噪比的增加,误码率快速的下降; 随着迭代次数的增加,误码率蘸线也快速的收敛。LOG.MAP译码算法是MAP 译码算法在对数域上的等效简化算法,译码性能和MAP译码算法相当,但 便于硬件实现。MAX.LOG.MAP译码算法在3种译码算法中,性能最差,随 哈尔滨:l:程大学硕士学傅论文 着信噪比的增加,误码率下降的速度和前两种算法相比较要慢,随着迭代次 数的增加,误码率麓线收敛的速度也较慢。 要硬件实现Turbo码译码器,MAP译码算法,复杂度高,计算量大,现 有的技术条件下,应不予考虑。LOG.MAP译码算法译码性能和MAP译码算 法相当,性能优异而且便于硬件实现,译码性能要求非常高的场合可以考虑。 MAX。LOG.MAP算法和LOG.MAP算法相比较,从译码性能上来说, MAX.LGO.MAP译码算法要差一些,但是从其总体译码性能来说,已具有非 常好的译码性能(帧长1024,1/3码率,迭代4次,信噪比为1.6dB时,误 码率能达到1酽的数量级);从计算复杂度来说,MAX-LOG.MAP译码算法 中的勉Ⅸ’运算省去了修正项。厂《z)的查找表运算(这也是其译码性能差予 LOG.MAP译码算法译码性能的原因所在),而MAX’运算单元是LOG.MAP 译码算法翻MAX-LOG.MAP译码算法中的主要运算单元。因此,硬件实现 时,MAX.LOG—MAP译码算法占用更少的硬件资源,更少的存储器,在降低 功耗设计方面,大大优予LOG.MAP译码算法。所以,本文选瘸 MAX.LOG。MAP译码算法进行Turbo码译码器的FPGA实现设计。 2.4.7译码迭代次数的选择 Turbo码译码是一个迭代循环译码的过程,Turbo码的误码率曲线,随着 迭代次数的增加,误码率曲线收敛的越快。在阍一信噪比条件下,迭代次数 越多,误码率越低,译码性能也就越好。但是迭代次数越多,译码计算所用 的时间就越长,会增加译码的延时,严重影响Turbo码译码器的数据处理速 度。并且,当达到一定迭代次数后,辩进行迭代运算,所获得的编码增益已 经非常小,所以,在工程应用中,并不是迭代次数越多越好,要综合考虑, 选择合适的迭代次数。图2.9所示为帧长1024,迭代次数4~10次的 MAX.LOG.MAP译码算法MATLAB仿真性能。从图中可以看出,随着信噪 比的增加,误码率快速的下降,丽且迭代次数越多,误码率曲线收敛的越快。 29 哈尔滨T稼大学硕十学何论文 但迭代次数在6次以后,随着迭代次数的增加,编码增益提高的已经非常小。 故这里迭代次数采用6次。 芷 翻 ∞ 图2.9不同迭代次数的性能比较 2.5系统仿真结果及其论证 按照前面分析的结果,对11种生成多项式,3种交织器,三种帧长组合 而成的各种系统分别进行仿真。仿真条件:信道编码采用Turbo码,调制方 式采用不带差分的MSK调制,信道采用高斯自噪声信道。其中Turbo码生 成多项式采用(7,5)、(13,15)、(13,17)、(15,13)、(15,17)、(23, 25)、(23,33)、(23,37)、(31,33)、(37,27),Turbo码编码采用双归零 处理,交织器采用WCDMA交织方案、CDMA2000交织方案、S随机交织方 案,帧长采用256、512、1024三种,译码采用迭代6次的MAX-LOG-MAP 30 哈尔滨I:程大学硕十学何论文 译码算法。仿真结果如图2.10所示。 }‰ 嘲描 警警《饕嘎= —‘39筇2褐 — 十宁39劫印弦1瓤∞24 一-stand256 +甘sltzarinidndl051224 &;》妇 …“盎;:{i…¨、;:'葛:饕髫 一 cll'i'国2∞ —串一cclna 5tZ ●一cc盯靠’024 ii吲 }女}£2嚣l;;i;箍!}i}1 ··≮ …●; ;: j鬟≮+霉?曩;‘…':-.; 5{2 llfll女i…¨~’!tlj一‘3。9,p,p袅?:强蕊 :牛:3q:P:p k三kj ‘m≮≮誊嚣 蕊 矿 驴 : : :一 0: l:一 铲 篓蠹|||蓥|{ 燮书v墩茗土:熏囊牛 鬟_~紫.曩~豢z一 耄譬1.嘹圣{一:霪一专=::.=熟蠹~善童 毪笆:=一 酽 !!!{{“l。!!!:{! 铲 ||||||||||荔 -…·;-…一:· 身—亿留_撞匕qB (1)生成多项式为(7,5)的误码率曲线 Ht'ltit埘e (2)生成多项式为(13,15)的误码率曲线 母匈即邬2 —‘跚卯2铸 食麓 r …%^确:二:二 cdmal024 々tdma 10A .--¥rand 256 一匈PP ’{ij}l! Il;::; !l;;; ;!墅 。嘲毒“自 一·e口∞2弱 —●一s锄d,024 .I、 39Ppl024 一 一·srand256 —,自p¥rana 512 ⅢlI曼;;;l{ l}£}§ 麓 ■‰ 蔫 然}i 枣 ,’ 堪 :::::i —导一cbT碡》i鏊对峙; 郇2 {I“{ }::::嚣};i;l; 512 ● i{盘 一-cdma苫5 5,Z o 冉 _ - f等 l 孓 瓣; b‰ 篱…0i∑ 藕 饕曼善.1j ::;lIl l:;;{.1 ● ● 。U 4球;11{; ¥。 蝼: o:{l{托: ,i};{:t:H;… ;;!l! }lⅢ翠Ⅲ娥 {l±j} j、. 1t÷舟蕾 ÷ ;7々’目 ‘攀瓣. …i:!: ……· I 妇—化静t也瞄日 '. i矗7·硼 …’¨‘心 ^·{ i ≤: ’毫 - :嚣 自—化莓靴柚B 、謦≤弹潮 H一39ppl谨口 (3)生成多项式为(13,17)的误码率曲线 (4)生成多项式为(15,13)的误码率曲线 ;:—●一0 :0’ jrn i{ i醍;逸嫩l接泓Ⅲ 型l;:}li“ E}l;! c凸ma 一,cI,m2∞ +3目,吐t024 一一绷anf.1256 51—2争stand 裂;;女川;氆掰罐 溅{i J —-I争r 512雾鬻罐。 慧 ;’ 惑 ‘。;豫i算 \一r 、 冀嚣 :嚣:i 1024 :;;::若lt始l嚣l:;;; 淄{i丢拼{泌Ⅲ: } ■弋 漱 枣 ;!;l冀 臻i{g攫{}8l!∈!! £::::嚣;:{l}:嚣:i!;:H;::l{、l:: 。”;{" 7‘’’…● i; }i}{ ‘{jl{{,}{f{£{☆:i"If 蠢蒜i i, +c舶1024} 母clina 512 :嚣5,嘲12 l —争s∞a f —,一S船nGl024‘ 一·8md255 512 ≮≥;疆嚣j ”l’\:冬:蕊熬 ¨t1” :::.谯。 ·纂豫…‘一奄K…。;:::溢未。: 寨 ::::I ’ · 盯 . T;若i;2;5L 6 —r卸pp 512 —争39pp +魏仲1 。。:, 0矗}!;!;。,.1:, 2a ‘:::::{:}j:;铅{jl::强:;::: j沁 (5)生成多项式为(15,17)的误码率曲线 (6)生成多项式为(23,25)的误码率曲线 3l 哈尔滨jr程火学硕十学俜论文 ~ 峥铂筠PpP#521韩2 ■#期案拳鼍 k。; 十39PPl喇 ~·smnd?拍 ——}g铀nd512 传|{}‘i 斗嚣雉na镯£‘ i蒸 _·0dma266 瀛建 …‘鬻:舔麓≥i》—+遣0铲.㈣0啪:’,州a 5斟12 .;瓣鎏溺 li{;{盎i嚣;}芏;li{i;; ?f≮f \! i! j 0弋i0 :';:;≯ 茬;!: ●t{;!;j! 256 —._39ppl02一·sItand≥56 i: : :· 基-。 +sfa喇{。秘 £+ 母¥∞nd512 母39摊512 一-cdma 十cdma512 +cdmal鼢 鬻 等!;{; !}2;{锭;l{i{; {;ii s囊, ● 鑫 i、 ‰ 制 ●●_ 畦澜 :弩辩; f :+、 嘎 ‘筹; : : : i: ;辖; 一≮;‘!};确 (7)生成多项式为(23,33)的误码率曲线 一 午+翘3譬 静姊 5’2526 P■愀 肇穗豢《埝: ! 十却卯1024 一母3|§ w蝌∞§md12526 …伸{t:{#{誊澜{l。升—'k 十一S.f#cI㈣al2∞∞4 平cc,r辑512 2:{,I二?《《,‘1 ·-●一ec#f堆{龆4 二、、:、≤_ ● ;i -r ^、 :;鬻鬻 、袋罴妾 。啦ii j-…、 N一_ 淞 萎 ,。 }|、n 鬻……t。’{’’蓑………’’I…糕………’、+ (8)生成多项式为(23,37)的误褥率曲线 生成多哦烈31捌 ::}:::j蔓;iiii格l! ::々. . 1■} ::::::}::::::i::::::;::::.:;:黑S毫?二::::::::{: 一。窀PPt2fi*15 —十匈辨铂2 +锄PPl豫4 一smnd056 嘣。亭期韬蟹2 —扣暑f期d1024 一·cama256 矧型矧嬲㈣接㈣攫㈦糍;!翼撼攀警0 —+c—擞哥日c舯’斑501Z2l ::::::器:≯::举::::≯≮:::::{:x薅 ||||||||||鲤篓塑臻燮|||||鲤||檠妻嚣 添 毯三三; ……}…、一p…,·+……}……{……{……{^一~,,~ …一r…≯…?¨…r…y…y…j‘弋鼍一 贬漱一 鞭-^_●臻●…’黪。…塑…●●黪●‘塑…●●糍'’■燮’…塑’●●臻+^●麓●‘●鍪●‘臻●●●;’…登-,‘揍。…i_^_●‘■‘r …··;……;……÷……}……;……;……夺……;……;·- ,d’h{{”{秘!j!!!照}:j{!垂!}”{矗妊妊E!i!}!托}知,{}}}玉{!!!}蠢jt}{{菇j ……÷……}………… l南 l■ 蛩 l:!:※{:;:!i※;::!※;:;i※;鲞■;:;:ij※:::※;董量誊::fi :……§·越… ●}…:… … {矿L.。.}.=.==.=1:——:—; 譬.。:J.:,.墨。:..:L.#.:。:。,:i.譬—:..:.墨j-。:.:.—譬—:£.:..#:..:1.#.:,:..:J。;.:.o 04 n8 0.8 { 1,2 {4 {e ',8 2 212 2鼻 白—北翻qM¨dB (9>生成多项式为(3l,27)的误码窭陵线 (10)生成多磺式为(3l,33)鲍诶褥率曲线 晌嗍 雾薰 9嘲毫 一-39鼬256 母两弹5{2 —争翔卯{∽ 一·stand为6 —%}srand S12 +sr=nd均懿 _·cdma2S6 : : 蕊避 ‘~ —争cdm4512 -*cdrna 102& …}-’q…一 .饕 值!l{{ 囊 .辩≥喽矗::;≥器 } ll}{盎;i}l!t;#{il ;{£i;} 、 惑※囊蠢≤: .:;叛;薄■:“:‘’气j、~’1 i :1~卜—≤ (11)生成多项式为(37,21)的误码率曲线 图2.10 Turbo码的性能仿真曲线 32 哈尔滨T稃人学硕十学何论文 iiiii IIIIIIIIII ii ii 由图2.10可知:对于256、512、1024三种帧长,其中1024的性能最佳, 故选择帧长为1024。在三种交织器中,3GPP随机交织方案对应的性能最好, 敖交织选择3GPP隧机交织方案。生成多项式中约束长度为3的性能很差, 约束长度为4的方案中(13,15)性能最佳并满足系统性能要求,约束长度 为5的也有性能比较优越的,但是由于它们是十六状态,对应的译码复杂度 比较高,这里没有采用。综上所述:生成多项式为3GPP标准的(13,15), 码率为1/2,帧长为1024,交织器采用3GPP随机交织器,调制采用不带差分 编码的MSK调制,译码算法采用MAX.LOG.MAP,迭代6次译码对应的编 译码系统方案在归一化信噪魄2dB时,系统误秘率为1.7334e.005,低于 lO~,能满足系统的性能指标。故按照这个方案来实现整个通信系统。 2.6本章小结 本章主要介绍了Turbo码的基本编译码原理,对普通的Turbo码编译码 结构,译码算法进行了详细的介绍。最后详细分析了系统仿真论证中的各个 参数的选择,最后对33种方案迸行了仿真并对其结果进行了分析论证,得出 满足系统性能要求的系统指标。本文着续章节的编译码算法的实现都是阐绕 仿真论证结果来进行的。 33 哈尔滨T稗大学硕士学位论文 第3章Turbo码编译码器的FPGA设计与测试 由第二章的系统仿真分析论证可知:在编码器采用生成多项式为3GPP 标准的(13,15),码率炎1/2,帧长为1024,交织器采用3GPP标准随机交 织器,译码算法采用MAX-LOG.MAP,迭代6次译码时,能满足系统的性能 要求。在此基础之上,本章将重点介绍Turbo码编译码器的FPGA设计。 3.1 Turbo码的编码器的设计 本文采用生成多项式为(13,15)的RSC作为子编码器,帧长为1024, 码率为1/2,交织方案采用3GPP标准的随机交织器,并进行双归零处理。综 合考虑,整个编码器的结构出两个RSC子编码器、一个肉交织器、一个涮余 矩阵、复解器组成和系统时序控制模块(协调整个编码系统工作)。 3.1.1 Turbo码子编码器的设计 蝴赵◆ 34 哈尔滨]:稃大学硕士学位论文 成数据的更新,并输出相应的五,对于子编码器RSCl信息序列鼍也是要输 出的,包括其最后的三个归零尾比特,而子编码器RSC2的信息序列是不用 输出的,但其最后的三个归零尾比特需要作为尾比特输出。 选择开关的作用是完成子编码器的归零工作。当选择开关打到l端时, RSC进行正常的编码,当一帧数据传输结束屠,将选择开关打到2端,劂反 馈信号与它本身进行模2加,使皿始终保持0值,因此,最多经过3(3为 此子编码器包含的寄存器个数)个时铮周期以焉,子编码器返回到全零状态。 3.1.2交织器的设计 在第2章中,本文介绍了Turbo码的基本编译码原理。从中可以看如, Turbo码之所以有如此优异的译码性能,很大程度上取决于Turbo编译码系 统中交织器的采用。但是,交织器在给Turbo码带来优异译码性能的同时, 也提高了Turbo码编译码器的实现复杂度,特别是Turbo码的译码器。Turbo 码的译码是一个迭代循环译码的过程,需要进行多次迭代运算(一般4~8次), 在每一次迭代运算过程中,需要调用两次交织运算模块和一次解交织运算模 块,大幅度的增加Turbo码译码器的硬件实现复杂度,同时也增加了译码延 时时间,严重制约着Turbo码在高速实时通信系统中的应用。因此,如何设 计一个简单有效的交织器,对于降低硬件实现复杂度,减小译码延时时间具 有重要的现实意义。 本文在选怒交织器时,选用了3GPP标准的随机交织算法,和普通的规 则交织器相比较,3GPP标准的Turbo码内交织器具有较高的计算复杂度,如 果将整个交织算法设计成运算单元映射到FPGA中,有一定的困难,需要消 耗较多的逻辑单元,并且要占用一定的时钟去计算交织图样,同样不能降低 交织器的硬件实现复杂度和减小译褥的延时时间。 根据Xilinx公司Spartan 3E系列FPGA志部具有丰富的Block RAM存储 器资源的特点,为了最大限度的降低硬件实现复杂度和减小译码延时,在进 3S 哈尔滨下程大学硕十学位论文 行交织器的FPGA设计时,并不是直接把交织算法实现在FPGA中,而是通 过高级语言(C语言)软件编程的方式,根据需要预先计算出交织图样,生 成ROM的存储器初始化文件(+.coe)。语法格式如下: MEMORY_INITIALIZATION RADIX=1 0; MEMOI虹INITIALIZATION_VECTOR=1 2,1 4,...,1 6; 其中,“MEMORY INITIALIZATION RADIX”表示存储数据的迸制,可 以是2,10或16(默认值为10),“MEMOIW INITIALIZATION VECToR=” 后面为存储数据,相邻数据之间用逗号隔开,默认地址从0开始,一个地址 对应一个数据,最后一位数据后面用分号表示结束。数据的取值范围在 O ̄2DATA W1DTH一,DATA WIDTH表示数据的位宽。 将生成的串.coe文件在ISE开发软件环境下,载入到存储交织图样的ROM 中,系统在初始化时,交织图样自动映射到FPGA内部的Block RAM中,这 部分处理不占用译码时间。在译码的过程中可以直接访问交织图样存储器, 完成数据的交织和解交织,很大程度上降低了译码器的硬件复杂度和减小了 译码延时时间。 译码器中交织器和解交织器的FPGA实现原理框图如图3.2所示,其具 体工作步骤如下: 交 织 解 交 织 后 信 息 序 列 图3.2交织器/解交织器FPGA实现原理框图 交织过程:如图3.2,在时钟控制模块控制下,读写地址发生器产生顺序 的写入地址,原始信息序yU JlI页序的写入双口RAM中;数据读出时,将读写 36 哈尔滨下程大学硕士学传论文 地址发生器产生的顺序地址作为交织图样存储器的访问地址,输出的交织图 样值作为双躁RAM的读地址,将双口RAM中的数据读出,即得到交织后的 信息序列,完成原始信息序列的交织。 解交织过程:解交织为交织的逆过程。如图3.2,数据写入时,将交织图 样值作为双口RAM的写入地址,将交织后的信息序列写入到双阴RAM中。 数掘读出时,按照顺序地址将数据从双口RAM中读出,即得到原始的信息 序列,完成数据解交织。 图3.3和图3.4给出了交织深度为40的交织器和解交织器的ModelSim 时序仿真图。 ]n门门几n门兀一门n门n一门n门l h—h—L 冷◆嘴时时 A焱矗A 酗凼 冷◆审◆◆ A 屯艮屯屯已 №洒№船酶艮艮G!L屯 ∞站∞∞∞h—h一 啦港晦电虹 挑瑟洲趟一弧 孔利.汰 ———<0 H lg l 臣玛l Xf飞 ◆/top top sch_tb/ctk 每焱。疋io也se睦}暾尊 鼢◆ltop top_sch..tb/CNT 卧砖ttop top:ch._tbtrd_addr 羚◆ttop top_sch_tb/Dout 图3.3 8 4 4 { 交织器时序仿真图 图3.4解交织器时序仿真图 如图3+3可知,将第0短至第9位连续荛“l”,第l移位至第39位连续为 “O”的信息序列,顺序输入交织器的双豳RAM中,然后按交织图样“33,25, 17,9,7,……”作为地缝将数据读逝,完裁数据的交织。如图3.4可知,将 交织后的数据按交织图样写入解交织器的双口RAM中,然后顺序的读出数 据,即可完成交织屠数据的解交织,褥捌暴始的信息序列。 3。13删余的设计 信息序列经过两个子编码器分别编码,每个信息位将对应两个校验位, 37 啥尔滨下程大学颂士学能论文 因此其码率为1/3,为了达到系统要求码率1/2,需要对校验位进行删余,前面 已经介绍过码率l趁所对应的删余矩阵为 pun=[三 ?] 在这里,删余只是对于编码结果生成的校验位来说的,而对于归零比特 的三个归零校验位是不进行删余的,也就是说子编码器RSCl和予编码器 RSC2产生的六个归零校验位直接跟在经删余后的信息校验位的后面。由于两 个孑编码器是分先后进行归零的,所以宜用有限状态机来实现。 定义RSCl的选择开关为sell,RSC2的选择开关为Sel2,并且当sell(sel2) =l时,RSCI(RSC2)正常编码,而sell(sel2)=O时,RSCl(RSC2)处于 归零状态。分析删余过程大致可分为即空闲状态(IDLE)、输出RSCl的信息 校验码状态(ENC01)、输出RSC2的信息校验码状态(ENC02)、输出RSCl 的归零校验码状态(TAILl)、输出RSC2的归零校验码状态(TAIL2)以及结 束状态(OVER)。为了提高工作的稳定性,这星的状态编码采用独热码编码 方案。 首先,在没有编码时,状态机处于空闲状态,当编码开始时出使能信号 控制使其进入下一个状态,繇ENCOl状态,输出一位RSCl生成的校验码, 到下一个时钟时,使状态机进入ENC02状态,输出一位RSC2生成的校验码, 然后进行判断。如果sell=1,则下一个状态转回到ENC◇l状态,循环下去, 而如果sell=0,则进入TAILl状态,然后判断sel2;如果sel2=l,说明RSCl的 三位归零校验码没有输出完毕,继续保持TAILI状态,壹到sel2=0时,说明 RSCl的三位归零校验码输出完毕,状态机要进入TAIL2状态,输出RSC2的三 佼归零校验码,将RSC2的三位归零校验码输感完毕后,进入OV嚣R状态,完 成一次删余过程。状态机的工作状态转换图如图3.5所示。 38 哈尔滨r程大学硕+学位论文 一一一-一-一·--一一一◆ sell=O sel2=O 圈3。5删余状态橇的工作状态转换翻 3。1。4复解的设计 复接模块相当予数据选择器,它将信息位,校验位依次串行输出,形成 系统码,其实就是将并行码变为串行码的过程。但比并串转换复杂。 复接模块与删余模块的设计思路有点类似,只是信号有区别。根据删余 的工作原理,可以知道在一个时钟周期clk内,输入两个校验码,而经删余 后只需要输出一个校验码即可,因此删余模块的时钟要与其它模块严格保持 ~致;而对于复接模块来说,一个时钟周期elk内同样是输入两位(一个信 息位与删余后的一个校验位),丽经复接后它依然要输出两位,只是将同时输 入的两位变为先后输出的两位,因此复接模块的时钟频率是其它模块时钟频 率的2倍。另外,复接模块有三路输入信号,第一路为信息序列和RSCl的 三个归零尾比特,第二路为RSC2的三个归零尾比特,第三路为经删余后的 校验比特,由于第一路和第二路刚好是分时输入,合成以后才是真正的信息 39 ;篁笛黼茹;;;;;;;篇茹;;;;;;毒端笛;;;哈;iI尔i滨 iiiiiI 下张大学硕+学能IIIII论 I I—文—...........鞲;;昌;;;;赫篇车;;;;;笛赫喾 序列,所以在设计时可以看成一路输入,这样其设计思想和设计方法与删余 模块类似,这里不露赘述。 3.1.5控制模块的设计与实现 前面介绍了各个子模块的设计过程,但要把它们组合成一个整体,让它 {|、j有条不紊的工作,还需要一个时穿控制模块。它是协调整个编码器中各个 模块正确工作的,因此这个模块的性能是否稳定至关重要。 ~般来说,控铡模块都是由状态枫来实现麴,因为它可以把整个系统的 工作过程分成不同的阶段。每个阶段都可以用一个状态来表示,通过控制各 个状态之矧的转换来完成每个阶段的交接工作。那么先来分拆一下整个Turbo 码编码器的工作过程,然后蒋准确划分各个阶段。 首先,在信息存储结束焉,使能信号start蠢效痘动整个编码器工作。开 始进行交织编码过程,当一帧信息序列编码结束后,先要对子编码器RSCl 进行归零操l乍,然屠爵对子编码器RSC2进行归零操作。按照原理,交织、编 码、删余、复接是同步进行的,在RSC2归零后整个循环就该结束了,但是考 虑到各个模块间的传输延迟,删余、复接要比编码模块延迟工作~个或多个 时钟周期,完成了删余、复接后,也就完成了对一帧数据的编码。 综上,可以将控制模块的状态机主要划分为以下六个状态: 1.IDLE状态:在这个状态下,编码器处于空闲状态,所有模块都处于 复位状态。 2.ENCO状态:在检测到信号start=l以后,编码器进入编码状态,在 此过程中交织、编码、删余和复解是同时进行的。当检测到CO over信号时, 表示完成了对一帧数据的编码操作,要进入子编码器RSCl归零状态即Tl 状态。 3.Tl状态:这一阶段就是完成对子编码器RSCl的归零,即输出三个 信息尾比特和三个归零校验位。如果tl over=l,表示予编码器l归零完成, 哈尔滨T程大学硕七学傅论文 可以进入下一个状态T2了。 4.T2状态:这个过程就是子编码器RSC2的归零,即输出三个信息尾 比特和三个归零校验位。如果t2 over=l,表示子编码器2归零完成,可以 进入下一个状态PUNC了。 5.PUNC状态:删余、复接、交织、编码本应是同步完成的,但考虑到 延迟,交织、编码结束后依然要保持删余模块的使能端为高电平,直到删余 结束标志zeover=l,即删余结束。因此此状态就是用来维持删余、复接继续 工作的。 6.OVER状态:在删余、复接工作都结束后,一帧的编码就结束了,输 出一个完成信号finish,并进入下一个状态回到IDLE状态,准备对下一帧数 据进行编码。状态机的状态转换流程图如图3.6所示。 .◆一 co_over=1 -◆I I l零操作 l ·一一-一-一·一一·一·◆ t20ver=l ◆一 zeover=l I状态 I 图3.6编码主状态机的工作状态转换图 41 哈尔滨1:程大学硕十学伉论文 3.1.6控制模块的设计与实现整个编码器的FPGA设计实现 完成各个模块的设计工作以后,将所有模块进行有序组合,可以得到 Turbo码编码器的FPGA顶层设计,然后利用XST对其进行综合。 综合报告如下: Device utilization summary: Selected Device:3s500ef9320—4 Number of Slices: Number of Slice Flip Flops: Number of 4 input LUTs: Number of IOs: Number of bonded IOBs: IOB Flip Flops: Number of GCLKs: Timing Summary: 446 outof 102 outof 834 outof 42 42 out of 1 2 out of 4656 9312 9312 232 24 9% 1% 8% 18% 8% Speed Grade:-4 Minimum period:5.990ns(Maximum Frequency:166.945MHz) Minimum input arrival time before clock:4.802ns Maximum output required time after clock:1 9.932ns Maximum combinational path delay:No path found 由上述报告可知:在选择XILINX公司SPARTAN3E500器件时,系统时 钟最大可达166.945MHz,系统的吞吐率为165.49Mbit/s。 3.2 Turbo码编码器的仿真和硬件测试 在整个设计过程中,要对设计进行严谨的仿真和验证,以保证所做设计 的正确性和稳定性。在对编码器各个子模块验证正确后,接着要验证整个编 码器。对上节所设计的编码器写测试文件,并利用Modelsim SE 6.0仿真工具 进行布局布线后仿真,仿真波形图如图3.7所示。 42 !至尘兰!.垒垒兰堡圭兰!兰篁奎 ● ● o J—~—UU]j—UL厂U]』U1』]_jU_乙』-UL厂L厂LL几r—几U—n一_U|'』]几U厂U ● ● ◆ ◆ o ◆ ◆ —正一L———————广——————厂L犷—]—]—r—j1——广——1————j1百———————*L二L—厂F——1—r—]—Lr厂—_r一—叵L厂—卫LJ——[—础]——I一厂[ ● ● ● o帅钔汕协蜘钔啪。删 酬3 7编码器的布局布线后仿真波形幽 一般情况下,时序仿真能很真实地反映实际电路工作时的情形,但是为 了保证编码器系统能和整个通信系统正确通信和正确的工作,需要对编码系 统进行硬件测试。由于本通信系统中的调制,信道,解调都是暂时采用计算 机软件模拟,故编码系统采用串口与计算机通信。编码器系统采用X1LINX 公司的Spagan3E500开发板。利用计算机产生随机信源,通过串口向编码器 发送一帧信息序列(1024 bit),编码系统首先接收信息序列并进行储存,然后 进行编码,最后将编码结果通过串口反馈给计算机。整个硬件测试系统如图 3.8所示: 图3.8 编码系统硬件测试示意图 示意图中计算机上运行的是一个串口通信程序,这旱采用串口调试助手。 为了使编码器跟计算机通信,要在原来编码器的基础上加上串口接收、缓冲、 哈尔滨1-程大学硕十学位论文 存储和串口发送以构成整个编码系统。FPGA中的串口接收模块Rx对发来的 数据进行接收,缓冲器FIFO实现对信息的缓冲,然后存储到FPGA内部的 RAM中,然后编码器读取信息序列并进行编码,并把编码结果储存到储存器 RAM中,晟后通过FIFO缓冲和串口发送模块Tx将编码结果发送回汁算机。 为了方便测试,数据均采用十六进制表示方式。硬件测试结果如图3.9所示。 利用Visual cH编写的编码自动测试系统界面程序(第4章将详细介绍)对 所做的编码器系统进行测试,测试了350帧数据,都是正确的。表明所做的 设计是正确的。 嘉豢笋 嚣霪一 篓 -5 一F●4 .H●8 —BD日F ]。 霄鳟矬 焉臻臻 甄雕黜 矿“nⅡ∞"z% J葛∞}{Ⅲn∞”m i”"g*∞∞¨ 0目目2目 百¨∞∞"n”n 一‘831~E0 i∞"∞Ⅱ∞m∞ 百“∞n∞∞m* 百女∞H“;=∞∞ 茸m∞“K%∞“ 2日^B 筘m%m%n∞n 苟∞ ∞” KⅡ 苜日∞∞n“∞" TBT3l 一6,4^{35a 面8∞"∞%"” #∞Ⅱ口”n¨∞ 有&∞∞%m∞H iE¨mH%”∞ i%Ⅱ∞”"Ⅱn 1‘"C目『F 一2s05602 爵∞¨#”"∞Ⅶ i¨K∞"w∞“ 面∞"”∞"∞* i“∞¨¨u"¨ 百m"ⅫH*∞% 石H∞"∞¨”" 目∞"∞∞∞¨x∞ |量瞥陋雌"衅r●l 型 E==——————~]睁 1簿裂殿雩霉 一自自#堋:瓜矿≈# 国墨墨墨墨皿窭互互互Z—■——■—■—墨瞬翳媛g醒_删目扫 竺!=!1211竺Ⅱ 剁暮戛疆基』{g垫 围3.9编码器硬件测试结果示意圈 3.3 MAX.LOG.MAP算法译码器的FPGA设计 Turbo码译码器是由两个子译码器构成,对于每一个子译码器都有独立 的译码运算过程,并产生相应的外信息,两个子译码器之问经过多次迭代运 算,交互外信息,最后经过硬判决得到译码输出。 哈尔滨下程大学硕十学伉论文 3.3.1㈣.LOG—MAP译码器的总体优化设计 若i;;端;;;盏篇;;;黼暑;ii一..~...... .iii Im Il; i'1'111——iiiiiii;;暑 在完成子译码器的设计后,下面详细介绍整个译码器的设计。根据译码 原理,整个译码器应有穗个结构完全耀厨的子译码器构成,如图3。10所示。 当然还有交织器和解交织构成。 为了节省FPGA的资源,利用两个子译码器相同结构,分时工作的特点, 这里采用了资源共享的方式,即复用子译码器的方式,对应的译码实现结构 图如图3.1{所示。这样将整个译码器耗费的资源减小到接近一半。 殛l ?0 站1 y, 图3.10 Turbo码译码结构 S M U 叫交织器卜 X l LM , U 2 k rX r La DEc 圹 广旧卜 & M U —◆ £啼 解交织器‘ —◆ X 译码输翘 LL爻 一勰交织器卜|硬翔决卜 yp 图3.11译码器实现结构图 45 哈尔滨jI:稃人学硕十学位论文 3.3.2 MAX.LOG—MAP译码器的译码时序安排 由于采用了予译码器复用,整个译码器消耗酶资源大大减小,但是这是 以粕对复杂的控制时痔为代价的。下面分折译码器的译码时序安排。首先对 输入的信息进行解复,分解出系统信息Y 8、校验售惠矿1和校验信息y瞄,并 加以存储。然后译码器1工作,这时的输入有系统信息ysl、校验位ypl和先 验信息La(Le经过解交织,初始化时采蠲初始纯值),子译码器l译码结采 生成的外信息Le再经过交织器反馈回来作为子译码器的先验信息。这时予译 码器2开始工作,这是的输入有经过交织器后的系统信息融、较验位y露 和经过交织器反馈回来先验信息。予译码器2译码结果生成的外信息要褥经 过交织器反馈图来徽下一轮迭代运算中子译码器2的先验信息。如此迭代译 码下去,直到满足一定的条件,停止迭代,对译码结果生成的对数似然比进 行磺翔决,得翔译码结采。 在整个译码过程中,对于癸信息的储存也是一个缀重要的环节,它决定 了是否畿正确实现交绞和解交织。在子译码器l译码结果生戒的外信息在储 存到存储器时,采用顺序地址存入外信息存储器,然厢在译码器2工作时, 采蔫交织图样遗址从外信息存储器中读凄外信患终为先验信息,这样就实现 了交织。译码器2译码结果得到的外信息按照交织图样地址写入外信息存储 器,在下~次迭代译码器l工作时,按照颓痔遗垃从羚信息存储器串读辫磐 信息。这样就实现了解交织。如此工作下去,迭代6次后,译码器2译码输 出最大似然比经过硬判决(这种实现方式比起先交织蜃硬判决大大减小存储 空间,从而减小资源消耗),然后解交织后输出译码译出的信息比特。 3,3。3译码过程中的数据量化及表示方式 由于FPGA等数字系统处理的都是数字髂号,如果输入的是摸拟信号, 就必须对输入的模拟信号进行量化渊冁阐,然看选择适当的数据表示形式, 最后再进行处理。 哈尔滨+r稗大学硕十学位论文 3.3。3。l接收信道信息的量化 通信系统的系统模型如图3.12所示,信息序列缸。;经过Turbo码编码器 得到编码后码字序列k),然后经过MSK调制得到发送码字序列k),通过 均值为0,方差为拶2的加性高斯白噪声(AWGN)信道,然后经过MSK解 调后得到接收信息◇。},均匀量化涉。}后得到量化接收序列◇≯1},最后通过 Turbo码译码器,得到译码后信息序列敏}。由系统模型,可以得到: 懿=x}+鲤々 (3—1) 其中佩为均值为0,方差为莎2=Ⅳ。/2的高斯翻噪声样值,%∈}1,+1},由 此,可以推出接收码字序列◇。}是服从均值为士1,方差为盯2篇N。/2的正态 分布随机序列。 Ct 蔗毫 豳3。12系统模型 根据概率统计的知识可知,对于均值为/a,方差为∥2的正态分布随机变 量x,其分布函数为: 47 嗡尔溟,1.槔大宁坝士掌何论文 荆=西(等) @2, 那么随机变量x分布予区间陆一3矿,∥十3仃】的概率为 P《x一芦i≤3仃)=p0—3仃≤x</t+3cr)=0.9974 (3.3) 所以,对于服从均值为±1,方差为盯2的正太随机分布的接收码字序列 饥)的取值范围可以确定为±(1+3∥)。表4。1给出不同信噪比情况下,1+30- 的取信。 表3.1不同信噪比条件下1+30-的取值 E,|N 3 0dB 1dB 2dB 3dB 4dB 口 1.2247 1.0916 0.9728 0.8671 0.7728 l十3∥ 4.6742 4.2747 3.9185 3.6012 3.3183 令D=1+3盯,爱wjYk的动态取值范围为卜D,D】,不同的信噪比,接收 码字儿将会有不同的动态范围;信噪比越大,其动态范围越小,考虑到实际 的信噪比不可能太小和均匀量化接收码字的方便,本文采用固定的动态范围 【4,4】。 确定好接收码字序列{y。}的动态范围,下~步就需要对其进行量化,本 文采用均匀量化的方法。在量化接收到的信道信息过程中必然会引入量化误 差,在此称为量化噪声搿】,会对Turbo码昭译码性能造成一定影响。在量化 的过程中,采用的量化比特数越多,则量化电平数就越多,那么量化器的信 号量噪比就越高,从而由量化给Turbo码译码性能所造成的损失也就越小。 本文采用FPGA来实现Turbo码译码器,如果选取的量化比特数过多,那么 就需要更多的数据位宽来表示内部数据,造成硬件资源的消耗过大。因此, 选择合理的量化比特数,对Turbo码译码器的FPGA实现具有重要的现实意 哈尔滨下程大学硕十学像论文 义。 图3.13所示为采用不同量化比特数和未经量化的Turbo码译码性能比 较。从图中可以看出,对接收到的码字序列进行5比特量化即能得到和未经 量化的浮点序列相当的译码性能。由均匀量化的概念可知口田刚脚1,对动态范 围为[-4,41的信号进行5比特量化,其量化电平数为32,量化的精度为O.125。 碰 山 ∞ 图3.13不同援化比特数的译码性能比较 3.3.3.2数据表示方式 本文采用FPGA进行Turbo码译码器的设计,用何种数据表示方式参与 其复杂的内部运算,是首要考虑的问题,通常有浮点和定点两种数据表示方 式。浮点表示方式,数据动态范围大,可以用较少的数据位宽表示较大范围 的数值,共可以提供较离的数据精度。定点表示方式实现简单,速度快,功 耗低。通常情况下,为了实现一个高速数据处理,小面积,低功耗的ASIC 设计,其内部数据都采用定点表示方式。下面将介绍数据的定点表示方式: 如图3.14所示为数据的定点表示方式,假定用N。数NI+NF位二进制比 49 哈尔滨丁程大学硕十学何论文 iiiiiiiiiS. Y|V'- "'li|l "l'" Illll....... I'譬篇嗣i暑 特表示数据,其中M表示小数点左边的整数部分(包括符号位),通常称之 为数据的动态范围;N芦表示小数点右边的小数部分,决定了数掘的最小区 分度,这里称作数据的精度。 图3.14足点表不万式 如图3.12定点表示方式的数据的动态范围为卜2N,_l,2N,_1 2。1≯],精度 为-9N—F。结合接收码字序列量化的数据精度要求和便于Turbo码译玛器的 FPGA设计,本文在进行Turbo码译码器的FPGA设计运算时,所有数据表 示方式统一采用N嚣=12的定点表示方式心1,其中N;=9,数据动态范圈为 【一256,255.875];NF=3,数据精度为O。125。 3.3.4 MAX.LOG.MAP算法子译码器的FPGA设计 Turbo码的译码器主要是由两个相同结构的子译码器构成。子译码器在 Turbo码译码器中起着很重要的作焉。下瑟详细介绍MAx.LO岱M矗P算法子 译码器的FPGA实现。 3.3。4。I予译码器的并行计算方案 在MAX-LOG.MAP Turbo码子译码器译码过程中,首先进行分支转移度 量y运算,进行前向分支度量能递归运算,然后进行后向分支度量∥递归运 算,最后计算对数似然比软信息和外信息,计算出的外信息作为另一个子译 码器输入的先验信息。为了减小译码时延,在不影响译码结果的前提下,提 50 哈尔滨一r=稗人学硕十学伉论文 .II "1'1'1 IIII tl I" 'ihll| II i'"11t I... 出了并行计算的计算步骤: ..... 111'1'11麓暑 第一步:分支转移度量运算,同时计算前向分支度量递归运算: 第二步:焉向分支度量递蜴运算,同时计算对数似然比和外信息。 这样,通过弓l入并行计算将整个译码时延减小到接近一半。其译码时序 图如图3.15所示。先是分支转移度量运算和前向分支度量递归运算采用顺序 的方式计算。这样在开始接收信息序列的时候就可以计算了。然后逆序计算 屁叫!旦———。 后向分支度量和对数似然比和外信息。 I 01................j...。....N.J l N1...。。...........j1.......一0 吼一:丝k——◆ 0 T 2T 图3.15改进译码步骤时序图 3.3.4。2分支转移度量计算单元的设计 在整个子译码器运算过程中,需要不停的调用分支转移度量,由公式 (2.42)可知,分支转移度量值由子译码器的先验信息五辞“)和信道接收序 YUy。=◇;,yf}计算而来,仔细分析可知,对于每一次译码运算,分支转移度 量值只有四种可能:“女=0(x;=-1)时,x参=±1;U}黧1(x:=-1)时, xf=±l。所以根据公式(2-42)可以计算出以下四个分支转移度量值: 硝G。,s)=等k+彬) (3.4) 磷’机s)=等欲一蠼) <3剐 D2。◇‘,s)=一£搿缸。)一等钯一孵) (3.6) 51 哈尔滨T:程大学硕十学何论文 磁1∽s)=一La(u。)一了Zc∽+”) (3.7) 观察式(3—4)一(3-7)可知,接收序列Yk=汐:,罗}}可以在读入译码器 之前进行加权(Yk*Lc)/2处理,那么对于分支转移概率值的计算将全部为加 法和减法运算,避免了乘法运算,毽此,可以大幅度提高译码器的运算速度。 为进一步提高译码器的运算速度和简化FPGA设计,本文将每次迭代译码运 算中的所有分支转移概率值采用并行运算并行存储的方式,将分支转移个概 率值存放到由4个Block RAM构成的存储器中,以便计算前后向递推运算和 外信息值(或软输出似然比)运算读取,其实现结构如图3.16所示: 一 斗 硭运算单元 t 啼 _ —◆ 磁1运算单元 ● 斗 _ 叫。运算单元 )啼 磁1运算单元 磁。存储单元 掣 磁1存储单元 掣 D?存储单元 硝 磷1存旗单元 硝 鹜3.16分支转移度量值FF'GA实现结构 3.3.4.3前向分支度量递归运算单元的设计 本文采用3GPP标准分量编码器生成多项式为(13,15)的编码方案, MAX-LOG.MAP译码算法进行FPGA实现设计。译码算法中,前向分支度量 递推值的计算依赖于Turbo分量编码器的编码网格图,如图3.17所示。 结合图3。17分量编码器的网格图和前向分支度量递推计算公式(2.50), 可以得盘第k时刻的8个前向分支度量递推状态值的计算公式: 幺∞)=MAX‘k一;◇)+c,000‘,s14一;0)+穰’§+,s)) (3.8) 4e)=删’0胃一,(3)+磷40’,s;么。一,Q)+D;。0+,苫势 (3.9) 52 ll———————~,I 茹;i;毒警;;i薯黼每;;薯I l愉尔溟1.槔大学坝t宇能论又 _ Illlll Ak(2)=脚’0茁一,(4)+D?1G’,sl爿七一。(5)+D?G’,s)) 4。(3)=心’0茁一,(7)+磁。G‘,s)’么。一,(6)+D:1G。,s)) 以(4)=膨心‘0“(1)+硝G‘,s≥碡一,(o)+磁1S’,s舅 4(5)=脚‘0茁一,(2)+磁10’,sj么¨(3)+磁。◇’,s》 Ak《6)=脚+0纠(5)+磁’§‘,s:lAk。,(4)+磁8G+,s游 Ak(7)=MAX40刖(6)+硝∽s14。。(7)+硝10+,s劳 'l'l,llll .......喾 (3.10) (3.11) (3.12) (3.13) (3。14) (3.15) SII O SIl l S=2 S=3 S=4 S=5 SII6 S =7 输入0 输入1 图3。17(13,15)RSC分焦编码器网格图 为提高译码运算速度,前向分支度量递推运算采用8个状态并行运算并 行存储的FPGA实现结构,在MAX.LOG.MAP译码算法中,前向分支度量 递推,后向分支度量递推和软输出运算单元,存在着大量的MAX’运算结构, 由第2章介绍的MAX.LOG.MAP算法可知,必饼’运算可以简化成rain(..·) 求最小运算。对于前后向分支度量递推运算中每一比特的8个状态值按照基 本的MAX+运算单元计算,其FPGA实现结构如图3.16所示。 在前向分支度量递推中,由于码长比较长,故递归深度很深,分支度量的动 53 —ill 哈尔滨.r:程大学硕士学位论文 掌;;;高描宣;;警ill .... lhl;iii 态范围很大,需要采取某些措施避免发生溢出(后向分支度量递推也存在同 样的问题)。这里采取了有利于译码的速度和归一化的方式:即每一个比特的 8状态僮都减去上一个比特8个状态值的最小值,其基本归一化运算单元实 现结构如图3。18所示。 图3.18 MAX+运算单元实现结构 图3.19 基本删’运算及其归一化实现结构 完成了计算和归一化单元的设计以后,整个前向分支度量递归计算单元 示意图如图3.19所示。图中的DFF是为了调整数字电路的时序加入的触发 器。M隧是求八个状态量的最小值单元。 如图3.20所示,计算第东比特的前向分支度量递推值时,首先从分支转 移概率值存储器中读取出第七比特的4个分支转移概率值,同时计算第七比 特的8个前向分支度量递推状态值,并将计算结果存入由8个DPRAM构成 ;;;;;茹;;;昌躺;;i;省笛暑;;警麓;i哈 ;茹尔鞲;滨; 下-程大学硕十3iii学i誓;佗;论 ;篇文 ;;;;警赫;;;蒜葛;;;嵩鞫;;;警黼i;;盏躺薯 的后向递推值存储器中,以备计算软输出似然比时读取。 硝 硝 硝 硝 钆 图3.20前向分支度量递归运算示意图 3,3.4。4后向分支度量递归运算翻软输出计算单元的设计 对于后向分支度量递推运算,采用前向分支度量递推运算相同的并行运 算结构,根据图3.17分量编码器的编码网格圈和前向分支度量递推计算公式 (2.51),可以推导出第k时刻的8个后商分支度量递推状态值的计算公式: Bk◇)=删+慨+;∞)+碟,●’,s≥最+;(4)+磷:;§+,葶势 (3.16) 玩e)=脚’0黼0)+碟,●。,s),磁“◇)+磁;;0’,s)) (3.17) 邑(2)=脚‘慨+,(5)+磺,O’,s),玩¨O)+碳,G‘,s舅 (3.18) 玩(3)=删’Bk+。(1)+D嚣。O’,s),眈+。(5)+磁:。G’,s)) (3.19) 55 嗡尔滨17程大学硕十学位论文 Bk(4)=MAX‘皈+。(2)+D篡,G’,Jl色+。(6)+叫:。b’,s)) (3.20) 霹;(5)=uxx‘c8。+,(6)+D嚣,G‘,s),域+,(2)+磁:,G‘,s))(3-21) Bk(6)--M似’阪+;p)+9嚣;0‘,岁盖毽+;(3)÷磁:;0‘,s凳 (3.22) 壤(7)=MAX‘慨+;《3)+碟,0‘,s≥琉+;(7)÷硝:,G‘,葶)) (3.23) 对予软输韵的计算,根据圈4.6的分量码编码瓣格盈和软输高计算公式 (2。52)可知,需要先分别求和计算所有U。=0的路径和所有U;=l的路径, 然后计算两者之闻的差值帮为软输出似然比,褥根据公式(2.34)将软输出 值减去先验信息和信道信息即可褥到子译码器的外信息,如表3.2所示。 表3.2软输出似然比及外信息计算 序号 U女=0的路径 U女=1的路径 O 么。一;(0)+DPG’,s)十层;(0) 么纠(o)+麒1∽S)+Bk(4) l Ak-,(1)+p尹S‘,s)+反(4) Akq(1)+磁1G’,s)+魏(o) 2 么。一,《2)+磁’◇‘,s)+域《5) Ak一,《2,+。1。G+,s)+反e) 3 Ak-l(3)+磁’0‘,s)+坑(1) AkqO)+D2。G’,S)+Bk{5) 4 爿。一。(4)+群’G+,占)十反(2) Ak-1(4)+雠。G’,J)+壤(6) 5 Ak-,(5)+噬’G‘,s)+Bk f6) Ak一,(5)+磋。G’,J)+B。(2) 6 Akq(6)十D。0。G‘,5)+取(7) Ak-1(6)+联1G’,s)+反(3) 7 Ak一,(7)+W∽s)+婊(3) Akq(7)+磁1G‘,s)+琏(7) 软输出似然比 £0;)。警’¨一M叫AX’㈠ 外信患 五窖0。)=三0。)一三口0;)一Lc·y; 哈尔滨T稗大学硕十学何论文 为减小储存资源,在设计Turbo码子译码器时,当计算出第k比特的后 向分支度量值后,省去后向分支度量值存储环节,立即读取出第k比特相应 的后商分支度量值和分支转移度量值,计算出软输出似然比,并将计算结果 存入外信息Le(u。》存储器中(子译码器外部)。其实现结构如图3.2l掰示。 A(O卜Af7) 软输 D(0卜D(3) 出毫蔓 然比 Le(uk) 舞信 缸,’“,州零l蕃嚣茹 息计 箨肇 兀 Le(uk) La(uk) 网3.21 后向递推和软输出运算实现结构图 3.3.4。5 MAX.LOG.MAP子译码器的总体设计 完成了对MAX,LOG。MAP子译码器豹各个关键运算单元的FPGA设计, 下霹将进行子译码器的FPGA总体设计。 子译码器中主要包括分支转移度量计算模块、前向分支度量递推计算模 块、后向分支度量递推计算模块、软输出计算模块、分支转移度量值存储器、 前向递推存储器和协调它们有序正确工作的子译码器时序控制单元,其 FPGA实现框图如图3.22。 分支转移度量计算模块,通过读取信息位《、校验位鳄、和先验信息 位La(u。》计算盘一帧数据的每一位比特所对应的4个分支转移度量傻,同时 并行存储于由4个Block RAM构成的分支转移度量存储器DRAM中。在后 蠢递推计算模块和软输出计算模块计算时,直接从DRAM存储器中并行读取 57 哈尔滨丁程大学硕七学位论文 所需的分支转移度量值。 :lk L r set k r trt 分支 转移 概率 计算 .I■o , 前内递 推计算 t .。I A i7 RAM ◆ 王 k L r S L r ◆; r 。l"’理币。卜◆ L J. r 软输 出计 r L1 p 玲 L T 后向递 算 一 r r 且 RAM L r 推计算 r 0 I k 图3.22 MAX-LOG-MAP子译码器实现框图 前向分支度量递推计算模块,一帧数据的每一位比特所对应的4个分支 转移度量值计算出来后立即作为输入,进行并行计算出前向递推每~比特的 8个状态僵,圊时并霉亍存入由8个Block RAM构成的前怒分支度量值存储器 BRAM中,以备计算软输出对读取。前向分支度量递推计算模块和分支转移 度量计算模块是并行工作的。 后向分支度量递推计算模块,从分支转移度量存储器DRAM中逆序并行 读取每一比特所对应的4个分支转移概率值,然后并行计算出后向分支度量 递推每一比特的8个状态值。 软输出计算模块,在后向分支度量递推计算模块计算出第一位比特所对 应的8个后向分支度量状态值时,直接从DRAM中读取对应比特的4个分支 转移度量值和从BRAM中读取对应比特的8个前向分支度量状态值,并计算 出对数似然比和外信息,并把外信息输出存储到外部的外信息位存储器 LERAM率,完成一次译码计算。 在MAX.LOG.MAP子译码器的FPGA设计中,另一个最重要的模块就 是时序控制模块,这里是通过一个有限状态机来控制子译码器的正常工作, 其状态机的时序状态图如图3.23。 IDLE状态:此状态为空闲复位状态,在此状态中,子译码器内的所有内 58 哈尔滨下稃人学硕十学传论文 部模块处于待命状态。 图3.23 MAX-LOG-MAP译码器时序状态图 INITIAL状态:。当“Start=l”信号有效时,状态机跳转到初始化状态,各 个计算单元复位,存储器的读写地址发生器地址清零,褶关参数进行初始化 状态。并直接进入下一个状态GAMA。 GAMA状态:此状态中,子译码器将一帧数据中每一个比特所对应的4 个分支转移度量值计算并存储于由4个Block RAM构成的DPRAM中。同时 进行前向分支度量值递推计算并储存到8个Block RAM构成的DPRAM中。 表示分支转移概率值计算存储完毕,状态机跳转到后向递推计算状态。 此状态中,蘑向递推计算单元从DPRAM存储器中并行读取每一比特的4个 分支转移概率值,进行计算每一比特的8个后向递推状态值,并将计算结果 存储于由8个Block RAM构成的DPRAM存储器中。 BEITA状态:当“Gover=l”信号有效时,表示分支转移度量和前向分支度 量递推计算及其结果韵存储完毕,状态机跳转到后向分支度量递推计算和软 信息计算状态。在此状态中,后向分支度量递推计算单元从DPRAM存储器 中并萼亍的读取每一个比特的4个分支转移概率值,并行计算出每一比特的8 59 哈尔滨T程火学硕十学位论文 个后向分支度量递推状态值,同时计算软信息。输出对数似然比和外信息。 输出的外信息存储于外部的外信息存储单元LERAM中。 OVER状态:当“Bover=l”信号有效时,表示软输出计算存储完毕,状态 枫跳转到译码计算结束状态,此状态中,译码器输出“over’’结束信号,在下 一个时钟到来时,状态机跳转到“IDLE”空闲复位状态。 3.3.5懈.LOG.MAP译码器的FPGA实现 完成了译码器的各个子模块的设计,顶层优化和译码时序安排,下灏将 进行Turbo码译码器的FPGA设计。其顶层FPGA实现框图如图3.24所示。 图3.24中的交织图样存储器是用一个ROM实现的。Turbo译码器内核外面 的3个RAM用于存储解复用后的信道信息Y;、y∥和yp2,Turbo译码器中 的MAX,LOG.MAP子译码器独立完成译码运算,在前半次迭代译码(译码 器1)时将运算结果得到的外信息序列顺序存储于疼部的外信息存储器 LERAM中;在后半次迭代(译码器1)时以交织的方式读出外信息序列作为 先验信息进行译码,并把运算结果得到的外信息以交织方式存储于内部的外 信息存储器LE RAM中;这样不断迭代译码,迭代六次以后,硬判决器将最 后一次的后半次迭代(予译码器2)计算的软输出似然比迸行硬判决,得到 译褥输粥;然后再进行储存,这样院起先存储后判决节省储存单元。Turbo 译码器时序控制器是为译码器中各个模块协调工作提供正确的时序控制信 号。图3。25为Turbo译码器时序控制器状态机的主要工作时序状态图。 IDLE状态:空闲状态,所有内部模块处于待命状态。 INITIAL状态:当检测到译码开始信号“Start=l”有效时,译码器进入准 备工作状态,初始化各个子模决。 Dl状态:状态机跳转到_|;{f半次迭代(子译码器l>译码运算状态。子译 码器开始顺序的读入信息位Y:、校验位yfl和先验信息位三8,k),计算外信 60 哈尔滨T稗人学硕十学位论文 图3.24 Turbo译码器项层FPGA实现框图 息值Le,《耜。),并将译码结果中的外信息顺序存入存储器LElRAM串。 D2状态:当信号“over=l”有效时,表示子译码器1运算存储结束,状态 枫跳转到后半次迭代(子译码器2)运算状态。子译码器读入校验位罗}2,按 照交织图样读入信息位Y;和先验信息位加:0。),计算外信息值k:0。),并 将计算结果以交织的方式存入存储器LE2RAM中。 DOUT状态:当信号“over=l”和“iter=5”有效时,表示译码器己完成迭代 次数,状态枫跳转到硬判决状态。硬判决器直接对译码器的对数似然比进行 硬判决。输出译码结果到外面的存储器中。 OVER状态:译码结束状态,输出finish信号,表明已经完成了对一帧 数据的译码工作,以通知前端可以开始下一帧译码、后端可以到译码结果存 61 哈尔滨f]j程大学硕十学位论文 储器中取出译码结果。并返回到IDLE状态。 Start=l over=l&& 一--·-·一一-一一-一◆ 图3.25 Turbo译码器工作时序状态图 最后对整个编码器进行综合,转换,映射,布局布线。综合报告如下: Device utilization summary: Selected Device:2vp30ff896—7 Number of Slices:4054 out of 1 3696 29% Number of Slice Flip Flops: Number of 4 input LUTs: Number of IOs: 6 1 7 out of 27392 7486 out of 27392 5 2% 27% Number of bonded IOBs: 4 out of 556 0% Number of BRAMs: 31 out of 136 22% Number of GCLKs: Number of DCMs: 2 out of 1 out of 16 12% 8 12% Timing Summary: 62 哈尔滨I:程大学硕十学1={7:论文 Speed Grade:-7 Minimum period:8.902ns(Maximum Frequency:112.33 1MHz) Minimum input arrival time before clock:4.48 1 ns Maximum output required time after clock:3.293ns 系统的性能分析:最大时钟112.331M,译码内核完成一帧译码的最小时 延(迭代六次)为6木2}1030"8.902*10(.9)=0.1 lms吞吐量: 1024/(6"2'1030"8.902木10(一9))=9.306Mbit/s,满足系统性能要求。 3.4 Turbo码译码器的仿真与硬件测试 在完成译码器各个子模块的设计和仿真验证后,还要对整个译码器进行 仿真和验证,在整个数字系统设计中,验证是一个很重要的环节,它用来验 证设计功能的正确性和可靠性。这里,完成了对译码器测试向量文件的书写 后,利用第三方仿真工具Modelsim SE 6.0对其进行布局布线后仿真,仿真波 形图如图3.26所示。 从仿真图上可知:译码器在迭代6次译码后,输出译码结果。经过多次 验证,确定设计的正确性。 为了使整个编码器能和计算机(完成调制,信道,解调功能)通信,除 81 3 81 0 81札81 81 0 81 81 S 81 81 4 81 81 a 81 81 1 81 81 S 81 S 蛳~一~~惴~一~一~~ 81 81宕1 S 81 81 S n玲磅◆¨磅 ◆ ◆ 玲 81 81 曲一曲一幽一曲酰一札曲一曲一雌吖雌吖龇雌州吖州吖 2 帕嘣5皤旧m吣∞ 图3.26 Turbo译码器布局布线后仿真波形图 了已经设计出的译码器外,还需要加上串口接收、储存、解复、串口发送等 模块。所以必须对整个译码器系统进行测试,以保证整个通信系统能实现通 63 哈尔滨I‘栏大学硕士学位论文 信。整个译码器测试方案如图3.27所示。先是利用MATLAB仿真程序产生 的信源,并对其进行编码,调制,加噪,解调,量化。然后将量化的结果, 通过串口向译码器系统发送“一帧帧量化后的接收信息序列(2060个8bit数 据),译码器系统首先接收信息序列并进行解复储存,然后进行译码,最后将 译码结果通过串口反馈给计算机。 示意图中计算机上运行的是利用Visual c__h编写的信息处理界面程序 (第4章将详细介绍),译码器系统采用XILINX公司的Virtex2 pro development system开发板,板上FPGA通过串口接收Rx接收发米的数据, 缓冲器FIFO实现对信息的缓冲,然后进行解复,分别存储到系统信息存储 器,校验信息1存储器,检验信息2存储器中,然后译码器读取信息序列并 进行译码,并把译码结果储存到RAM中,最后通过FIFO缓冲和串口发送模 块rx将编码结果发送回计算机。为了方便测试,数据均采用十六进制表示 方式。硬件测试结果如图3 28所示。经355次验证,都是j下确的。 图3 27译码系统硬忭测试示意幽 哈尔滨r程人学硕士学位论文 3.5本章小结 图3.28译码系统硬件测试图 本章详细介绍了基于FPGA的Turbo码编译码器及其子模块的FPGA设 计与实现过程。详细分析了交织器的设计过程和编码器顶层控制状态机的控 制时序,并对设计的编码器进行了时序仿真。完成编码器系统的设计,进而 实现对编码器的硬件测试。介绍了在设计Turbo码译码器时进行的接收数据 量化和数据表示方式。对Turbo码译码器的设计结构,译码时序实现进行了 详细的介绍。最后对译码器进行了布局布线后仿真和硬件测试。在设计译码 器时,采用子译码器复用和并行计算的方法,将占用的资源减小接近一半, 把译码延时减小到一半。 65 哈尔滨1:程大学硕士学位论文 第4章Turbo码编译码测试系统的设计与实现 前面介绍了Turbo码编码器和译码器的设计,渊试以后,下面要详细奔 绍整个通信系统的搭建和实现。 4.1测试系统的系统设计 本论文的背景就是建立一个通信系统,包括信道编码(采用Turbo码), 解调(采用MSK),信道,解调,译码等环节,其系统框图如图4.1所示。 溺4.1系统模型 首先产生信息序列缸;}经过Turbo码编码器得到编码后鹦字序列(7k}, 然后经过MSK调制得到发送码字序列k},通过均值为0,方差为盯2的加 性高斯白噪声(AWGN)信道,然后经过MSK解调后得到接收信息秒。}, 均匀量化饥}后得到量化接收序列移p】},最后通过h两。码译码器,得到译 码后信息序列瓴}。 在这个实际系统搭建中,用计算机模拟信源(利用Visual CH程序设计, 设计一个信源产生界面),并通过串El发给编码器系统,编码器系统通过串口 哈尔滨啊{人学颤士学位论文 接收到数据后,对其进行编码,并把编码结果存储到存储器中。然后通过串 口发送到另外一台计算机E,这台计算机对其进行调制,加噪,解调,量化, 并通过串口传给译码系统,译码系统接收解复,存储,然后对其进行译码, 最后把译码结果通过串口反馈给计算机。系统示意图如图4.2所示。 盛鼬 .曼 "It l 幽4 2系统示意幽 4.2通信界面的设计 介绍了编码器、译码器和系统设计后,下面就是通信界面的设计了,主 要包括信源产生界面和调制解调等信息处理界面。 4.2 1信源产生界面的设计 它的主要功能就是产生信源,并能通过串口将信息序列发送给编码器, 这罩利用Visual c++通信控件MSComn编写的串口通信程序”“。同时还具有 哈尔滨r程人学硕t学位论文 产生随机信源的功能。设计结果如图4 3所示。它具有十六进制复选框,可 以发送十六进制或者ASCII形式的数据。还具有文件读取的功能和每个一段 时间自动发送数据的功能。 4.2.2信息处理界面的设计 它主要实现串口1接收编码后的信息,并对其进行调制,加噪,解调, 量化,并通过串口2将量化后的数据发送到译码器系统。然后通过串口2接 收译码器系统反馈回来的译码结果。在这个界面设计中,用到了两个Visual c抖通信控件MSComn。其中一个对应串口1的通信,另外一个对应串口2 的通信。设计结果如图4.4所示。图中最上面的足COMl接收窗口,是对编 幽4.3信源产生界面 码后的数据进行接收的。接收数据的形式可以采用十六进制或者ASCII。然 后在下面的文本框可以输入信噪比(信噪比可调)。“处理”按钮是实现对编 码后的数据进行调制,加噪,解调和量化的处理。COM2发送窗口读出处理 68 竺ii鎏;!些垒兰堡圭兰堡篁圣 后的数据并通过串口2发送出去。COM2接收窗口是接收译码器系统反馈回 柬的译码结果。 幽4 4信息处理界面 4 3测试系统的实现 在完成了所有的硬件和软件设计以后,下一步就是将他们连接起来。并 对他们进行系统联调。 在信息发送界面主要是完成信源的产生和发送,其运行结果图如图4 3 所示。在点击“产生信源”按钮后,再点击“读文件”,在发送框中立即出现 要发送的信息序列。然后通过点击“发送”按钮将信息发送给编码器系统, 编码器系统把编码处理后的信息序列通过串口传给信息处理界面。处理界面 运行结果如图4 5所示,COMl接收框中出现接收到的数据后,输入信噪比, 然后点击“处理”,进行调制,加噪,解调和量化处理。在弹出“已处理完毕” 消息框后,点击“读取文件”,把处理后的数据从文件中读取出来,并在COM2 哈尔滨工栏大学硕士学位论文 发送文本框中显示出来。然后点击“发送”,将信息发送到译码器系统中,译 码器系统完成译码后立即反馈回译码结果,在COM2接收文本框中会马上出 现译码的结果。 幽4.5信息处理界面运行结果嘲 为了测试实际硬件的性能,对整个系统进行了测试,测试结果如表4 1 所示。对5个信噪比点进行了测试,虽然说测试的结果不满足统计特性,但 也能从一定程度上显示出系统的性能。由于在2 0dB信噪比点上测试的帧数 有限,故统计的误码率为0。 表41实际测试结果 E,|N、 0 4dB 0 8dB 1 2dB l 6dB 2 0dB 测试的帧数 32 56 73 94 200 BER 0I 587 0110l 0 026 O 001973 0 将这些测试的结果与理论仿真结果作一个对比,如图4.6所示。两者在 一定程度上是吻合的。由于硬件测试结果数量有限,所以不能准确地描述出 ,.. ... 哈尔滨”T:程大学硕七学位论文 Illll illll I"i;i '"I兰;;i;眷蔷毫 整个系统的统计特性的性能,从而实际测试的性能与理论仿真曲线有一定的 偏差。从总体来看,理论和实际的性能是吻合的,表明设计是征确的。 扶图4.6可以看出:生成多项式为3GPP标准的(13,15),码率为l趁, 帧长隽1024,交织器采用3GPP随机交织器,调制采用不带差分编码的MSK 调制,译码算法采用MAX-LOG.MAP,迭代6次译码对应的通信系统方案在 归一化信噪比2dB时,系统误码率为1.7334e.005,低于10一,能满足系统的 性能指标。 但是在这个逶信系统中,由于信源和译码结果分别在两台计算机上,这 样缀难测试整个通信系统的性能。更主要的因素还有调制,加噪,解调和量 化没有硬件化的原因。如果这些处理环节都是硬件已经实现了,就可以准确 方便地测试实际整个系统的性能了。 以 呦 ∞ 图4.6整个通信系统性能仿真图 71 4.4本章小结 哈尔滨T程大学硕士学位论文 本章详细介绍了整个测试系统的设计和实现,对测试系统进行了系统设 计,各个通信界蘑的设计和整个系统的实现。最后,仔缨分析了本文FPGA 实现的Turbo码和整个通信系统的不足之处,并为下一步完善Turbo码和通 信系统指明了研究方向。 哈尔滨iI:稗大学硕十学位论文 结论 重.本文的工幸#总结 本文以信道编码采餍Turbo码的通信系统的研究力鼙的。在低信噪比信 道情况下,信道编码采用离码率的Turbo码,采用连续相位调制(如MSK), 在归一化信噪比低于2dB时,要求系统误码率低于10-4。以此为设计的性能 指标,来实现整个通信系统。主要完成了以下几方面的工作: 1.分李厅了Turbo码的基本编译码结构,对3GPP标准的Turbo码编码器 结构、S随机交织方案和CDMA2000交织方案进行?分析和MATLAB算法 建模。并编写了相应的编译码测试程序。 2.对影响Turbo码译码性能的因素作了详细的仿真分析,对多种预选方 案进行了仿真分析论证,得出满足系统性能要求的各个参数值。完成系统仿 真论证。 3。针对复杂麴3GPP标准的交织算法,本文采用通过软件编程预先计算 出所需的交织图样并结合FPGA内部存储器的结构特点,利用FPGA实现了 简单有效的Turbo码内交织器。 4.完成3GPP标准生成多项式(13,15),码率为1/2,帧长为1024, 采用双归零处理的Turbo码编码器的FPGA设计,仿真和硬件测试。 5.以MAX-LOG—MAP译码算法作为Turbo码译码器FPGA实现的罄标 算法,针对FPGA数据处理特点,对接收的信道信息序列进行了5比特量化, 并采用FP(9,3)定点数据表示方式作为FPGA内部处理数据流的数据表示 方式。对子译码器采用复用的方法,使占用的资源减小了接近~半。对译码 算法中分支转移概率值,后向递推值和前向递摊值的计算采用了并行计算的 设计结构,提赢了译码计算的速度,并最终完成了固定译码长度为2060的 Turbo码译码器的FPGA实现设计,验证和硬件测试。 6.利用VISUAL C+十完成信源产生、信息处理界面。并与已实现的编码 73 哈尔滨丫稃火学硕十学位论文 器系统和译码器系统组合成一个完整的测试系统。 2.下一步的工作重点和未来工作的展望 本文中,采用MAX.LOG.MAP译码算法进行了固定帧长的Turbo码编 译码器的FPGA实现设计。译码速度和设计结构简单他作为FPGA实现考虑 的首要因素,因此整个译码器和整个通信系统还有很多需要完善的地方: 1.在译码器中,交织器的实现是采用预先计算出交织图样,生成存储器 初始化文件“木.coe”,所以只实现了固定帧长的Turbo码译码器。虽然可以根 据需求很方便的改变交织图样和译码长度,但是整个译码器仍然缺乏灵活性。 如果能将交织器的交织算法映射到FPGA硬件逻辑单元中,那么就可以将此 译码器改进成译码长度为40 ̄5114可变的Turbo码译码器。 2.当前Turbo码在现代通信系统中应用很广泛。各个系统中仅是生成多 项式不同,如果能实现兼容多个系统的Turbo码编译码,这样将有很大意义。 3.在帧长很长业务的情况下,一帧瓣译码时延将会大大增加。这是要综 合考虑耗费资源和译码时延。如果对译码时延要求缀高的话,就必须考虑减 小译码时延了,分块并行和双滑窗方法实现译码能有效的减小译码时延,但 是实现起来对应的复杂度和耗费的资源也会增加。 4。在这个通信系统中,调制,加嗓,解调和量化没有硬件化,使得测得 整个系统的性能很不方便。这些处理环节硬件化也是下一步的工作重点。 由于时间的原因,还有很多的工作需要进一步的深入研究。针对舀前设 计出来的编译码器和通信系统还需要完善的地方,下一步研究的重点将会集 中在以下几个方面: 1.仔细分析3GPP的内交织器算法,设计出一种简单高效,并能在较短 时间内计算出交织雷祥的FPGA实现结构,从而可以将现有的译码器改进为 译码长度为40—51 14可变的译码器,增加译码器的灵活性。 2.Turbo码在4G标准中的WIMAX,LTE,UMB系统都用应用,仅仅 是他们的生成多项式不同,认真分析他们的相同和不同的地方,设计出可配 置的兼容这几个系统的Turbo码编译码器,这样就大大增加了Turbo码应用 74 哈尔滨“1:程大学硕十学伉论文 的灵活性、实用性和竞争力。 3.为了克服在译码长度较长时,Turbo码译码器的延时较大㈣㈣。除了 从以上改进设计结构上来考虑以外,还应对译码的算法结构进行改进。滑动 窗口法在对译码性能影响不大的情况下能减小蔫通译码结构约1/2的时闻。 分块并行译码算法,根据分块数目肼,理论上可将迭代译码时间降低为原来 的1/M,但复杂度大大增加,另外并行交织器的实现也是~个需考虑的问题。 4.为了实现这个整个通信系统的硬件化,要认真考虑各数字系统的接口 和具体调制和解调的硬彳牛如何实现。 Turbo玛的译码延时始终制约着Turbo玛在高速实时通信系统中的应闵, 除了选用高性能的硬件器件,改进设计结构以外,还需要再进一步简化译码 算法,减小译码延时,寻找适合硬件实现的快速译码算法。 75 哈尔滨T程大学硕七学位论文 参考文献 【1】 C.E。Shannon.A mathematical theory of communication.Bell Systematic Technical Journal.Vol。27.July/Oct,1 948.379-423P 【2】 C.Berrou,A.Glavieux,EThitimajshima.Near Shall_11011 Limit Error Correcting Coding and Decoding:Turbo·Codes(1).Proc.ICC’93. Geneva,1 993:1064—1 070P 【3】 Branka Vucetic.TURBO CODES Principles and Application.Kluwer Academic Publ i shers.2001:299—305P 【4】 周灵军.纯整数LOG.MAP Turbo编译码器FPGA实现。蹶南交通大学 硕士学位论文.2007:卜5页 【5】 YV-SVirid,Weight distributions and bonds for Turbo-codes.Europe Trans. Telecom.1 995,6(5):543—555P 【6】 David J.C.MacKay,Good Error Correcting Codes Based on ery Spaese Matrices.IEEE Trans Oil Information Theory,1 999,45(2):399—43 1P 【7】 L.R。Bahl,J.Cocke,F.Jelinek and J.Raviv.Optimal decoding of linear codes for mimimizing symbol error rate.IEEE Trans.Inform.Theory,vol,Mar.1 974。 IT-20.284—287P 【8】 J.Hagenauer,L.Papke。Turbo-codes Decoding with the soft output Veterbi algorithm(SOVA)in Proc。IEEE Int。Symp.Information Therory (ISIT’94),Trondheim,Norway,June 1994,164P f9] Gyongsu Lee,Sunghwan Hyun,Sin—Chong,Park.Evaluation of the MAP decoder for the turbo codes of IMT-2000. IEEE VTS—Fall VTC 2000。52nd。Sept.2000:1 266—1 269P [10】 Robertson只Hoeher E VillebrunE。Optimal and sun-optimal maximum a posteriori algorithms suitable for turbo decoding.Europe Tram Telecom, 76 哈尔滨T程入学硕士学何论文 1997,8(2):1 19—125P 【1 l】谢~宁,宋文涛,罗汉文.关于前向最大后验概率(MAP)算法的研究. 上海交遴大学学报,2001年6胃,第35卷第6期,820-825页 【12】许成谦,林雪红,陈嘉兴.Turbo码LOG.MAP译码算法的一种改进算 法.燕山大学学报,2002年10月,第26卷第4期,286-300页 【13】王海青,陈文武.Turbo码研究的最新进展.江苏通信技术,2004年4 月,第20卷第2期, 28—30页 【14】Mao—Hsiu Hsu,Jhin-Fang Huang.Hign Performance and Low Complexity Max·Log-MAP Algorithm for FPGA Turbo Docoder.Advanced Communication Technology.2005,ICACT 2005。The 7m International Conference on Volume 2,21-23 Feb.2005:833~838P 【15】张路,万蕾,匡镜明.Turbo码的一种全新的SOVA译码算法.通信学报, 2002年8月,第23卷第8期,24-32页 【16】刘陈,吴成林.Turbo码译码的改进SOVA算法。南京邮电学院学报, 2002年9月,第22卷第3期,83-85页 [1 7]J.Hsu,C.Wang,A parallel decoding scheme for turbo codes.IEEE Int.Conf. on Circuits and Systems(ISCAS’98),Momerey,vot.4,June 1 998.445—448P 【1 8】Dasgupta U.,Narayanan.K.R,Parallel Decoding of Turbo Codes Using Soft Output T-algorithms.Communic越ons Letters,IEEE volume 5,Issue 8,Aug。200 1,355—354P [1 9】Li Ping.Turbo—spe codes. IEEE Trans on Communications.2004 9(5):754—759P 【20】Seokhyun Yoon,Yeheskl Bar-Ness.A Parallel MAP Algorithm for Low Latency Turbo Decoding。毽EE Commun.Letters,V01.6,No.7,2002 [2l】刘陈,吴成林.Turbo码并行译码算法的研究.南京邮电学院学 报.2002.01 PP.25—29页 【22】万科,陈庆春,范平志.一种用于数字通信差错控制的基于分块处理的 Il——~I i "T.... 哈尔滨1:程大学硕十学位论文 一——一 Illllll “—————————篇I i;;暑 并行Turbo编译码方法.031 17474.4,2003.03.17,中国发明专利 【23】Ke Wan,Qingchun Chen,Pingzhi Fan.A novel parallel turbo coding technique based 011 frame split and trellis terminating.Proceedings of the 4m Int.Con£on Parallel and Distributed Computing.Applications and Technologies(PDCAT’03),Chengdu,Aug.2003。927—930P [24】Xiujun Zhang,Ming Zhao,Shidong Zhou,Jing Wang.Parallel decoding of turbo product codes for hi曲data rate communication.Vehicular Technology Conference,2003,vol。4.2372—2375P 【25】赵丝峰,李文意,杨建华,付磊三。分块并行Turbo玛译码算法的研究。 哈尔滨工程大学学报.2004,25(2)209-212页 【26】李廷军,金慧琴,方建能,刘吴.Turbo码硬件实现探讨.现代电子技 术,2001年第9期,12一15页 [27】刘东华编著.Turbo码原理与应用技术.={艺京:电子l,Jk出版社,2004: 68-69页 【28】雷李云.Turbo码译码算法研究及其FPGA实现.哈尔滨工程大学硕士 学位论文.2006 1月 【29】D,E.Muller.Application of Boolean Algebra to Switching Circuit Design. IEEE Trans.On Computers.1954,(3):6—12P 【3§】刘东华编著。Turbo码原理与应用技术。=l艺京:电子工监出舨社,2004: 236页 [31】姜军,白春龙,张平,胡健东。WCDMA系统中Turbo码译码器的FPGA 实现——高效实现Log.MAP算法的硬件结构.北京邮电大学学 报.2002,25(1):22—26页 【32】Robertson P,Villebrun E,Hoeher P。A Comparison of Optimal and Sub·Optimal MAP Decoding Algorithms Operating in the Log Domain. Proc.IEEE ICC’95.1995:1009-1013P 【33】C.Berrou,A.Olavieux,P.Thitimajshima.Near Shannon Limit Error 78 哈尔滨H1:稗大学硕士学何论文 Correcting Coding and Decoding:Turbo—Codes(1).Proc.ICC’93. Geneva,1993:1064—1070P 【34】Yanhni Tong,Tet-Hin Yeap,Jean-Yves Chouinard。VHDL Implementation of a Turbo Decoder With Log·MAP—Based Iterative Decoding. Instrumentation and Measurement,IEEE Trans.2004,53(4):1268— 1278P 【35】 姜军,王丽芳,张平,胡健东.Turbo码译码器的定点DSP实现.北京 邮电大学学报。2001,24(1):12一16页 【36】 张瀚峰。3GPP Turbo码Log-MAP算法性能仿真及FPGA实现.北京邮 电大学硕士学位论文。2003:25-27页 【37】 王荣.TD-SCDMA终端中的Turbo译码研究.信息产业部电信科学技术 研究院硕士学位论文.2003:20-21页 【3翻樊昌信,张甫翊,徐炳祥,吴成柯.通信原理(第5舨)。函防工业出版 社,2004:195—197页 [39】Udayan Dasgupta,Costas N.Georghiades.Turbo Decoding of Quantized Data.IEEE Transactions on Communications.2002,50(1):56—64P 【40】Yanhui Tong. VHDL Implementation of Turbo Codec. Canada: University of Ottawa,2003:5 l一54P p l】Y Wu,B。D。Woemer.The Influence of Quantization and Fixed Point Arithmetic Upon The BER Performance of Turbo Codes.Proc。of Vehicular Technology Conf,1999:1638——1687P 【42】龚建伟,熊光明编著.Visual C++/Turbo C串口通信编程实践.北京: 电子工业出版社,2004:15-74页 醴3】Yanhui Tong.VHDL Implementation of Turbo Codec【dissertation]。 Canada:University of Ottawa,2003:5 1~54P [44】姜军,王丽芳,张平,胡健东.Turbo码译码器的定点DSP实现。北京 邮电大学学报.2001,24(1):12-16页 79 哈尔滨T程大学硕士学能论…文,,,,,i;;;高篇每 ,m IIII IIIII 11111 攻读硕士学位期间发表论文和取得的科研成果 [1】 赵魁峰,罗清华,焉晓贞。一种改进TURBO码译码器的FPGA设计 与实现.电子技术应用.(已录用) [2】 赵魁峰,罗清华,雷李云.一种改进Turbo码分量译码器的FPGA实 现.应用科技,2007年第6期,8—11页 [3】 赵婪峰,雷李云,罗清华.基于FPGA的Turbo译码交织器设计.信 息与电子工程,2007年第3期 ~I I ~暑I搿;i 哈尔滨T程人学硕十学位论文 ~ 致谢 在本文完成之际,谨向所有指导、帮助和关心过我的老师、同学、朋友 和亲人表示衷心的感谢! 首先要衷心的感谢我的导师赵旦峰教授,感谢赵老师这两年多来对我的 悉心教导与帮助。赵老师为我创造了良好的学习环境,在学术上悉心指导, 思想上耐心启迪,生活上关心备至。与老师严谨求学的治学态度,对事业不 倦的追求以及和蔼可亲乎易近入的品格绘我留下深深的印象,是我永远学习 的楷模。 同时,我要感谢我们实验室的师兄、师姐和各位同学,在论文工作过程 给予我的帮助和在这两年多的研究生生活中给我带来的快乐! 感谢哈尔滨工程大学的各位老师,感谢你们教育了如何做人做事,谢谢 你稍的教育和栽培。 最恁,我要感谢我的父母和家人对我的支持和鼓励,无论在我人生的任 何阶段,他们都给予了我无私的关怀和理解,使我顺利完成了学业。 81 Turbo码编译器FPGA设计与实现 作者: 学位授予单位: 罗清华 哈尔滨工程大学 本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1437458.aspx 授权使用:北京理工大学(北京理工大学),授权号:0a4fc3bd-483f-4655-b46c-9e2e0017faa7 下载时间:2010年11月14日
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人电子
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })