2024年1月23日发(作者:)
北京化工大学硕士学位论文Turbo码编码译码器的研究及其FPGA实现姓名:陈奕申请学位级别:硕士专业:计算机应用技术指导教师:聂伟20080604
摘要Turbo码编译码器的研究及其FPGA实现摘要本文以Turbo码编译码器的FPGA实现为目标,对Turbo码编译码原理和迭代译码算法的硬件语言实现进行了深入研究。本文首先在理论上对Turbo码的编译码原理进行了深入研究,分别介绍了PCCC、SCCC和HCCC三种Turbo码编码结构,然后对Turbo编码器中的几个关键问题进行了讨论。接着介绍了Turbo译码器的结构、Turbo码迭代译码思想以及两类译码算法:MAP类算法和SOVA算法,并对两种算法作了分析比较。在对Turbo码编译码原理和迭代译码算法深入理解的基础上,并综合考虑性能和复杂度,本文采用了PCCC的编码结构和SOVA译码算法来实现n【rbo编译码器。在软件设计方面,本文用VHDL语言分别实现了Tu灿编码器、基于SOVA算法的Turbo译码器以及数字化的高斯加性白噪声信道。在硬件设计方面,在综合考虑系统性能、成本和升级空间等因素的基础上,本文选择了Altera公司的CvCloneII器件来设计Turbo码编译码器的硬件平台,完成了FPGA核心模块及各个外设模块的硬件电路设计,最后绘制出了整个Turbo编译码器硬件平台的印制电路板图。关键词:Turbo码,SOVA算法,FPGAllI
摘要RESEARCHoNENCoDERANDDECoDERoFTURBoCoDESANDITSIMPLEMENTATIoNVnTHFPGAABSTRACTTheaimofthispaperistoimplementtheencoderandthedecoderofTurbocodeswithFPGA.Thetheo巧ofencodinganddecodingofTurbocodesandtheiteratiVedecodingalgorithmsarestudied,aswellashowtoimplementth锄withhardwarelanguagehasbeendiscussedinthep印er.Firstly,thepaperdiscussesthetheo巧ofencodinganddecodingofTurbocodesandintroducesthreeencodingstlllc姗.es,suchasPCCC,SCCCandHCCC,whilediscussingthecriticalfactorsoftheencodingofTurbocodes.Secondly,thepaperintroducesthedecodingstnlctureofTurbocodesandinVestigatestwofaIniliesofdecodingalgorithms:MAPalgorithmandSOVAalgorithm.ThecomparisonOfMAPalgorithmandSOVAalgorithmisalsodiscussed.Basedonthestlldyofthemeo巧ofThrbocodesandthetrade—offbetweentheperfomlancea11dthedegreeofiInplementationdimculties,thepaperad印tsPCCCencodingstnlctureandSOVAdecodingalgorithm.InatemsofsoRwaredeVelopment,aThrboencoderandTurbodecoderhavebeenimplementedinVHDL.Inaddition,anAWrGNdigitaldiscretechannelhasalsobeenimplementedforthepu巾oseVastestbenchfortheTurbocodes
北京化工大学硕士学位论文system.AccordingtotheconsiderationofperfIorI】旭nce,costandfhtureasimprovementneeds,AlteraCycloneIICIeVicehasbeenchosendesignschemefortheTurbocodestheh莉waresyst锄andthecircuitsofeachblockhasbeendesi盟ed,aswellasthePCBdesignofthesystem.KEYWoRDS:Turbocodes,SOVAalgorithm,FPGAVI
北京化工人学学位论文原创性声明北京化工大学学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。作者签名:煎是日期:2劝孑j毒j<。关于论文使用授权的说明学位论文作者完全了解北京化工大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京化工大学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。保密论文注释:本学位论文属于保密范围,在上年解密后适用本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授权书。作者签名:导师签名:纽匾墓二.日期:日期:2∞{}。占。∑‘墨兰!显:垄:£
第一章绪论第一章绪论随着社会的发展,信息的传播起着越来越重要的作用。现代通信朝着宽带化、智能化、综合化以及个人化的方向发展,传播手段不断更新,但它们都面l临着一个不可避免的问题,即如何不断降低误码率,提高通信质量。纠错编码是用来改善数字信号可靠性的一种信号处理技术,随着数字通信的发展,纠错编码技术得到迅速发展,更重要的是电子技术,特别是半导体和集成电路的发展为纠错码的研究和应用提供的物质基础。Tl曲。码作为一种高性能的信道编码,为纠错码的研究带来的新的突破。1.1数字通信系统和信道编码通信的目的是要把对方不知道的消息及时可靠地传送给对方,因此,要求一个通信系统传输消息必须有效与可靠,在数字通信中有效与可靠往往是一对矛盾【11。一个典型的数字通信系统模型如图1.1所示。图1.1种上方发送端的任务是将信源产生的信息转变成适合于信道传输的信息发送出去,而下方接收端的任务则是尽可能无差错的恢复发送端信源的信愈21。图1.1数字通信系统模型Fig.1·l111emodelofdigitalc0衄unicationsystI锄信源生成的信号是模拟信号或数字信号。如果是模拟信号,则在送入数字系统传输之前需要进行采样和量化等数字化处理。经过信源编码后得到的数字序列即为信息序列。信道编码也就是纠错编码,它是为了降低信息码元的传输误码率,提高数字通信的可靠性而采取的编码。由于信道中存在各种噪声和干扰,不可避免的引起信号在信道中的传输失真。对于数字信号来说,失真的信号会导致码元被错误判决,进而产生差错。对信源数据加以适当的保护措施可以避免或减少这种误判的发生,这种保护措施被称为差错控制技术,纠错编码是目前应用最广泛的差错控制技术。采用纠错编码以后,对传输中可能或已经出现的差错进行控制,可以使误码率降低到用户允许的程度。信道编码将无规律性或规律性较弱的数据变换为有规律性或规
北京化工大学硕士学位论文律性较强的数据,信道译码利用这种外加的规律来鉴别并纠正错误。1.2信道编码的发展ClaudeE。Sh猢on于1948年发表的著名论文“通信的数学理论【3】"奠定了信息论的理论基础。香农定理指出,只要传输的信息速率小于信道容量,则总存在使得错误概率任意小的编码方法。自Shannon的著作发表以来,人们为了在有干扰的环境下控制差错率而在设计有效的编、译码方法方面作了大量的努力,相继出现了许多信道编码方案。1950年,汉明码[4】由汉明提出,它是可以纠正一个错误的完备码。1959年霍昆格姆(Hocgcn西em)和1960年博斯(Bose)及雷·查德胡里(RayChaudh谢)分别提出了纠正多个随即错误的循环码BCH码。1960年Peterson找到了二元BCH码的第一个有效算法,从而将它由理论推向实用。1960年Reed和Solomon发现了BCH在基于素数的有限域中的一个子类RS码的构造方法,从而将分组码的理论推到了一个高峰。卷积码是1955年爱里斯(E1ias)提出的,由于它在编码过程中充分利用了前后比特的相关性,因此性能优于同等码率的分组码,并且在同等码率和相似的纠错能力下,卷积码的实现要比分组码简单。1967年viterbi提出了卷积码的一种最大似然译码算法,无论从理论还是实际应用上都大力推动了卷积码的发展【5】。此后,卷积码在各种通信系统中都得到了广泛的应用。1966年,Fomev首先提出了利用两个确定的短码来构造长码的串行级联结构,实现了质量好的长码和译码复杂度的良好结合,并采用准最佳的广义最小距离译码推导了级联码的性能界限。在目前的无线通信系统中,包括卫星通信和陆地移动通信系统,很多都采用级联码作为信道编码方案。上世纪九十年代以前,信道编码的设计一直是沿着ShaIlnon信息论的后两个要素——编码器构造和最大似然译码算法在发展。对于最大似然译码算法,由于其译码复杂度高,不适合工程实现。而viterbi提出的最大后验概率译码算法是目前真正能达到最佳译码性能的算法,它在信源等概率的条件下等效于最大似然译码算法。但是,vite概算法也只适合于约束长度较小的卷积码和短的或低纠错能力的分组码,对于长码来说,由于其运算复杂度过高,使得实时译码不可实现。针对信道编码设计的第二个要素——编码器的构造,由于长码的译码复杂度太高,而性能优异的短码能达到的传输速率R<<C,因此为了获得中、低译码复杂度的长码,Fomev在原有的短码基础上提出了串行级联码的构造。传统的串行级联码通过牺牲编码效率来提高译码性能,它与sh籼on极限之间有着不可逾越的鸿沟。实际上,Shannon信息论的第一个要素——随机化思想,才是Sh猢on信息论的精2
第一章绪论华,它在长信道编码中体现为所有码字间的码距尽可能的接近平均码距。随机化思想贯穿编码的构造与译码算法的选取原则。之所以串行级联码与Sh猢on极限总有相当一段差距,是因为其编码按照级联多个短码成为一个长码的思想来构造,而译码端却对这些短码分别独立译码。在此情况下,即使内、外码间的交织器起到随机化构造长码的作用,在译码端也没有利用这一整体随机化思想。因此,这里的交织器之起到在外码译码器输入端将突发错误离散化的作用。1.3Turbo码的提出与研究现状1.3.1Turbo码的提出尽管每一次便译码方案的更新都会更加接近香农容量,但到1990年为止,对于二进制调制,即使在很好的信道上(如AWGN信道),编码性能在理论和实际上也存在大约3dB的差异。也就是说,应用于移动电话、卫星系统和其他应用领域的实际编码所需要的能量是理论值的两倍。对于衰落信道,这个差距将会更大。在1993年的国际通信会议(ICC’93)上,法国不列颠通信大学的ClaudeBe册u教授等人提出了Tl衲。码方梨6】。Turbo码由于很好地应用了shallnon信道编码定理中的随机性编译码条件而获得了几乎接近ShallIlon理论极限的译码性能。仿真结果表明,在65536的比特交织长度下,Turbo码可以达到距sh雒non极限仅差O.7dB的优异性能。到目前为止,Tl曲。码在现有的信道编码方案中是最好的,尚未有任何一种编码方案能与其相比拟。Turbo码的出现在编码理论界引起了轰动,成为自信息论提出以来最重大的研究成果。n曲。码的提出,对信道编码领域产生了意义深远的影响。首先,Tl曲。码提供了一种在低信噪比条件下性能优异的级联编码方案和次最优的迭代译码方法;其次,它改变了研究者设计好码的思路,即从最大化码字最小距离转化为最小化低重码字个数,同时也改变了判断好码的准则,即从与截止速率比较转向了与ShallIlon理论极限进行比较;第三,Tllrbo迭代的思想为实现迭代信道估计、迭代均衡以及信号检测提供了新的思路。1.3.2Turbo码的优点TlⅡbo码在高噪声的应用环境中的性能比以往其他的信道编码要好很多,接近sha锄on的误码极限。如果采用大小为65536的交织并进行18次迭代,在归一化信噪比E/Ⅳ≥0.7招时,码率为1/2的Tl曲。码在AWGN信道上的误比特率砸尺≤lO≈,而对同样码率和结构的系统卷积码,要达到胚足≤10~,至少应满足E/Ⅳ≥7妇才可以实3
北京化工大学硕士学位论文现。n曲。码在低信噪比下所表现出近似香农限的性能,因而特别适用于对功率要求严格的情形,如卫星通信中能源极端受限,移动通信中的电池寿命指标要求较高,军事通信中要求发射信号功率尽可能低以降低被发现的概率,因此n曲。码在这些方面特别有吸引力网。1.3.3Turbo码的缺点n曲。码最大的缺点是计算量大,计算复杂。由于n曲。码译码采用了迭代的最大似然译码,中间经过多次交织和解交织,因而译码过程相当复杂。通过减小码率,选择合适的交织方式都可以提高Turbo码的纠错性能,但都将会大大增加译码的复杂性。由交织器和迭代译码造成的时延较大。Tumo码的译码有明显的时延,这一局限使n曲。码在某些对时延要求高的通信系统,如数字电话、数字广播电视等中的应用受到了限制。有所谓的地板(Floor)效应。地板效应的意思是,误码率下降到一定程度后,尽管增加迭代的次数,误码率的下降就很慢了【81。理论上的分析非常困难。至今尚未有对nlrbo码编译码方案的完整理论分析。特别是关于译码方法,已发表的论著中都只有指导性的原理介绍,在研究仿真中没有详细具体的资料可参考。1.3.4Turbo码的研究现状自从Tl曲。码提出以来,编码领域掀起了一股研究热潮,也取得了不少的成果。1995年,R.Pod锄ski等给出了计算汉明距离谱(HDs)的算法,并利用最小汉明距离对TI曲。码的性能进行了分析,分析结果与模拟结果相当接近。此后,S埘耐引用分组码的性能分析方法分析了交织器的设计与Turbo码的性能,给出了误比特率(BER)的联合界,并指出了交织器的设计原则是使Tu而。码的最小重量尽可能大【9】。Perez等从距离谱的观点分析了Turbo码在低信噪比时的优异性能,在Turbo码的编码器中,指出交织器起着“谱窄化"的作用,使得Tu而。码的小重量的码字数目减少,从而提高译码性能。P鲫眩等还通过距离谱解释了1、lrbo码译码性能中出现的误码底限现象。1996年,S.Bellede№和G.M伽torSi引入了均匀交织器的概念,给出了1、lrbo码的一个BER联合性能上界,并指出好的交织器是存在的【lol。1998年,他们对众多的RSC子码进行了研究,提出了一些性能优秀的RSC成员码【11—21。这些研究为构造优秀的T1l加码提供了参考。4
第一章绪论另外,在Tl曲。码迭代译码器方面的研究也是层出不穷。在MAP类译码算法和SoVA类译码算法的研究中,主要集中研究的问题又两类译码算法的比较、译码算法的次优简化、译码结构的局部改进、译码时延的改进、定点译码器实现时数据量化对译码性能的影响等等。TI衲。码迭代译码的思想还逐渐被应用于其他领域,诸如迭代均衡技术、迭代与多用户检测相结合、迭代与高效调制技术的结合,此外迭代译码技术还可以应用于信道编码与有记忆调制的级联系统。Turbo码本身也出现一些变体,1996年,MacKav提出了低密度校验码(LDPC)【13】。2001年,“Ping提出了“Turbo.sPc(单校验)码”,它的译码复杂度比T11rbo码低得多£14】。进以及相应的硬件实现。这些都妨碍了Tu小。码能够应用于实际生产、生活中,是№码研究的几个重要方向。1.4目前的研究表明,Turbo码急需解决的问题有:交织方法的选择、译码算法的改Turbo码的应用Turbo码的提出,标志着编码理论上的一个重大突破。它打破了信道编码界多年来徘徊不前的局面,并迅速引发了研究的热潮。现在,Turbo码已经开始在各种各样的系统中得到应用。主要的几个应用领域有以下几个方面【15.171。1.4.1Turbo码在移动通信中的应用没有几个应用环境比移动通信更需要抵抗衰落的影响。研究表明,当交织长度大于200bit时,Tllrbo码一般优于分组码和卷积码。并且,当数据率很高时,适当深度的交织也不会对时延产生明显的影响。所以,在第三代移动通信的三个标准中,都选用Tu航码作为各类非实时高速数据的纠错编码。1.4.2Turbo码在数字视频广播中的应用经过十多年的研究和发展,地面数字电视广播已进入实施阶段。目前,有三种矽rrB传输标准:美国的ATSC、欧洲的DvB.T和日本的ISDB.T。而它们系统内码纠错编码就选用卷积码、格码、Turbo码等的组合。5
北京化工大学硕士学位论文1.4.3Turbo码在长距离地面无线通信中的应用微波塔遍及乡村,它们之间的通信受到天气影响,包括衰落。因为这些链路传输高速数据,长交织的Turbo码将有效地抵抗衰落,只是增加了延时。更进一步,对于这些微波塔,特别是边远地区,节省功率非常重要,Tl曲。码非常适合这种情况。1.4.4Turbo码在卫星通信中的应用因为太空通信的传输时间通常很长,因此交织延时不是大问题。对于许多轨道靠近地球的通信卫星,节省功率也很重要,1、lrbo码也适合这种应用。许多卫星应用还具有可编程的FEC(前向纠错),有助于软件升级。1.5本文的主要工作内容本文为作者所属实验室在nlrbo码理论和应用方面的前期研究工作,分析了Turbo码编译码原理和易于硬件实现的SoVA译码算法,设计并用vHDL语言实现了在20MHz的系统工作时钟且经过3次译码迭代的条件下,帧速率约为4MHz的nlrbo码编译码器。本文在设计过程中,对各种资料加以归纳与总结,通过比较现有算法的复杂度和硬件实现特点,提出具有降低复杂度和提高编译码性能的算法改进和新的实现方案,如利用FPGA的片上存储资源存储译码过程中被反复访问和更新的分支度量、路径度量和E指数因子,从而避免了迭代过程中大量的重复计算,降低了译码延时;简化n曲。译码器的结构,将经典译码结构中的两个交织器和两个解交织器抽象为外信息存储器,并将其直接归并到sIso分量译码器中,并且把一个分量译码器中功能相同的模块进行复用,从而降低了FPGA的资源消耗;利用MATLAB产生高斯白噪声,对其量化后存入FPGA的ROM表,再通过选择器将噪声样值叠加到编码器输出的码字上,以实现对离散AWGN信道的模拟,从而实现对nlrbo码纠错能力的验证。在基于FPGA的系统硬件设计方面,本文采用性价比较高的Altera公司的cvcloneII系列FPGA作为核心芯片,详细描述了各硬件模块的设计原理,包括整个系统的组成、主要芯片的选型、FPGA核心模块及各个外围电路模块的硬件设计,最后绘制了整个n曲。编译码器硬件平台的印制电路板图。6
第二章1、Ⅱbo码基本原理的研究第二章Turbo码基本原理的研究香农理论证明,随机码是好码,但是它的译码复杂度太高。随机码理论多年来一直是作为分析与证明编码定理的主要方法,但是如何在构造码型上发挥作用却并未引起足够的重视。直到1993年,Tu而。码的发现才展现了香农随机码理论的重要内涵,为其应用研究奠定了基础【181。2.1香农限香农在其1948年发表的文章中提出了著名的香农信道编码定理:如果传输速率尺<C,C为信道容量,则一定存在某种信道编码方式和相应的解码器,可以保证可靠通信,否则若尺>C,则不存在编码方法能保证错误概率趋向于零。香农定理在证明信息速率达到信道容量可实现无差错传输时引用了3个基本条件:(1)采用随机性编译码;(2)编码长度三趋向于无穷,即分组的码组长度无限;(3)译码过程采用最大似然译码。该定理指明信道容量是有噪信道中可靠通信所允许的传输速率的上限,在信道带宽受限和信号功率受限的条件下,带限AWGN信道的信道容量C表示为c=矽bg:(¨彘j6纶风……………………·式c2。,矽为带宽,只,为信道输入带限信号的平均功率。如果传输速率尺=C,则争g:旧彘p“……………抑,最2c胛一1¨ⅣoC朋………………….式(2.3)碌.17—41‰2鹏丽一舵一L蚴………….式(2-4)C/∥_0o,,,%面。是带限AwGN信道中,传输速率墨=C时,可靠通信所需要的最小每比特信噪比,又称香农限。香农限是各种信道编码系统试图逼近的邑/Ⅳo下限【19之¨。香农信道编码定理肯定了编码方式的存在性,但并未说明找到符合要求的编码方式的途径。因此信道编码领域的研究工作很多都集中在寻找好码及探索寻找好码的科学方法。7
北京化工大学硕士学位论文考虑一种随机编码方式,将后维信息比特空间按某种随机规则映射到珂维二进制码字空间,码字的每个比特用BPSK方式调制。在映射关系集合中,共有2(枞)种可能的映射规则,每种规则对应于一种编码方式。将错误概率在整个映射关系集合上求取平均,得到平均错误概率£满足虿<2一,I(¨)………………………式(2.5)R=1一l092(1+P一岛7Ⅳ0)=1一l092(1+矿R%)bitS/dimension,BPsK调帛o……。式(2—6)其中,R被称为截止速率(cuto行rate),E为每个编码比特的能量,对于固定的码率R,R是以的单调递增函数,采用BPSK调制时,满足O≤R≤1。如果码率尺<R,当,l专∞时,平均错误概率只专0,即码长越长,纠错性能好的概率也越大。当码率R=R时,对应的以是该码率条件下可靠通信要求的一种信噪比限,将它记为以,。圪,=一去111(2卜胄一1)………………...…式(2—7)在编码映射关系集合中任取一种编码规则,该规则对应的错误概率£>口只的几率小于1/口。因而,满足式(2.5)的编码规则是大量存在的。考虑信道容量C与码率R和信噪比以之间的关系,式(2—2)可以表示为1C=c/2矿=去1092《1+2尺’圪)bit/dim饥sion……………式(2—8)R’=R/2形………………………………式(2-9)保证可靠通信时,归一化信道容量e是归一化传输速率R’=尺/2形的上限。由于推导出R的前提是采用随机编码方式和BPsK调制,显而易见e>R。当只’=q,对应的玩是该码率条件下可靠通信要求的另一种信噪比下限,将它记为‰。以2=去(22R—1)…………………………式(2.10)二』、对于AWGN信道,采用二进制输入和软判决译码,它的信道容量C为c毛毫Ep㈨枷%帮扎………埘·)舭)=击exp[_呼卜^………触2,%=√艮,铂=一√艮,仃2=去Ⅳo…………….式(2—13)当R=C,得到可靠通信要求的又一种信噪比下限,将它记为以,。儿。、九:和以,是在不同限制条件下得到的可靠通信要求的信噪比下限,3个下限的宽松程度不同。对于同样的码率尺,一般情况下,下限托:<圪,<以。。式(2一14)列出对应于码率R:1/2的3个信噪比下限:
第二章mlrbo码基本原理的研究圪l≈2.5扭,圪2≈O招,儿3≈O.2招……………式(2-14)目前,采用大约束长度卷积码或级联码的信道编码系统接近或达到下限圪。已非难事。编码技术发展的目标是,在实现复杂度可接受的前提下,不断逼近下限圪:和虼3f22-24】。2.2Turbo码编码器结构在C.Be力.ou教授和A.G1avieux教授提出的并行级联卷积码(PCCC)以后,随着研究的深入,人们提出其他结构的Turbo码,现在Turbo码的编码结构主要有:并行级联卷积码(PCCC),串行级联卷积码(SCCC)和混合级联卷积码(HCCC)【25】。PCCc编码结构2.2.1C。B锄u教授和A.GlaⅥeuX教授最初提出Tu而。码就是并行级联卷积码(PCCC),其结构如图2.1所示。∥图2—1PCCC编码器结构Fig.2-1PCCCencodings臼mctIlreTurbo码编码器主要由分量编码器、交织器以及删余矩阵和复接器组成。分量码一般选择为递归系统卷积码(RsC),也可以是分组码、非递归卷积码等,但研究表明,分量码的最佳选择是递归系统卷积码。交织器的使用是实现Turbo码近似随机编码的关键。交织器实际是一个映射函数,交织规则与随机矛盾丠作用是将输入信息序列中的比特位置进行重置,以减小分量编码器输出校验序列的相两个编码器生成的校验关性和提高码重。通常在输入信息序列较长时可以采用近似随机的映射方式,相应的序列丠交织器称为伪随机交织器。删余矩阵的作用是提高编码效率,其元素取自集合f0,1)。矩阵中每一行分别与两个分量编码器相对应,其中“0”表示相应位置上的校验比特被删除,而“l”则表示保留相应位置的校验比特,这样的特性实际上是一个多路选择开关单元。9
北京化工大学硕士学位论文2.2.2sCCC编码结构图2-2SCCC编码器结构Fig.2-2SCCC∞codingstnlcture在AwGN信道上对PCCc的性能仿真表明,当误码率随信噪比的增加下降到一定程度以后,就会出现下降缓慢甚至不再降低的情况,这就是所谓的错误平层。为解决这个问题,S.Bened甜。等人在1996年提出了串行级联卷积码SCCC,其结构图如2.2。S.Benedetto的研究表明,为了使SCCC达到比较好的性能,至少其内码要采用递归系统卷积码,外码应该选择距离特性较好的卷积码。HCCC编码结构2.2.3根据上述对PCCC和SCCC的描述,很容易想到将两种编码方案结合起来,从而既能够在低信噪比条件下获得优异的译码性能,又能有效地消除PCCC所谓的错误平层。这种综合PCCC和SCcC的编码方案称为混合级联卷积码,即HCCC。HCCC最常见的方案有两种:一是采用卷积码和SCCC并行级联的编码方案,如图2—3所示;另一个是考虑以卷积码为外码,以PCCC为内码的混合级联编码结构,如图2—4所示。图2_3HCCC编码器结构IF适.2-3HCCC即codillgstmctll豫I图2-4HCCC编码器结构IIFig.2-4HCCC锄codiIlgs仃uctllI-eIIlO
第二章1.urbo码基本原理的研究2.3Turbo码编码的几个关键问题2.3.1分量码编码器分量编码器是TuIbo码编码器中的一个重要组成部分。虽然从原则上讲,任何系统码都可作为分量码,但是由于卷积码可以采用最大后验概率(MAP)判决算法进行译码,从而能够分别实现对Turbo码各编码单元的最优迭代译码,所以通常采用递归系统卷积码(RSC)来实现。另一方面,Turbo码的发明者之一P.Tlli6ma{shima研究了递归系统卷积码和非递归卷积码的差错系数并进行了比较。他的研究表明,当信噪比较大时,非递归卷积码的误比特率性能要比递归系统卷积码的误比特率性能稍好。在信噪比较低时,递归系统卷积码的性能要比非递归卷积码的性能好。而Tllrbo码主要是在低信噪比条件下具有性能优势,因此这是选择递归系统卷积码作为TlⅡbo码分量码的一个重要原因【26】。通过改变一个非系统卷积码(NSC,NonsysteIllaticConvolutionalCode)编码器结构,可以由它派生出不同的RSC编码器。假设码率为l/行的NSC码的生成多项式为G(D)=【g。(D)g:(D)L‰(D)]…………………式(2—15)若取蜀(D)对应的抽头构成反馈环路,则相应的Rsc码的生成多项式矩阵为咖)=[1搿描L湍]....………柳6,~个码率为1/2的二进制NSC编码器,编码约束度为Ⅳ,则编码存储拱=Ⅳ一l,两个生成多项式系数分别为Gl={蜀f}和G2={&,),输入信息位为{畋),编码的两个输出为{五,K},则有五=∑glf.以一,K=∑g:,·喀一f=O鼠=o,1………………..式(2—17)&,=o,1……………………式(2一18)若取Gl对应的抽头形成反馈环路,构成一个Rsc编码器,在后时刻RSC编码器的状态&=(q,%巾L,吒十卜。),编码输出{t,圪}满足下式:五=畋……………………….式(2—19)K=∑92,·吼一;f篁O岛;=o,1…………………..式(2—20)
北京化工大学硕士学位论文嚷=畋+∑岛f·%一,扭l蜀,=o,1…………………式(2—21)例如,一个(2,1,3)NSC码的生成函数矩阵是(7,5),我们可以找出相应的RSC码。首先将八进制表示的生成函数矩阵系数转换成二进制系数,有(7)耐=(111)锄j1+D+D2,(5)删=(101)锄专1+D2。因此,生成函数矩阵为G(D)=[1+D+D2l+D2]。取Gl对应的抽头形成反馈环路,得到Rsc码的生成函数删G(D)=[1所示【明。NSC编码器和RSC编码器的结构分别如图2.5、2.6图2.SNSC编码器框图Fig.2巧DiagramofNSCeIlcoder图2石RSC编码器框图F蟾.2.6DiagramofRSCcllcod盱若两个编码器的初始状态均为OO,输入端输入相同的序列(101100),则在NSC和RSc编码器的输出端输出的序列分别为(11,10,oo,01,0l,11)和(11,01,10,10,01,oo)。从以上可以看出Rsc编码器比NsC编码器结构要简单,并且RsC编码器可以直接得到输入的信息序列,从而无需再从接收码中恢复信息序列。2.3.2交织器Tllrbo码编码器中交织器的使用是实现Tllrbo码近似随即码的关键。交织器实际上是一个映射函数,作用是将输入信息序列中的比特位置进行重置,以减小分量码输出12
第二章1、Ⅱbo码基本原理的研究校验序列的相关性和提高码重。从相关性层面上看,交织器最大可能地置乱输入信息序列的顺序,降低了输入/输出数据的相关性,使得邻近码元同时被噪声淹没的可能性交织序列与原始序列都大大减小,从而增强了抗突发噪声的能力。从码重层面上看,交织器增大了校验码重,尤其是改善了低码重输入信息序列的输出校验码重,从而增大了码的最小自由距离,提高了纠错能力。交织器的采用也有不利的一面,那就是带来了一定的编、译码延时。交织深度越大,延时也越大,但同时性能也越好。交织器的存在,使得在n曲。码中,延时与性能称为一对不可调和的矛盾。c.Ben.ou等人在Turbo码提出伊始就给出了设计性能较好的交织器的特点和基本原则:(1)通过增加交织器的长度,可以使译码性能得到提高;(2)交织器应该使输入序列尽可能地随机化,从而避免编码生成低重码字的信息序列在交织后编码仍生成低重码字,导致n帕。码的自由距离减小【28删。根据不同的设计思想,交织器大致可以分成两类:规则交织器和随机交织器。规则交织器通常按照一定的规则映射来实现交织,比较容易实现。对于长度有限的输入信息序列而言,其交织长度有限,实现完全随机是不可能的,因此基于随机性准则设计的交织器通常称为伪随机交织器。在Turbo码设计中常用的几种规则交织器和伪随机交织器如下所述。(1)分组交织器信息序列逐行写入、逐列读出,用变换公式表示为:{一t……………………….式(2.22)t,一:Ly2l行列交织器的优点是简单,但缺点也很明显。主要问题是在于其自身的周期特征使之对周期性差错的抗御能力低,最坏情况下甚至使性能下降。另外,行列交织对于大量存在的矩形对失去交织作用,使性能下降。(2)非均匀交织器按一定的规律(一般结合模运算或固定映射)实现元素位置的交换。典型的例子是Ben.ou提出的对角线交织器。设交织块是膨×膨的正方块,其中M是2的幂,M=2”(,,l>2)。交织规律为:lx=(M/2+1)·O+歹)mod膨{孝=(f+/)mod8………………….式(2-23)【y=P【孝】。(j『+1)一lmod肘其中尸【孝】是选取一组质数的固定映射,具有伪随机性。(3)伪随机交织器13
北京化工大学硕士学位论文讨论伪随机交织器之前,先对随机交织作一些说明。设交织块的长度是Ⅳ,随机交织器是将输入的序列按1/Ⅳ!的概率映射为1/Ⅳ!种可能的输出序列组合(包括与输入序列相同的那种顺序)。理论上讲,随机交织器除了统计意义上的规律外没有具体的映射规律,它使序列彻底随机化,因此是最好的交织方式。但如果真的实施随机交织,势必要将每次交织的每个位置信息通过信道传给对方,否则无法解交织,而因此传送的信息量或许比用户信息本身还多。因此,可行的方法是采用伪随机交织,只要少数几个参数就可以确定一个伪随机序列。伪随机交织的关键是伪随机序列的选取,具体实现方法是在每一帧都随机产生1ⅣⅣ不重复的Ⅳ个序号,作为交织器的地址表来决定读出的顺序。(4)比特翻转交织器比特翻转交织器要求交织块长度为2的幂次2”或2的幂次的整数倍咒×2”。其交织规律是让行(或/和列)满足比特翻转关系。若某元素行或列的坐标是(6025lL玩一。吃),则比特翻转后的坐标变为(统包一.L6160)。交织器对于Turbo码性能影响早已成为人们关注的目标。1995年,Svi打d分析了交织器设计与Tu而。码性能的关系,他考虑了用分组码作为n曲。分量码的情形,将每个码字分解成三部分,即c=(m№P№’P)。其中,m是1×后信息矢量,P是后×,.校验矩阵,聊-是由,,z随机交织而来。对于二进制而言,共有2‘种信息矢量,按矢量的重量将它们分为后组,第f组包含(后f17个矢量。svidd注意到这样的事实,若聊是属于第f组的一个矢量,交织后的聊,仍在第f组,但卯和历’尸的重量却不同,可见交织器直接影响的是川-尸的重量。因此,交织器的目的在于使Turbo码字C的最小重量尽可能大,即当聊尸的汉明重量小时,应该让研’P的重量变大,反之亦然。所以,可以定义一个扩展因子S(spreadingfactorS)来描述交织器,其定义是:凡任何小于S的非零数据序列间距在交织后一定成为大于S的非零数据序列间距;反之,大于s的非零数据序列间距在交织后一定成为小于S的非零数据序列间距,则称该交织器的扩展因子是S。扩展因子是交织器设计的重要参数。2.3.3Turbo码的删余一般情况下,使用两个RSC分量编码器的Turbo码的码率为1/3,也就是说,编码器的输出经调制进入信道的编码序列中,每三个比特中只有一个是信息码元,而另两个都是校验码元。众所周知,码率越低,信道利用率就越低。而对于现代通信而言,信道的带宽是十分宝贵的资源,所以提高码的传输效率是十分有必要的。删余就是在卷积编码器的输出端有选择地删除一些冗余的校验位以达到提高编码效率的目的,被删除的码元的个数决定了最终的编码速率。删余的主要好处是利用相同的编码器,通过改变删除码元的数目就能实现很大范围内的不同码率。删余通常是14
第二章1.mbo码基本原理的研究按周期、有规律地进行的。以一个码率为1/刀的码为母本,并定义一个删余周期p。在这样一个周期里,共有p个信息比特输入到编码器,经编码后得到n·p个编码比特。与以·p个编码比特相联系的是一个刀×p的删余矩阵尸,具有如下形式:P=lf,暑-K巳1MoM|...…………………式(2-24)L乞-L乞J显然,矩阵P的每一列对应输入lbit信息时,则编出刀比特的码组。尸的矩阵元素取值。或l,当弓=1时,对应位置上的编码比特被允许作为输出比特发送到对端;当蜀=o时,对应位置虽然仍有编码比特,但不作为输出比特发送到对端,从传输角度看,这些比特被删除了。如果在刀.p个编码比特中删除Ⅳ个比特,等效于在删余矩阵的以·p个元素中有Ⅳ个o,则码率为R=去,这里Ⅳ可取o~(刀一1)·p一1的任,Z矽一』V意整数。若Turbo码编码器输入信息序列为4=(吐,吐,L,丸),两个Rsc分量编码器的输出分别为瓦=(乃。,M:,L,咒Ⅳ)和艺。=(儿,,%,L,儿Ⅳ)。如果不经过删余,则编码器的输出序列为c=(矗。,乃,,兑。,d:,M:,魄:,L),码率为1/3;如果采用硎余技术且删余矩阵的形式为尸=(::),则编码器的输出序列为c--(盔,y舻攻,y::,d;,咒,,以,‰,L),它依次轮流取Rscl的奇比特和RSc2的偶比特作为校验比特,码率为l/2。n曲。码译码器接收序列为R,它是编码器输出序列C’经信道传输得到的,由于噪声的存在,R与c·有可能不相同。在译码之前首先要进行数据的分离,即与发送端复合逆向功能,将数据流还原成d。’、瑶和珐三路信息。被删余的位用。来代替。2.3.4编码格图结束方案Turbo码中由于使用了交织器,使得编码的时候采取帧处理的方式。对每帧信息比特编码时,编码器的初始状态和终止状态会不相同。在Tllrbo码的一些重要译码算法中,都要根据编码器的初始状态和终止状态来初始化一些量。在传统的非递归卷积码中。很容易将其初始状态和终止状态置为一已知状态,往往置为零状态,称为栅格终止或者归零处理。Nsc中栅格的终止是通过在输入信息序列之后再额外输入聊(编码存储)个零比特,而使得卷积码编码器最终回到全零状态。在Rsc中,由于反馈15
北京化工大学硕士学位论文的存在,仅仅靠输入朋个零比特往往达不到终止格图的目的。而且由于交织器的存在,将两个分量编码器同时归零十分困难,因为将RSCl终止的终止比特要经过交织器的重新排序才进入RSC2,不能保证RSC2的归零。如果要将RSC2归零,那么需要产生另外一组终止比特,这给系统带来了新的复杂度。一般来讲,n曲。码的结束方案有四种情况:(1)两个RsC编码器都不使用结尾比特,以译码性能的降低为代价;(2)两个RSC编码器各自使用不同的结尾比特,以译码复杂度为代价;(3)RSCl使用结尾比特,RSC2不使用结尾比特,这是性能与复杂度之间的一个折衷方案;(4)两个Rsc编码器在使用某交织器的前提下使用同一结尾比特,这适用于特殊的编码和交织方式。方案(2)有结尾比特少和性能好的优点,通常使用此种方案。文献f16仲提出的将Rsc归零的方法现在已成为了典型的归零方案。以生成矩阵为(7,5)的递归系统卷积分量码格图归零为例,如图2.7所示。对输入的信息序列进行编码的时候,开关闭合到A位置,输出信息位和校验位;对信息序列编码完毕后,开关闭合到B位置,编码器通过移位寄存器的反馈信息产生聊(寄存器个数,此为2)比特附加信息进行归零。图2.7RSC典型归零方案Fig.2-7Aclassiczeroc1勘渤gschemeofRSC2.4Turbo码的译码思想2.4.1软判决译码与硬判决译码在差错控制编码方面的第一个量化的飞跃在于系统工程师意识到将解调和译码分离会带来损失。传统通信系统的最佳接收机中解调器和译码器是独立的两个部分。在处理接收信号的过程中,解调器首先对调制器输入符号做最佳判决,然后将硬判决结果(0,1)送给译码器;译码器再对编码器输入消息做最佳判决,纠正解调器可能发生的错误判决,这是硬判决译码的思想p¨。采用将编码和调制结合的方法,解调器就不会将一些错误传递到译码器。即解调器对输出不进行判决,送到译码器的是判决符号可能的概率值或未量化输出而非硬判16
第二章1’Wbo码基本原理的研究决值,则译码器就可以利用这些信息与编码信息综合做出判决,从而提高系统性能,这就是软判决译码的基本思想。研究表明,在接收机中解调器采用软输出可以得到比硬输出高2招左右的附加编码增益【321。在进行硬判决译码时,采用码字间汉明距离最大化准则;而对于软判决译码,则是几何距离(欧几里德距离)最大化准则。因此,软判决译码即是针对信号空间进行译码。2-4.2Turbo码译码器结构针对前面所给出的PCCC、SCCC和HCcC三种不同的编码结构,其对应的译码结构也有三种。但研究最广且应用最多的译码结构是PCCC译码结构,因此本文讨论的也是PCCC译码结构。假定编码之后采用BPsK调制,发射机把逻辑值{o,1}分别映射为电压{一1,l},然后通过加性高斯白噪声信道传输,送给接收机。接收机测量的是含高斯随机噪声的接收电压序列。最终,信息序列{茸)映射为{%),校验序列{圪)和{匕)删余后得到的校验序列{乓}映射为{儿),即映射指经过信道传输后引入噪声的信息序列X,Y序列是经过编码器的编码后的序列赡=(2jI一1)+‘……………………………式(2—25)儿2(2K一1)+吼……………………………式(2—26_)其中,不和玑是拥有相同方差且相互独立的高斯白噪声。同时将删余的比特位填上虚拟比特(即不影响译码判决的值,如o),{儿}可分解为{儿}和{夕:。}。图2.8PCCC译码器结构F蟾.2-8PCcCdecodings缸uctll他译码器工作原理为:将信息序列五以及校验序列M。送入分量译码器D1,D1生成此阶段原始数据的最大似然估计,并将其中的外信息序列彤。按发端交织器的扰序方式进行扰序,扰序后的估计互。和校验比特乃。一起送给译码器D2。如果D1纠错成功的话,送给D2的码流中所包含的误码数将少于送给D1的。D2处理送来的数据,产生对原始数据进一步精细的最大似然估计,如果没有更进~步的精确要求,则通过解交织器使之恢复原来的排列顺序,把最后的输出数据传给17
北京化工大学硕士学位论文译码器1和译码器2的外信息趋于稳定丆似然硬判决器,产生最终的解码输出。如果需要进一步减少误码数量,就将外信息%。经比渐进值逼近于对整个过解交织器进行扰序,作为反馈输入至译码器D1,再次重复以上过程进行软判决,码字的最大似然译码丆直至最后译码输出性能不再有提高或达到所要求的迭代次数才停止迭代。当然,每次然后对此似然值L进行硬迭代都增加相当大的延时和计算复杂度,但是它也有效地减少了误码数量,特别是在判决丆即可得到信息序前几次迭代中。列{dk}的每一比特的最编码器并行处理原始数据码流,而译码器在两个阶段中是串行处理数据的。两个佳估值。分量译码器D1、D2级联构成了n曲。码译码器,如图2.8。一个分量译码器的判决可靠性信息对另一分量译码器也是有用的,因为两个码流的奇偶校验比特实际上是对y1,y2同一组数据得出的,只不过比特顺序排列作了改变。因此D1、D2实际上是在解同一问题,但观察的视图不同。这样,Dl、D2就可以用迭代的方式交换可靠性信息来改进各自的译码结果。要求就是把码流内容按照各自工作的需要重新排列顺序,然后在彼此之间交换可靠性码流。使得一个分量译码器对某一特定比特做出的判决,例如强烈认为该比特为“1",这一信息能够对另一分量译码器对相同比特的判决产生影响。每个分量译码器不仅有其自己的“观点”,还得到了外界观点的帮助来对每一比特做出判决【331。2.5Turbo码的译码算法Tll灿码有两类常用的译码算法:最大后验概率(MAP)类译码算法和软输出维特比(sOVA)类译码算法。MAP类算法一般比SoVA类算法性能要好,但是sOVA类算法在计算复杂度和硬件实现复杂度上要优于MAP类算法【34】。2.5.1译码准则译码器的基本任务就是根据一套译码规则,由接收序列尺给出与发送的信息序列C最接近的估计序列C’。当C=C’时,译码器译码正确。常用的译码准则有两种:最大似然准则(ML)和最大后验概率准则(MAP)。根据两种不同的准则衍生出两种不同的译码算法:SOVA类算法和MAP类算法。最大后验概率准则:设编码序列为c,接收序列为月,接收端顺理成章地在所有可能的码序列中寻找条件概率最大的一个,认为它是最可能的发送序列。即求满足P(c’IR1被称为后验概率,因而,这种准则被称为最大后验概率准则。最大似然准则:根据贝叶斯公式,有P(C,J舻警………………抑7)若假设每个码字的概率P(c’)均相同,且P(尺)与译码算法无关,则求式(2.27)
第二章1-urbo码基本原理的研究的最大值转化为求P(RIc’)的最大值。P(RIc’)被称为似然函数,因而这种准则被称为最大似然准则【35】。2.5.2软输入软输出译码无论是MAP译码还是SoVA译码,n【rbo码的分量码都采用软输入软输出(SISO,SofIhlSofI咖)译码器,即输入输出均为软信息,根据输入的软(先验概率)信息进行译码处理并输出软(后验概率)信息。对软信息这一概念有两种解释:(1)假设输出比特为l的概率是尸(1)=o.7,而为。的概率是尸(o)=o.3,这些概率信息即称为软信息。由于尸(1)>P(01,故可判定此输出比特为l。(2)另一种软信息定义为信道输出的非量化模拟值。假设在O、l之间,若信道输出值为0.753,可以判定此输出比特为1的可能性要大于判定此输出比特为O的可能性。在实际应用中为硬件实现方便,通常将信道输出的模拟值进行一定级数(通常大于2)的量化。例如信道输出的模拟量经过刖D变换的量化输出值即代表了信道输出为1和为O的概率,用3个比特来代表O:7级量化电平,如果输出实数值靠近第7级量化电平,即可判定此输出信息为1的概率很高,而为0的概率却很低,反之亦然。这两种解释的实质是一样的,都利用了信道提供的传输可靠性信息,即信息的先验概率。利用这种软信息进行译码判决的技术即称为软判决技术,软信息能够为译码器提供由信道产生的附加可靠性信息。以二进制信息传输为例,如果在解调器输出端即对解调信息进行判决为O或为l,并将此判决送给译码器,这就是硬判决。硬判决没有充分利用信道提供的可靠性信息,而是将其完全忽略,故其译码性能远不如软判决译码【361。在译码输出端也存在软信息问题,Tu【rbo码的译码器包含两个或多个分量译码器,各分量译码器之间通过译码信息的传递来进行级联码的译码。分量译码器分别输出软信息,提供给另一个分量译码器作为输入软信息,通过软信息的相互传递而使译码性能得以提高。2.5.3MAP算法本文所实现的Turbo码译码器采用的是sOVA算法,因此对于MAP类算法只作简要介绍,而省去了其繁琐的推导过程。MAP算法于1974年由L.R.Bahl等提出,由于其计算复杂度高于Viterbi算法而在高信噪比下性能与之相当,故一直未受到重视,直到C.BenDu等首次提出n曲。码并将其用于Turbo译码而获得优越的译码性能后,人们开始对MAP算法产生了浓厚的兴趣。MAP算法是一种通过经验与归纳由收码推测发码的方法,它的主要特点是:19
北京化工大学硕士学位论文(1)MAP算法本身就是一种SISO算法,其所给出的对数似然函数比(LLR,L09.Lil(elihoodRatio)是最为常用的一种软信息,迭代方便,易于实现软判决译码;(2)不同于最大似然译码算法仅能给出最可能传输的信息序列,MAP算法能在已知接收序列的条件下给出最可能传输的信息比特;(3)MAP算法能在较低的误码率条件下仍能获得较高的编码增益。MAP算法计算量大,尤其是其中存在的大量指数和乘法运算,不利于实时硬件实现且大大降低了MAP算法的实用价值。为了降低MAP算法的运算复杂度,人们想到将MAP算法中的运算变换到对数域上来进行,即把MAP算法中的变量都转化为对数的形式,从而把乘法运算转换为加法运算,而加法运算可以用一次求最大值运算加上一次查表来计算。同时译码器的输入输出相应地修正为对数似然比形式,再把得到的算法进行必要的修改就得到了对数域上的MAP算法一Log.MAP算法。为了进一步降低运算量,进而出现了使似然比加法完全变成求最大值运算的MAx.Log-MAP算法。但是,随着计算量的降低也势必导致了MAP类算法的劣化和性能的损失。2.5.4SOVA算法对于卷积码,Viterbi算法是最优的最大似然译码方法,译码输出为卷积码的最优估计序列。但对于属于级联卷积码的nlrbo码而言,传统的Ⅵterbi算法存在两个缺陷:首先,一个分量译码器输出中存在的突发错误会影响另一个分量译码器的译码性能,从而使级联码的性能下降。其次,无论是软判决Ⅵterbi算法还是硬判决Ⅵterbi算法,其译码输出均为硬判决信息,若一个分量码采用Viterbi算法译码,则另一个分量译码器只能以硬判决结果作为输入,无法实现软判决译码,从而性能会有所下降。因此,如果Ⅵterbi译码器能够提供软信息输出,则可以弥补上述两个缺陷,并且可以通过在分量译码器之间软信息的交换使级联码的性能大大提高。为此,需要在传统的Viterbi算法上进行修正,使之提供软信息输出。1989年Hagellauer对传统的Ⅵterbi算法进行了改进【22】,提出了软输出Ⅵterbi算法,记做sovA(SoRmtputⅥterbiAlgorithm)。改进后的算法不仅能得出最大似然路径,而且能计算出每个信息比特的后验概率,这样就使Viterbi算法可以级联使用了。SoVA算法对传统的Ⅵterbi算法做了两点改进:首先,在计算路径的度量时,考虑了先验信息,并且让先验信息在两个分量译码器之间传递;其次,算法可以以后验概率的形式为每一个信息比特提供软输出信息。SOVA算法的译码过程就是在接收序列R的控制下,在码的格图上走编码器走过的路径。对于某一状态,SOvA算法选择一条幸存路径,这是通过计算最小路径度量(或最大相关度量)而得到的。同时,该状态还对应着一条待选路径,即竞争路径。对于幸存路径,将其度量标为M.,竞争路径的度量标为M,。于是,幸存路径选错的
第二章T1lrbo码基本原理的研究概率为:己2j乏丽2赤2毒……………式(2-28)耻者茜=d‰=击……………式(2-28,式中,△=鸠一M。≥O。最代表传输不可靠度。于是在P个路径1(幸存路径)与路径2(竞争路径)的信息比特不等的位置处,其错误概率为匕。已存储路径的错误概率可做如下更新:幸存路径分卜露(1一&)+(1一露)乞,歹=五,五,L,丘(“9’≠“;2’)…….式(2—29)式中,毋表示已存储路径1的错误概率,对数似然比可以写成:三,:lg!二丝o≤三,≤∞三,=lg—‘卫0≤三,≤∞…………………。式(2.30)…………………。式(2—30)pj结合式(2.28)、(2.29)和(2.30)可得:t卜北,△)=吉tn筹…………韶3·)式中口的引入是为了防止信噪比的增加而产生的溢出。式(2.31)可近似写为:厂(t,△)=lIlin(t,舍)…………….式(2_32)可以看到,SOVA算法可以分为以下几个步骤来完成:(1)计算路径度量和度量差;(2)更新可靠性度量;(3)减去内信息,得到下一步所需外信息。以上几步完成后,将所得到的外信息输入到下一个SoVA译码器中,进行下一步迭代,这就是SOVA算法迭代译码的过程。SOvA算法的运算量较小,它的目的很明确,就是要寻找最大似然路径。它所比较的两条路径,一条是最大似然路径,但另一条不一定是最具竞争力路径,而是一条给出判决不同于最大似然路径的且会重合于最大似然路径的路径,那些比这更具有竞争力的路径可能在译码过程中被丢弃了,在迭代译码过程中,这样不利于后续比特的译码,这也正是SOVA的译码增益小于MAP译码的原因。2.5.5MP算法与sovA算法的复杂度比较相同点:MAP算法和SOVA算法都接收信道传来的软判决信息和信息比特的先验信息作为译码输入,译码输出不仅可以给出判决,而且也可以给出的后验概率LLR值,可以统称它们为SISO(SoRIIlSoRout)算法。2l
北京化工大学硕士学位论文不同点:表2.1列出了几种SISO译码算法的计算量对比。表2.11Ⅵb0码译码算法复杂度比较、\比较加法乘法Table2一lTheⅣ【APc咖p撕sonofTurbodecodingalgori缸nsLog-MAP5×2m一2MAX-Log—MAP5×2”一2SoVA03(所+1)+2”2×2”+884×2”15×2“+986×2”+110×2”+118查表O5×2“一2OO可见,在计算复杂度方面,MAP的乘法运算最多,因此它最复杂。另外三种算法的乘法运算是相当的,但所需的加法运算不同,当朋>4以后,SovA的计算是最简单的。MAP算法是为每个符号计算一个后验概率,并选择符号差错概率最小的作为输出,这种算法对每一时刻都要考虑所有路径,因此比较复杂,实时性较差,因而在实际中人们只是将标准MAP算法作为~种参考标准。sOvA算法是基于序列的译码算法,算法中主要就是加法运算,然后通过比较进行选择。由于其延迟与计算量都较低,比较适用于工程实现中。2.5.6Turbo码性能的物理解释C.Ben.ou在1993年提出Turbo码时给出的是性能的模拟结果,而不是理论的分析。此后掀起了Turbo码的研究热潮,陆续有文章在一定程度上对TlⅡbo码的机理进行理论的解释,但直至目前,对TU【rbo码的理论研究还远远不够。n曲。码的性能由码结构、最小距离及距离谱等诸多因素决定,在计算误比特率时,还与码字中包含的信息比特数有关。对于Tu【rbo码,虽然理论上的定量分析还远没有弄清,但粗略的物理解释还是有一些研究的。已经知道,一种编码的误码性能取决于其码距,A和B两个码字距离越远,把B错译为A的概率越小。Tllrbo码采用并行结构的级联系统码,两个码分别对交织前后的信息序列进行编码,得到相应的校验序列。显然,影响误码性能的主要是低重量的信息序列编码后的校验码重。对于不同的低重量信息序列,经过一次分量编码(卷积码)后的校验重量是不同的,而单靠卷积码的码重是不足以提供接近极限的译码性能的。但若大部分具有低校验重量的信息序列经交织后再次编码可获得较高的校验重量,则从总体来看,大部分码字都有较大
第二章1mbo码基本原理的研究的码重,从而提高误码性能。也就是说,尽管从某个分量码来看,信息序列A和B的编码距离较近,但只要它们在另一个分量码中有较大的距离,还是能很容易地区分它们。软输出迭代译码算法正好符合这种思路,在一个分量码译码时,如果遇到它与两个序列A和B的似然度相当或相差不远,软输出算法将对A和B中不同的位给出一个模糊输出,留待另一个分量码译码算法去处理。从上述物理解释可直接得到一个重要结论:用递归码做分量码要优于非递归码,在非递归码的低重量信息序列编码中,单错事件(即错误路径从离开到返回正确路径只有一个信息位错)的概率较大,而第一层码中的单错事件经交织后也会在第二层码中以很大的概率产生单错事件。递归码不会发生单错事件,其双错事件的两个错码经交织后会离得很远,从而产生很大的校验位错误,因而从总的码重分布来看更集中于平均码重附近。从最小距离的角度看,乳rbo码的最小距离应是各分量码最小距离之和。但在有交织器存在的情况下,小于扩展因子S的低重量序列在交织后可大于S,因而使最小距离变大,这种趋势随S而增大。n曲。码的误比特率可以用下式估计:咒s≯Q㈡,\一一/式中,哆是差错码字的距离,Q(x)=去}一譬也是高斯差错概率,数,勺是所有距离为_,的差错码字中包含的差错比特之和。2.6本章小结本章通过介绍香农定理和香农限,引出性能接近香农限的nlrbo码。在详细阐述和分析了n曲。码编码器和译码器结构的基础上,讨论了诸如分量码、交织器、删余和编码格图结束方案等Turbo编码的几个关键问题,而后介绍了软判决译码思想以及MAP和SOVA两类译码算法,并进行了算法复杂度比较,最后给出了Turbo码性能的物理解释,得到如下结论:Turbo码通过在编码器中引入交织器,使码字具有了近似随机的特性;通过分量码的级联实现了通过短码构造长码;接收端虽然采用次最优的迭代算法,但分量码采用的是最优的最大后验概率算法,同时采用迭代过程可使译码接近最大似然译码。.
第三章1'urbo码编译码器的FPGA实现第三章Turbo码编译码器的FPGA实现本章完成了1ru而。码编译码器的设计及其FPGA实现。整个电路设计采用Ⅵ{DL硬件描述语言作为设计输入,在通过功能仿真以及综合、优化之后,最终在Altera公司EP2C20Q240C8FPGA器件上实现。3.1Turbo码编码器的实现‘3圳3,1.1伪随机序歹Il发生器的实现伪随机序列发生器在本文中的作用是为Tu椭。码编码器提供原始信息序列,并且与Turbo译码器的译码输出序列进行对照以判断译码的正确性。本文采用移位寄存器来实现伪随机序列发生器。为了使伪随机序列的重复周期尽可能长,采用了9个D触发器(分剐记为R啦R8)级联组成的移位寄存器,整个伪随机序列的输出是第9个D触发器R8的输出再取反相。为了使伪随机序列发生器能连续产生输出比特,将R4和R8的输出经过异或之后再送入R0,其结构如图3.1所示。图3.1伪随机序列发生器结构图Fjg.3_1Diagramof瑚domsequenceg蜘erator结合以上分析,对如图3.1所示结构的伪随机序列发生器用Ⅵ{DL语言予以实现。本文实现的Turb0码的帧长度预设为4,因此作为信息源的伪随枫序列发生器也要以每4bit为一帧来输出数据。定义一个数据宽度为9bit的数组来实现移位寄存器,并且定义~个数据宽度为4bit的数组作为输出缓存和一个1bit的变量来保存异或的结果。在QuanllsII环境下编译生成的模块如图3.2所示,其中clk为时钟输入端,-eset为复位信号输入端。pout为并行伪随机序列输出端,sout为串行伪随机序列输出端。
北京化工大学硕士学位论文图3-2伪随机序列发生器模块Fig.3-2Blockdesi班offandomsequeIlcegcneral|or3.1.2RSC编码器的实现RSc编码器在n曲。编码器中的作用是进行分量编码,并生成T1】fbo码的校验信息序列。本文采用具有两个编码状态(sO、s1)的Rsc编码器作为分量编码器,其结构图如图3。3所示。图3-3两状态RSC编码器结构Fig.3.3Di雒即mofRSCencoderwitlltwostat懿该RSC编码器的输入序列为伪随机序列c,经编码后分别输出与序列c相同的系统位序列vO和校验位序列订,因此其编码效率为l/2。栅格图是描述编码器形为的重要工具,在nlrbo译码的时候将以栅格图为依据进行迭代译码,因此有必要在此给出该RSC编码器对应的栅格图,如图3.4所示。肌//气岩々‰岩7即、\/、、/、、/,,\、/、、,,\、/,/,^、,^、/j‘、、、11V/、、sof0t1厕—◆-币r■o可矿■卜珂一l吵,1吵,、\1吵,于lZ2,3,4图3-4两状态RSC编码栅格图Fi93-4TrellisdiagramofRSCwiⅡltwostat懿栅格图中的每个节点对应编码状态SO或Sl,每个分支代表状态的转移,从f0到
第三章Turbo码编译码器的FPGA实现f4的时间长度正好是一帧数据(4bits)输入到编码器并且经过编码得到输出序列,实线分支代表输入为O,虚线分支代表输入为l。需要注意的是,编码的初始状态必须为SO。由于Tl衲。编码器中的两个RSC分量编码器的结构完全相同,因此在设计中将两个RSC分量编码器整合到一个模块中,以达到简化设计的目的。主要设计思想是:先根据RSC编码原理和输入序列的值计算得到相应的校验序列v1和v2,同时保持系统位序列们不变,再同步输出Vo(系统位)、讥(校验位1)和1,2(校验位2)。在QIlanllsII6.0环境下分析综合后得到的RSC编码器模块如图3.5所示。i‘诫y………………………………”;图3-SRSC编码器模块Fig.3—5Blockd%i印ofRSC锄coder其中,clk为时钟输入端;e11为使能输入端,为1时该模块工作;read皿n为接收数据使能端,为1时可以接收数据;ori西Ilin为原始数据输入端;iIlt嘶n为经过交织后的数据输入端;ready为数据输出使能信号,为1时可以向下一级模块输出编码之后的数据;v0为系统序列输出端;vl和V2分别为校验位l和校验位2序列输出端。3.1.3交织器的实现如前所述,交织器是Turbo码编译码器中不可缺少的重要模块,是实现Tu曲。码近似随即码的关键。由于本文所设计的Turbo码的交织长度相对较小,为4比特,因此行列交织和伪随机交织的效果区别不大。为便于实现,本文选择行列交织方式来实现所需的交织器。该交织器的结构如图3—6所示,其映射关系为:GClGc3岭GCoGq。%入图3石交织器结构Fi93I-6Dia舯mofintedeaVer
北京化工大学硕士学位论文该模块在Qu疵sII6.O环境下的设计结果如图3.7所示,其中clk为时钟输入端;ell为使能输入端,为1时该模块正常工作;datain为数据输入端;ready为数据输出使能信号,为1时可以向下一级模块输出数据;抵ut为经过交织之后的数据输出端;ori西nout为未经交织处理的原始数据输出端。图3-7交织器模块Fi93—7Blockdesignofintedeaver3.1.4Turbo码编码器的整体实现由于本文所设计的1ru曲。码的编码效率为1/3,所以无需采用删余矩阵来删除某些校验位。因此,在设计好伪随机序列发生器、RSC分量编码器和交织器模块后,便可以将这些模块整合在一起,构成功能完整的Turbo码编码器,其结构如图3.8所示。1,O图3.8F蟾.3—81/3码率Tum码编码器整体结构ofTh北Io髓eoderwi出codera把ofl/3Dia髫卸【n从伪随机序列发生器产生的原始信息c被分成三路,一路直接送到Turbo编码器的输出端形成系统位序列vO,第二路送入RSC编码器1产生校验位序列讲,第三路则先经过交织器重新排序后再送入RSC编码器2产生校验位序列v2。值得注意的是,为了在后续处理中精确地捕获特定的系统比特以及与之相对应的两个校验比特,在设计中保证了vO、讥和1,2三个信息序列的同步。在QuanIlsII6.0环境下设计出的该1ru而。码编码器的内部结构如图3.9所示,其集成模块如图3.10所示。
第三章1hbo码编译码器的FPGA实现嚆!●r—_、mⅡ三:o喇∞’钯■M;....l—L—严訇比=尊一.·…。。匕::==-.Pup.川l“匕)-嘲量_i_·口弹弘;‘’醐乙暮熊譬……董i墨………..至饿一.I.!二·tii由i….yf二J..!:::::::::::::::::::::::出r岫_’●∞CIOM;Bml”广—1m时y‘‘”’”1^畸■州—咖p.埘蝴p.埘vIp研—掣业Lo’’p∞_乎皿皿—亡:)v2p·川‘潞衙~。一菇萄r——一;;i.,.....,..........)∽嘶‘÷h-hp明V2p.Jl图3.9T1】rbo码编码器内部结构隐.3-9Illt锄alb10ckdeSi印ofl'Wb0铋codcr图3.10Tu炯码编码器集成模块desi印of,IⅥboe11coderFjg.3-10Integratedblock其中,clk为时钟输入端;reset为复位信号输入端,为1时1、lrbo码编码器被复位;eIl为使能信号输入端,为l时n曲。码编码器正常工作;ready为数据输出使能信号,为l时可向下一级模块输出数据;e11cDone为数据输出停止信号;V0、vl和V2分别为系统位序列输出端、第一校验位序列输出端和第二校验位序列输出端。3.2高斯加性白噪声信道的数字化实现№伽为了模拟通信信道给Tllrbo编码器输出的序列造成的失真,以测试Turbo译码器对失真信号的纠错能力,因此本文实现了一个数字化的高斯加性白噪声信道来模拟已编码序列通过有噪信道的过程。选择高斯加性白噪声的原因是它是数字通信中对信号影响程度最大的噪声,并且高斯加性白噪声是接收机中由电子的随机运动而产生的热噪声的近似模型。3.2.1高斯加性白噪声描述高斯加性白噪声的两个重要特性是白噪声性和高斯性。白噪声性指的是在特定的频带范围内噪声具有连续且恒定不变的频谱,也就是说其功率普密度Ⅳ0/2=仃2为一常数,如图3.11所示。
北京化工大学硕士学位论文心^t—rJJIⅣo2图3.1l高斯加性白噪声的功率谱密度F碴.3一llPower印ec加mdellsit)r血nctionofAW(烈高斯性是指噪声样值的幅值满足高斯分布,它可以通过均值为零,标准差为仃的高斯随机过程来产生,即满足概率密度函数/(x)=击P一刍,其概率密度函数如图3.12所示。/f石》。/’‘\一~图3.12零均值高斯分布概率密度函数Fig.3一12Gaussi锄probabilit),也msity凡nctionof黜plitllde3.2.2高斯加性白噪声信道的数字化实现由于通信信道通常都是模拟的,因此很难用FPGA这样的数字器件来实现。为了实现数字化的高斯加性白噪声信道,本文采用了三个关键的步骤:产生高斯白噪声样值;在FPGA中存储噪声样值;将噪声样值叠加到编码输出序列上。需要注意的是,在将噪声样值叠加到编码输出序列上之前,需要先将Tu而。码编码器输出的编码序列进行BPSK变换。进行BPsK变换的目的是将单极性码变换成双极性码,即将编码输出的比特“O"变换为“一1",而编码输出的比特“1”保持不变。由于在nIrbo译码器中的判决电平为O,因此在这里将编码输出序列进行BPSK变换会有利于后续译码器的处理。本文所实现的高斯加性白噪声信道的结构图如图3.13所示。
第三章Turbo码编译码器的FPGA实现甩D口2N妇LUT刀l、刀2硼。r讲、.扣…’BPsK。卅。/一、’\,.07一7~。。≥。、,.‘Ⅵ一,.厂l,-2忱。r,。f’、7\,图3.13高斯加性白噪声信道结构Fi93-13Dia笋锄ofAWGN其中,盯2为噪声放大系数,仃2乘以噪声样值的原始值即得到输出噪声咒0:咒2,因此调整盯2的大小即可调整信道的信噪比。v0:v2是Tufbo编码器输出的三个编码序列,它们经过BPSK变换之后得到工O:x2,再叠加噪声之后便得到译码器接收端的输入信号rO:r2。下面分别阐述:产生高斯白噪声样值;在FPGA中存储噪声样值;将噪声样值叠加到编码输出序列上这三个关键步骤。(1)产生高颠噪声样值本文采用MATL惦中的系统函数来产生高斯白噪声样值,所用的系统函数为x=咿(聊,力,p,办哆p,p口M圯r缈,D“妒“fOpP)型选择参数(实数或复数)。本文对各个参数的预设为……………式(3—1)即咖P为噪声功率单位选择参数(分贝瓦或瓦),伽枷坳P为输出噪声样值的类X=啷(4096,1,0.16,l,’砌绷,.’,’删,f)声样值为实数形式。…………….式(3—2)其中,册,,z为存储噪声样值的矩阵大小,p为噪声功率,f唧为负载阻抗,执行结果产生了4096个功率为O.16瓦、负载阻抗为1欧姆的高斯白噪声,且噪(2)在FPGA中存储噪声样值用MATLAB生成噪声样值之后,便需要将其存入FPGA的片上ROM。由于原始噪声样值为带有4位小数的有符号浮点数,这样的数据不便于在FPGA中进行处理,因此有必要在存储之前对原始噪声样值进行一定的预处理,以使其便于FPGA处理。预处理的具体方法是:因为小数对噪声样值的影响不大,将十分位之后的数据舍去并且四舍五入到十分位上,然后将所得数据都乘以常数100,这样就将原始噪声样值变换成了有符号的整数。在后面将噪声样值读出来参与运算之前,对其除以常数100即可得到原始噪声样值的近似值。噪声样值预处理的C++代码如下:确nchlde<ios缸eam>
北京化工大学硕士学位论文螨nclude<fIs缸.e锄>璐ingn锄espacestd;intmainO{f§骶amf1,也;f1.opell(’’source.饮t”,ios::in);doubledata;f2.0pell(”result.txt¨,ios::out);while(n>>data){data宰=100;if【data>O){i坟int(data)%lO>4)也<<int(data/lO+1)<<eIldl;elseQ<<int(data/10)<<eIldl;)else{i坟int(data)%1O<一4)亿<《nt(data/10-1)<<e11dl;dse亿<<int(data/10)<<endl;))cout<<”OK’’<<endl;syst锄(”pause”);rc由】rn1;)经过预处理后,将4096个噪声样值复制到存储器初始化文件(.mif文件)中,本文对每个噪声样值用一个16位的二进制数来存放,以保证后续译码计算中各种软信息变量不会溢出。因此,4096个16位的噪声样值总共占用了65536比特的存储空间。(3)叠加噪声样值到编码序列上
第三章1、Hbo码编译码器的FPGA实现本文设计了两个模块:噪声选择器和噪声叠加器来实现噪声的叠加。噪声选择器内部自动随机选择RoM的地址,并将该地址的噪声样值乘以预先设定好的噪声放大系数玎2,然后将其输出到噪声叠加器。在噪声叠加器中,输入的编码序列首先被BPSK变换成双极性的码序列,然后将其与噪声叠加输出给下一级模块。噪声选择器和噪声叠加器分别如图3.14和图3.15所示。图3.14噪声选择器模块Fig.3·14Blockdesignofnoiseselector图3.15噪声叠加器模块Fig.3-lSBlockdesi印ofnoiseadder其中,噪声叠加器的输出端roO代表系统位序列的第一个比特位加噪之后的输出,r1_0代表第一校验序列的第一个比特位加噪之后的输出,r2.-o代表第二校验序列的第一个比特位加噪之后的输出,其余端口依次类推。3.3基于S0vA算法的Turbo码译码器的实现M3.3.1译码器整体结构及译码流程译码器的目的就是将编码器输出并经过信道加噪的Tllrbo码译码为原始信息,同时尽可能地将传输过程中的误码纠正。而基于最大似然准则的SOVA译码算法的目的33
北京化工大学硕士学位论文就是要寻找概率最大的码字作为译码输出。由Turbo码的PCCC译码结构,得到本文所实现的基于SOvA算法的n曲。码译码器的结构如图3.16所示。图3.16基于SoⅥ~算法的T1】rbo码译码器结构Fig.3-16Dia鲫nofT1l椭decoderbasedonSo、厂Aalg础dlIn图3.16中,由Turbo编码器输出且经过信道模块加噪的序列rO和r1被送入So'vA译码器1,广2和FO(经过交织处理的,.O)被送入SOVA译码器2。也就是说,未经交织处理的信息由SoVrA译码器1来处理,而经过交织处理的信息由SOVA译码器2来处理。这样;SOVA译码器1和SOVA译码器2分别输出的信息将相互独立,并且在迭代译码过程中相互交换外信息,这有利于两个分量译码器相互弥补对方在译码判断时产生的错误。随着迭代次数的增加,译码准确度将得到提高。在经过一定次数的迭代后,n曲。译码器将按照SO、,A译码器2输出的对数似然函数来得到最终硬判决结果。SOVA译码器的译码流程如图3.17所示。图3.17SoVA译码器‘T作流程Fig.3—17TheworknowofSoVAdec】Dd盯
第三章1'Ⅲb0码编译码器的FPGA实现3.3.2欧氏距离的计算欧几里德距离,又称分支度量,是译码器接收码字与栅格图中对应分支之间相似程度的度量。欧氏距离的计算公式为:一一l2形。=∑(,;J一‘J)…………………….式(3—3)i;O其中,y为欧氏距离,,.为接收序列,x为特定分支的输出序列,,为译码时刻。由于软判决译码考虑的是双极性码在高斯加性白噪声信道里的传输,而这种信道不是二进制对称的,即信道转移概率P(ol1)≠P(1fo),因此接收到的二进制码只能被表示成带浮点的高斯随机变量,而欧氏距离是一种计算权重分布(即概率)的方法,所以使用欧氏距离来描述接收序列的概率。如图3.18所示,因为本文实现的Tu而。码帧长为4,故栅格图中空有14个分支,所以本文采用一个有14个元素的数组来计算和存放分支的欧氏距离,其中每个元素的数据宽度为16bit,并且每个元素存储一个分支的欧氏距离。将欧氏距离的数据宽度设为16bit是因为欧氏距离的原始值带有两位小数,而存储在数组里的欧氏距离是其原始值的100倍,以避免FPGA不擅长的浮点运算。S1食—照—,PJk———’/、◇/、攀/、p,,,,、、,,j、/.、、/./,^。/x、《2),7(哆/、、《8)/./^、、哆7\、//、、,,、、/SOt—矿—t—虿—澎—百—¥—百_fOflZ2f3f4图3.1714个分支的欧氏距离Fig.3.17TheEuclide锄distaIlc鹃of14b舢ches计算欧氏距离的模块如图3.18所示,其中r0O、r0l、r02和r03为经过加噪后的系统位,r10、订1、rl2和r13为加噪后的第一校验位,r20、r2l、r22和r23为加噪后的第二校验位,braIlchl至branchl4为14个欧氏距离输出。35
北京化工大学硕士学位论文cIk嘞dy邻删15..0jb懵nchl【15一o】b憎nch2(15..0Jr吐1f15..01b怕nch3【15~O】巾一2【15..0lb怕nch4【15..olr0.-3【15..0lb阳nch5【15..Ol—J【15..0Jb旧nch6”5一olr1—1【15一o】b怕nch7【15一o】r1』【15..o】b陷nch8【15..o】r1—3【15一o】b甩nch9【15—0】暖-0f15..0Jb憾nchl—0f15一oJr2_1【15..o】b旧nchl—1【15..Ol瞳—烈15..olb阳nchl●115~Ol暖-3【15~01b怕nchl—3【15—0】b憎nchl..4【15..Ol图3.18欧氏距离计算模块Fi93-18BlockdesignofEuclideandistancecalculator3.3.3路径度量的计算在栅格图中,路经是指任意两个节点之间的分支之和。相应地,路径度量就是任意两个节点之间所有分支的欧氏距离之和。在计算栅格图的幸存路径之前,必须先计算出栅格图中全部16条路经的路经度量。本文计算路径度量时所采用的方法是用一个数组来存储整个栅格图的路径度量,设计一个包含16个元素的数组(因为栅格图总共有16条可能的路径),并且每个元素的数据宽度为16bit。其中每一个元素存放一条路径的路径度量。值得注意的是,由于在迭代译码过程中,分量译码器将会多次对栅格图中的路径度量进行更新和修正,这将会大大增加计算量且增大译码延迟。因此,本文将各条路径与存储路径度量的数组的元素进行一一映射,即将它们相互对应起来并且给每条路径编号,这样在后面的迭代中,只需要修改相应路径对应的数组元素的值就可以使其路径度量得到修正,其存储方式如图3.19所示。
第三章TlⅡbo码编译码器的Ff,GA实现Pa也lndexPathIndexl厂—H9卜..../2/—\10·—-.一广_.3n.·八·八·4N12“广一513●—√八八···八·、6广\/1478八八广VH15卜八/16图3.1916条路径的存储方式Fig.3-19Sto血gsd}l锄eofl6paths本文设计的Tu【rbo码的帧长为4,因此每条路径度量的计算需要将属于该路径的4个分支的欧氏距离累加。计算路径度量的模块如图3.20所示,其中branchl至br觚chl_4为14个欧氏距离输入端,paml至paml_6为16条可能的路径度量输出端。c‰朗branchl【'&.研branch2【15..o】branch3【15..olbranch4【15~o】陀.fb憎nch5【15—0lb怕nch6【15一四branch7115..o】branch8i15一olbranch研15—0lbmnchl—0【15—0lbmnchl-1【15一o】bⅫ℃h1—2f15.,oJbranchl—3【15..olbranchl-4【15—0】∞∞∞∞阳∞吩图3.20路径度量计算模块.Fi93—20Blockdesignofpatllmetrics3.3.4幸存路径的计算幸存路径是指在特定译码时间内,栅格图中具有最小路径度量的那条路径。一旦找到当前迭代的幸存路径,即可得到当前的硬判决码字,为下一步用双向递归算法计算软输出做准备。为便于说明,假设一帧经过加噪的接收序列为37
北京化工大学硕士学位论文[(一o.3,一1),(1,一o.5),(1,一1),(一1,一1)],则各个分支的欧氏距离可用式(3.3)计算得到,由此得到幸存路径如图3.2l所示。肌z,/一//,焉掣≯嚣七许/、\ll卜l/、lIl—l/、、ll卜l/。·2多、、二心/≯、so‘—阿丁√毛矿阿■t而两j‘可和I吵,5J69ll?石.257、、l吵-4·25。\\,/,,>i、4、、、¨//7×、\1J少,8、\£0o·49于lf24f3oZ4图3.2l由接收序列计算幸存路径图3.2l中,很容易可以计算得到O.49+2.25+0+0=2.74这条路径的路径度量是所有路径中最小的,因此该路径即为通过当前的接收序列得到的第一轮迭代的初始幸存路径,如图中粗线所示。需要注意的是,由于在进入译码器之前序列经过了BPSK变换,所以图3.24中的0码全都变成了一1。找到幸存路径之后,便可得到当前的硬判决码字为『一1,l,1,一11。考虑到BPsK,则实际的码字为fo,1,l,01。本文采用了比较排序的方法来计算幸存路径。开始时,将图3.19中下标为l的路径当作当前的幸存路径,然后从下标为2的路径开始比较这两条路径的路径度量,若下标为2的路径度量小于当前幸存路径度量,则将幸存路径修正为下标为2的路径,反之则不作修正。依次类推,当比较完第16条路径之后,即可得到整个栅格图的幸存路径。找到幸存路径之后,其下标被存储在一个8位的寄存器中,其路径度量被存放在一个16位的寄存器中,以备后续运算使用。计算幸存路径的模块如图3.22所示,其中paml至paⅡ116为路径度量输入端,suⅣivorNo为幸存路径标号输出端,suⅣivor为幸存路径度量输出端。
第三章1'Wbo码编译码器的FPGA实现图3.22幸存路径计算模块Fig小22Blockdes咖ofsulviV0r3.3.5软输出信息的计算panlcalculator前面已经提到,SOVA译码器得到的是软输出信息,而不是直接进行硬判决。软输出是在由幸存路径得到的硬判决码字的基础上,通过双向递归算法计算得到的,即需要同时考虑前向和后向递归。SOVA译码器的软输出信息是在f时刻所有状态为O的路径度量的最小值与所有状态为1的路径度量的最小值之差。也就是说,软输出信息是幸存路径的最佳竞争路径的路径度量。软输出信息的双向递归计算公式为:∥=田蛐{鹏(,’)+K。(,7,,)+∥”(饼………………….式(3—4)其中,∥为路径度量,y为欧氏距离,f为译码时刻,,为f时刻的状态,,’为卜.1时刻的状态,cf为f时刻幸存路径的输出码元,c为竞争码元(其值为cf的值取反)。对数似然函数,即sOVA译码器软输出信息为:人(cf)=∥一∥……………………………一式(3—5)继续以上一节的接收序列为例,说明双向递归算法的计算过程。因为已经得到幸存路径为『o,1,1,01,所以在f=3时,cf,=1.竞争码元c=o,幸存路径度量以=‰=2:74。因此竞争路径的度量可计算为:39
北京化工大学硕士学位论文∥=心2,骢。{础(,’)+K。(,,吵∥(讲=刮签Z豁≮嚣嚣麟引…却.回=min{4.74+4+o;2.74+8+4}=min{8.74,14.74},=0。l:c;O、,=0,l;c=O、=8.74该时刻的竞争路径如图3.23中粗线所示:规/,气等'意}^专o.2;、/0、、/4、、///、菇/、、、0/、、、f/、、so‘呵阿r◆—稻彳■t乖衍—卜琊_1113/,5.691吵刍.25、、l吵-4.25、、、1lV,,8乃、、柏o.49f1£24of4图3.23卢3时刻的竞争路径Fig.3-23Calculationofcompetitorpamat仁3在得到竞争路径的度量之后,就可以得到对数似然函数人(乞)=人(c3)=∥?一∥;=8.74—2.74=6……………….式(3-7)当所有时刻的对数似然比都计算完毕后,即可得到软判决输出序列。判决的原则是:若人,为正值,则在f时刻的软输出为“1”,反之则为“O”。人,的绝对值越大,表示SO、,A译码器对判决越有信心。在实现上,本文采用一个数组来存放一次迭代中需要计算的4个对数似然函数,并且每个元素的数据宽度与欧氏距离的位宽保持一致,为16bit。同样,对于一次迭代的4个竞争路径的度量也定义一个数组来存储4个竞争路径的度量,每个元素的数据宽度同样为16bit。在实现竞争路径度量的计算时,需要注意一下一些细节:第一,幸存路径和竞争路径的选取都必须保最终进入。状态;第二,F(z’,,1为f—l时刻到f时刻之间,且状态,’到状态,的分支输入为c的欧氏距离,但该分支的选取不必考虑最终是否要进入O状态;第三,∥2(f,)为。时刻到f—l时刻之间,终点进入,’状态的最小路径度量,且必须始于。状态;第四,∥”(,)为f时刻到栅格终止之间,始于,状态且止于。状态的最小路径度量;第五,∥2(,,1中,’的取值必须分别穷尽所有状态值;第六,对于同一个竞争路径来说,K。(,’,,)中的,’的值要与鹏(,’)中的,的值相同,矿(,)中的,的值要与F(,’,,)中的,的值相同。计算软输出信息的模块如图3—24所示,其输入为14个欧氏距离、幸存路径标号
第三章Tllrb0码编译码器的FPGA实现和幸存路径度量,sofIl至so斛为4个对数似然函数输出端口。图3-24软输出信息计算模块Fig.3-24B10ckd鹤i萨ofs0RoutImtcalclllator3.3.6外信息的计算外信思是当前SovA分量译码器在迭代中产生的新信恩,其葱义是作为先验信恳对另一个SOVA分量译码器的判决提供暗示。SOvA译码器1和2的外信息可由下式得到:袋粥;撬葛搿…………瓤8,人2(q)=人≯’(cf)一4-.。一天留(q)…………………’u。叫其中,A≯如)表示soVA分量译码器1在‘时刻产生的外信息,A嚣(cf)表示SOVA译码器2在f时刻产生的外信息,,:.。为f时刻的接收序列中的系统为码元%,(,.)表示当前迭代次数,带有上标“一”的变量表示该变量中的值经过了交织处理。得到外信息之后,即可计算码元为“1”或“O”的概率:缈索………………静9,∥(1)2毒丽这两个概率在译码迭代过程中在两个分量译码器之间交换,以更新栅格图中的欧氏距离,从而使译码准确度得到提高。4l
北京化工大学硕士学位论文由于码元概率的计算涉及指数函数,这大大增加了译码计算量和译码延迟,为了尽可能减少重复计算和缩短译码延迟,因此本文采用查找表的方法来实现码元概率的计算。查找表通过.111if文件存储在FPGA的片上ROM中,其输入为已经计算出来的外信息,输出为码元概率的对数形式。为了从ROM中读出数据,需要消耗译码时钟,首先通过某个外信息来指向查找表的某个地址需要一个译码时钟,然后读出这个地址中存放的对数码元概率也需要一个译码时钟,因此每完成一次查找需要两个译码时钟。计算外信息的模块如图3.25所示,其中r0O至ro3为加噪后的系统位输入,soRl1至sojfIl4为从分量译码器1处送来的对数似然函数信息,soft2l至soR24为从分量译码器2处送来的对数似然函数信息,exll至eXl4为分量译码器l的外信息,ex2l至ex24为分量译码器2的外信息。Instl5}:………………………………………一…………~………………,,图3.25外信息计算模块Fig.3-25BlockdeSi印of麟缸证sicinfolmationcalculator3.3.7译码迭代及欧氏距离的更新迭代是Tl曲。译码过程中的必不可少步骤,在迭代过程中一个SOVA分量译码器的判断结果会传递给另一个SOVA分量译码器来进行下一次译码。迭代过程有利于两个分量译码器之间的外信息共享,从而提高译码准确率。迭代的前提是每次要有新的信息出现来修正以前的栅格图中的数据,这就是用前面计算得到的码元概率来修正栅格图中各个分支的欧氏距离,其修正的公式为:n—I形‘=∑(‘厂《∥一109只(c)…………式(3-10),=O其中,y表示欧氏距离,,.为接收序列,x为特定分支的输出序列,f为译码时刻,42
第三章1、H怕码编译码器的FPGA实现c为该时刻的码元,只(c1为该时刻的码元概率。在用上一次迭代得到的码元概率将栅格图中的欧氏距离修正之后,即可进行下一轮迭代。两个SoVA分量译码器通过外信息的交换,经若干次迭代之后根据第二个分量译码器的对数似然函数做出最终的译码判决。需要注意的是,在刚开始译码迭代时,没有外信息输入给第一个分量译码器,因此需要把这时的外信息设置为全零。在两个分量译码器中,分别需要一个控制迭代过程并同时更新栅格图中欧氏距离的模块,如图3.26所示,其中iterNoiIl为迭代次数输入端,b瑚chl至bmChl4为欧氏距离输入端,exl1至exl4和e)【21至ex24分别为分量译码器1和分量译码器2的外信息输入端,iterNoout为迭代次数输出端,ne、Vbl至newbl4为更新后的欧氏距离输出端。ck∞ne州oin【3一olb怕nchl【1s.0lbrwh2【15一olbranch3【15—0lbrancM【15..olbra%h5115..olb∞%h6【15..明b∞nch7【15..q研anch8i’5一硒b懵nch9【15一埘,田qmqqh∞chl-o【15一讲branchl.1f15一01branchl—2【15..o】branchl—3【15..0】b目∞h’—4I’5~01“1-1f15一川“1_2【15~oltwo“1奠1s..ol“1-4【15一q…翌煦…………i司兰兰:徽篡=l==li一删~~~一一删t、)I,o………………………;I{图3.26两个分量译码器中的迭代控制模块Fi93-26Blockdesi弘ofit啪tioncon仃oIlers氩)rc0IllponeIltdecoders在n曲。译码器中起核心作用的两个SOVA分量译码器的顶层模块如图3—27所不o43
北京化工大学硕士学位论文l一。..’r………。~………+。~……~~_…~~‘‘’‘‘’’~_+。_’’……H’’…H’●‘●’’tsls01ck舱routl【3..01softoutRdylsoftl—1f15—0Jsoftl-2【15..0】softl-3【15..0】softl-4【15。01虻enn【3—0Jb怕nchl【15..01branch2f15。0】branch3【15。o】branch4f15—0】b啊nch5【15—0】branch6【15~olbranch7【15一o】b旧nch8【15~o】branch9【15—0】b馆nchl-0【15。01branchl—1【15..o】branchl—2【15~0】b怕nchl—3f'5一oJbranchl_4【15..0lexl-1【15~01e)c1—2【15..0l麒1—3【15—0l歌1-4【15..0l图3-27两个So、,A分量译码器顶层模块Fig.3-27Blockdesi弘of细oSoVAcomponelltdecoders3.3.8硬判决的实现硬判决的实现相对其它环节来说比较简单,硬判决器是根据第二个SOVA分量译码器输出的对数似然函数人(q)来进行判决的。若人(q)为正值,则判决输出“l"码;反之,则判决输出“O"码。硬判决模块如图3.28所示,其中iterNo为迭代次数输入端,SoRl至soR2为分量译码器2的对数斯然函数值输入端,hardout为硬判决输出端。图3.28两个SOvA分量译码器顶层模块Fig.3-28B10ckdeS咖oftwoSOVAc砌ponelltde00defs3.3.9Turbo译码器的整体实现SOVA分量译码器由迭代控制模块、路径度量计算模块、幸存路径计算模块和软输出信息计算模块组成,其内部实现结构如图3—29所示。
第三章1讨bo码编译码器的FPGA实现图3。29So、,A分量译码器内部结构Fig.3—29Int锄alb10ckd鹤i印ofSo、厂Ac唧nentdecoder基于so、,A算法的n曲。码译码器的内部结构和集成模块分别如图3.30和3.31所示。图3-30T1l蜘码译码器内部结构Fig.3.30IntemalblockdesignofTull,odecoderi蹙曼……图3-31Turbo码译码器集成模块Fig.3-3lIntegratedblockdesignofTllrbodccoder3.4本章小结本章详细阐述了Tufbo码编码、译码器的FPGA实现,以及高斯加性自噪声信道45
发布评论