




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安电子科技大学硕士学位论文TURBO码的设计与FPGA实现姓名靳凡申请学位级别硕士专业通信与信息系统指导教师白宝明20090101摘要TURBO码是一季孛逼近SHANNON容量限的编码方式,它是信道编码理论领域的一项重要研究成果。由于其优异的性能,TURBO码在通信领域得到了广泛的应用。本文以实现TURBO码编译码器为冒标,对TURBO码的编译码算法和硬件实现进行了深入的学习和研究。首先介绍了TURBO码的编译码原理,分孝厅了影响TURBO码性能的几个关键因素,并通过C语言的仿真进行了验证。其次在FPGA实现方面,根据硬件特点对译码算法进行了分析、改进,使用了滑动窗的译码方式,降低了硬件资源占用率和处理时延。采用摸块化的设计思想,针对译码时控制较为复杂的问题,使用了三层的控制方式,使整个系统的联合调试更加容易,各模块之间的关系得以简化。在设计和实现各子模块时,权衡硬件实现复杂度与处理时延,努力提高模块的运用性并降低运算的复杂度。最后在实际的硬件平台上进行验证,得到了理想的结果。关键词TURBO码编译码器滑动窗FPGAABSTRACTTURBOCODESAREACLASSOFCODINGSCHEMESWHICHCANAPPROACHTHESHANNONSCAPACITYBOUNDITISFORTHEIROUTSTANDINGPERFORMANCESTHATTURBOCODESHAVEBEENWIDELYUSEDINTELECOMMUNICATIONS。弧EAIMOFTHISPAPERISTOIMPLEMENTTHEENCODERANDDECODEROFTURBOCODESWITHFPGATHEENCODINGANDDECODINGALGORITHMSANDHOWTOIMPLEMENTTHEMWITHHARDWAREHAVEBEENDISCUSSEDINTHEPAPERFIRSTLY,THETHEORYOFTHEENCODINGANDDECODINGOFTURBOCODESAREINTRODUCED,FOLLOWEDBYANANALYSISOFSOMEFACTORSTHATCALLAFFECTTHEPERFORMANCEOFTURBOCODESANDSOMESIMULATIONSWITHCLANGUAGE。SECONDLY,INASPECTOFTHEFPGAIMPLEMENTATION,ASTUDYOFTHEALGORITHMISGIVENACCORDINGTOTHEFEATUREOFTHEFPGAANDTHESLIDINGWINDOWMETHODISUSEDTOTHEALGORITHMTOMODIFYIT,WHICHCANREDUCETHERESOURCEREQUIREMENTANDTHEPROCESSINGDELAYTHEMODULARDESIGNMETHODISAPPLIEDINTHEWHOLESYSTEM。ACCORDINGTOTHECOMPLICATEDPROBLEMSOFTHECONTROLINTHEDECODING,THETHREELAYERCONTROLMODEISUSEDTHEREFORETHEJOINTDEBUGGINGOFTHEWHOLESYSTEMWILLBEMUCHEASIERANDTHERELATIONSHIPAMONGTHEMODULESCANBESIMPLIFIEDATRADEOFFISMADEBETWEENTHEHARDWAREIMPLEMENTATIONCOMPLEXITYANDTHEPROCESSINGDELAYWHENDESIGNINGANDIMPLEMENTINGEACHSUBMODULE,WITHTHEAIMOFINCREASINGTHEGENERALITYANDREDUCINGTHECOMPUTATIONALCOMPLEXITYFINALLY,THECODECISVERIFIEDONTHEPRACTICALHARDWAREPLATFORM,WHICHACHIEVESANIDEALRESULTKEYWORDTURBOCODESENCODERANDDECODERSLIDINGWINDOWFPGA创新性声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中徽了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名兰车L关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业离校后,发表论文和使用论文工作成果时署名单位仍然为西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采震影印、缩印或其它复印手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章律署名单位为蘸安电子科技大学。保密麴论文在解密后遵循此规定本人签名堑垦翩魏圭趔日期望至圣匿期第一章缝论第一章绪论本章首先论述了数字通信与信道编码的关系,其次介绍了编码系统的基础知识信道编码理论和SHANON限,之后说明了TURBO码的历史发展和目前情况,最后对作者所做主要工作和本文内容安排做出了总结。11数字通信和信道编码逶信系统的鼷的是将信息从发送端高效、可靠、安全地传送到接收端。嚣焉就引出了衡量通信系统性能的两个主要指标有效性和可靠性。通常,有效性用传输速率震比特艚道符号衡量,可靠性用错误毙特率BER衡量。但是,实际信道中嗓声的存在总会对传输信息产生干扰,从而可能降低通信可靠性。为了保证通信的可靠性,需要采取一定的措施来减少干扰的影响,信道编码或纠错码就是一种保证通信可靠性的重要技术。对于数字通信系统,其其体做法为,在消息序列中加入一定的冗余,使得编码器输出序列之间满足一定的约束关系,接收端可以根据这些约束关系将受干扰丽如现的错误检测或纠正过来。嚣此,消息从发送端发出后,首先要经过信道编码,之后再经过调制才能发送出去;当然,接收端在解调后,也要经过译码才可以恢复出原始消息。编码信道图11数字透信系统静基本组成之前人们普遍认为通信系统的可靠性与有效性是一对不可调和的矛盾,在有扰通信信道上实现任意小的错误概率的信息传输的唯一途径就是把传输速率降低至零【1】。而在1948年,SHANNON信息与编码理论的奠基性论文“通信的数学理论“发表之后【21,彻底改变了这一观点。他首次提出了在有扰信道中实现可靠通信的方法,指出实现有效丽可靠地传输信息的途径是编码。根据SHANNON的信息传输理论,数字通信系统的基本组成如图11所示【3】,分为信源、编码器、信道、译码器和信宿五个部分,编码器又可分为信源编码器和信道编码器两部分。可见作2TURBO码的设计与FPGA实现为通信系统的重要一环,信道编码是较合理的解决通信有效性和可靠性这对矛盾的关键,也是实现通信系统经济性所必需的。但是,SHANNON的信道编码定理仅证明了这种码的存在性,在实际系统中如何实现信道编码仍是人们需要继续研究的。12信道编码定理和SHANNON限121信道编码定理信道编码定理【4】任意离散无记忆信道都存在称之为信道容量的信息传输速率上界,它表示信道传送信息的最大能力。给定一个容量为C的信道,只要信息传输速率R小于C,就肯定存在一个编码方案,使译码错误概率P随着编码长度的增加而变得任意小反之,则无论采用何种编码方式都不能保证错误概率任意小。这虽然只是一个存在性定理,只给出了信息传输速率的上限,但却为人们指明了方向,驱使着人们不断研究,使传输速率一步步地向信道容量靠近。122SHANNON限SHANNON限是衡量系统性能的标准,对各种信道编码方式进行性能比较时,通常都是将其与对应码率的SHANNON限比较。使用不同调制方式时,容量限也会不同,因此有SHANNON容量限和某种调制方式的容量限之分。下面对AWGN加性高斯白噪声信道下的容量限作出介绍。AWGN信道是通信理论中最重要的信道模型之一,该信道上只有加性噪声的干扰,加性噪声是均值为0和方差为仃2的高斯随机变量。1948年SHANNON在其论文2】中推导的AWGN信道下的信道容量为。川。921帮11式中C是信道容量单位为BITS,W是信道带宽,只是信号的平均功率,O是噪声的单边功率谱密度,P,WNO是信噪比。在数字通信系统中,毛是每信息比特需要的传输能量。矿C1。G1谚C惫1_2墨2CLW113NQC|WF2CG“一1丝LIM二二IN216DB14NOCW雹CLW第一章缝论3因此,E0一16DB时就可以实现AWGN信道下的错误概率任意小,这是带宽无限FAWGN信道的传输能力上限,称为SHANNON限。在发送信号等概时,不同调制方式下的信道容量限1幽M一|IV一A。|一|摇|C娟92M一寺毋L092EXPL二BITSSIGNAL15。“I0JO。0式中掰代表发送字母表大小,A是发送信号,N是均值为零、方差为02的高斯噪声随机变量,E表示期望运算,2E,EM。13TURBO码的国内外研究状况自从SHANNON的信道编码定理提出以来,信道编码技术一直是数字通信系统研究的核心问题之一,并逐渐的成为了现代通信系统和无线通信系统中的关键技术。在早期的研究阶段,人们致力于通过代数方法实现纠错编码,有限域、有限几俺、数论等数学理论都成为了研究纠错编码的主要工具。这一情况持续到了1993年,当CBCRROU等人在醇C93上提出TURBO码溪同时才改变了这一状况。TURBO码又称并行级联卷积码PCCC,它巧妙地将卷积码和随机交织器结合在起,实现了随机编码的思想,同时,采用软输出迭代译码来逼近最大似然译码。当其采用约束长度为5的RSC递归系统卷积码作为分量码、大小为65535的随机交织器和L2码率时,经过18次迭代,就可在最O0。7如的情况下使误比特率BER小于105,饿能已经十分接近SHANNON限12码率下的SHANNON限为0DB。这一优异的性能立刻引起了广泛的反应,随后人们对其进行研究,迭代译码思想逐渐成为信道编码研究的热点,也使人们重薪发现了旱在1962年就提出的LDPC剐7】【8】。通过JHAGENAUERL9】等人的总结,迭代译码思想上升为现在我们所熟知的TURBO原理TURBOPRINCIPLE。露时各种各样的类TURBO码纷纷涌现,如串行级联卷积码【LO】;基于扩展图EXPANDER黟APHS有渐近好纠错性能的扩展码111I;有线性的编码复杂度,较容易实现快速编码的重复累积码【12】FL3】等。丽且TURBO码的思想与其他技术结合也产生了很好的效果,如TURBO均衡技术P鳓、TURBOTCML20】拙甘O经过十几年的研究,TURBO码的不仅在理论上有许多成果F1毒鄹獾1翻,在实际中也有了广泛的应用。目前TURBO码已是第三代移动通信系统的信道编码方案之,WCDMA、CDMA2000和TDSCDMA三个标准中的信道编码都是用了TURBO玛。在无线城域网的IEEE80216E17】草案中,TURBO码也与LDPC码一起作为编码调制的备选方案。这些都促使了TURBO码一步步地迈向实用化阶段。TURBO码的设计与FPGA实现14本文的研究背景、研究工作和内容安排深空通信的信道特征是接收信噪比很低,而可用的信道带宽相对较宽。在这种功率受限信道上实现可靠通信,需要采用高增益的信道编码技术。当数字信号采用相干调制解调技术,无信道编译码时,满足10一,E0理论值为105DB,若采用275,233RS码与15,14卷积码级联伽利略号探测器就可以获得约96DB的增益。可见研究高性能和功率消耗小的纠错编码系统是非常必要的。TURBO码具有逼近SHANNON容量限的优异性能,被CCSDS18】美国空间数据系统顾问委员会作为深空通信信道编码的标准之一,随着要求更高的数据速率和更多的同时任务数,未来的深空通信必须采用具有高编码增益的信道编码方式。本文主要结合作者在实验室参与的项目,对适合在深空通信中使用的TURBO码进行研究,通过仿真得出适合硬件实现的量化方式及译码算法,降低了硬件实现所需资源,并在FPGA上予以实现。文章内容安排如下第一章介绍信道编码以及TURBO码的发展过程;第二章介绍TURBO码的编码原理及编码器各组成部分;第三章阐述了TURBO码的译码原理与译码器结构,同时分析了译码的相关算法,并对各种影响TURBO码性能的因素进行分析和仿真;第四章给出在FPGA上的实际硬件实现方案和性能结果第五章对全文进行总结,并提出下一步工作方案。第二章TURBO码的编码纂瑗5第二章TURBO码的编码原理本章首先介绍TURBO码编码器原理与结构框图,其次以交织器为重点,对编码器的各组成部分的特点、功能做出了详细说明。2。LTURBO码的编码原理211TURBO码的编码原理与框图TURBO码是由两个递归系统卷积码RSC经过并行级联组成的。图21给出了一个典型的TURBO码编码器框图,其中两个分量码通过一个交织器级联起来。对予输入信息比特,两个分量码编码器工作在相同的时钟上,只是输入的信息比特的顺序不同,因此产生的输出比特也不相同。强2。1TURBO码编码器的基本结构输入信息比特序列U,U,材,输出编码比特序列为CQ,乞,C,其孛拳FC,孝,蠢声,LKN。第一个分量码编码器直接对原始的信息序列进行编码,第二个分量码编码器对经过交织后的信息序列进行编码,从而分别产生了两个校验位序列C和0尹。假定图2。L中两个分量编码器的码率均为L趁,由于两个分量码都是系统码,只需将信息比特传输次即可,因此总的码率为R13。为了提高TURBO码的码率,除可以选用高码率如23码率的分量码外,还可以采耀删余PUNCTURING技术从这两个校验序列中周期性地捌除一些校验位,然赢再与信息序列C“复用在一起组成编码器输出C,再传给调制器。212编码器主要组成1分量码从差错控制编码理论【21】可知,非系统卷积码NSC的BER性能在高信嗓比时比约束长度相同的非递归系统码要好,而在低信噪比时情况却正好相反。递岿6TURBO码的设计与FPGA实现系统卷积RSC码综合了NSC码和系统码的特性,虽然它与NSC码具有相同的TRELLIS结构和自由距离,但是在高码率R。23的情况下,对任何信噪比,它的性能均比等效的NSC码要好。所以,TURBO码通常采用递归系统卷积码作为其分量码。图22为一种典型的2,1,5递归系统卷积码。图22典型的递归系统卷积码2交织器交织器是实现TURBO码近似随机码的关键,它实际上是一组映射关系。交织器是在RSC2编码之前将信息序列中的个比特的位置进行置换,从而减小分量编码器输出的校验序列的相关性,重塑码的重量分布。交织器的具体内容将在下一节给出。3删余删余是提高码率的手段之一,其实质上是有规律的将编码器输出信息中的部分比特删除,而被删除比特的个数最终决定了TURBO码的码率。在实现删余时,需要明确被删除比特的位置,一般用删余矩阵P来表示。其中第M行的“0“表示第M个序列的相应位的比特被删除,反之,“1”则表示相应位的比特被保留。P_|例如,在分量码为12码率时,采用删余矩阵LU1J,即可得到码率同样是12的TURBO码。该P矩阵表示删去来自RSCL的校验序列C。1P的偶数位置比特与来自RSC2的校验序列Q2P的奇数位置比特。这样,采用删余技术后,TURBO编码器在七时刻的输出为吼C,其中C。P由C。LP和P交替组成。22TURBO码的交织器TURBO码系统中,交织器是非常重要的组成部分,很大程度的影响着TURBO码的性能。其主要作用是减小校验序列的相关性,重塑码的重量分布,进而在迭代译码过程中降低误比特率。另一方面,通过交织,使得编码序列在长为2N或3N第二耄TURBO码憋编码原理7不使用删余比特的范围内具有记忆性,从而由简单的短码得到了长码。当交织器充分大时,TURBO码就具有近似于随机长码的特性。交织器的设计遵循以下几个重要准则例最大程度地置乱原数据排列顺序,避免置换前楣距较近的数据在置换后仍相距较近,特别是避免置换前相邻数据在置换后再次相邻。尽可能避免与同信息位直接相关的两个分量码编码器中的校验位均被删除。对于不归零的编码器,交织器设计时要避免出现“尾效应”图案。在满足上述要求的交织器中蒋选择一个好的交织器,馒码字之闻的最小距离或自由距离尽可能大,而重量为最小距离的码字数要尽可能少,以改善及函O码在高信嗓比时的性能。22量规则交织器1分组交织器这是最简单韵一种交织器,其交织过程为将信息序列看作一个矩阵,信息按行写入,按列读出,从而实现交织的功能。经过这样的置换,信息序列的首尾比特位置在交织前蜃僳持不变,交织蜃的距离特性呈均匀分布。读写OL2345678910王圭12131415圈23行写歹|J读的分组交织器2分组螺旋交织器分组螺旋交织器将信息序列按行顺序写入聊玎矩阵,其中M与玎互质,之后从矩阵的左上角开始蠢右下焦读取数据,每向下一行溺时右移一位。交织过程如图24所示。分组交织器实现简单,对短序列交织效果较好,但总的来说交织性能不好,交织恁对信息序列的去糖关也不彻底。TURBO码的设计与FPGA实现222伪随机交织器啼第一个序列第二个序列第三个序列图24分组螺旋交织器伪随机交织器是指交织映射随机生成的交织器。长度为的伪随机交织器共有种可能的交织形式。伪随机交织器可以这样产生首先在个整数中等概的随机选择一个整数,作为第一个比特交织后的位置,然后从剩下的一1个整数中同样等概地随机选择一个整数,作为第二个比特交织后的位置,如此往复,直到个整数都选完为止。但这样产生出的交织器性能不一定会好,所以还需对其进行进一步优化。下面介绍几种典型的伪随机交织器。1S随机交织器S随机交织器的产生,是为了使交织前相邻信息位在交织后距离足够大,从而最大程度的打乱原序列的相关性。其中的S就是指交织前相邻的S个比特在交织后的最小距离。对于具体的方法,只需在每次产生随机数后判断是否与前面的数跽厚距离大于S即可。但S必须满足V2,否则算法不能收敛。2模K交织器在TURBO码中为了提高编码效率,通常使用删余操作将码率提高。但是,一般情况下,交织后对校验比特的删余通常会导致对信息比特的不等差错保护。这是因为经过交织和删余后,某些信息比特会有相应的两个校验比特,而另一些信息尸10比特则没有任何一个相应的校验比特。例如,当采用删余矩阵L01J得到码率12的TURBO码时,就会产生图25的现象。第二章TURBO码的编码原壤9信息序列眦燃罗匝豆工丑虱二匝工丑骼的校骏序列匡三E二工二至二I互二二二二三二卫I。J,。,。【。IL一IJ。I。J一口撇置因、1厂偶数髓冈J图25菲模2交织器所造成的影响从图中可看出,“2”对应的的两个校验比特都被保留了,而“L“对应的两个校验比特都被测除。可觅,经过随机交织器交织之瑟,测余时对校验LT特的删余是不均匀的。而如果采用奇偶交织器,使奇位置的比特交织后还在奇位置,偶位置的毙特还在偶位置,就霹确保每个信息毖特都有且仅有一个校验比特,从面对信息比特讲行均匀傈护。蘩三章TURBO瓣黪铎璐爨囊爱冀凌篓三塞TURBO璃译鹬熏建爱冀洼本章首先念锱TURBO鹤的译鹧崽想和绻掬楗鼹,其次余髂橼堆蟪MAP纂法,蔑葵茨避穗蒸稼萋涣,之詹分赞死夸影德TURBO褴巍鸶溪索,并瓣纛嚣粪魏滚,舞之艚的硬件袅现提供了依据。3。董TURBO褐的译弱原瑗舞粪爹鬓遴,巢鬻鬻衾搜謇簿融臻褥器囊蠹辩蓊嚣瓣囊舞瓷嚣,粪枣出中和妒交替组成。经过储道传输、解调,接收机践配滤波嚣在意时刻的输出慕襻蓬舞羚黼嚣,菇,铎毽爨蕊餐务辘爨苁筵攘浚疼黧褒蕊诗发遴蒋号E阐31软输入软输出译鹤器SMODECODERTURBO鞲译褥篓懿萋零舞褥黧纛薹,藿嚣零。寮辫藩个辏黎入耧赣篷冀臻浮鹤器DECL和DEC2串行级联组成,交双器与编码器中所使用的交织器相同。译羁嚣DECT辩努囊璃RSCL遂行囊毽嚣褥,产奎蓑予霪塞掺裂孛每一爨蛰瓣器陵糕率信怠,并将篡中的掰新稽患壮经过交织送给DEC2译褥器DEC2将此傣息作为是验蕊惑,对分爨鹃RSC2避抒最链译褥,产生燕子交织嚣静信惑痔鳓孛簿一毙黪懿嚣虢概率德慰,然藉祷蒸率瓣群新藩崽弦楚避辩交鬟遴徐DECI,避苻下淡译码。这样,经过多次迭他,DECL蠛DEC2新产生的外信息趋予稳定,后验概攀比囊遂辫避逶予瓣整个瓣瓣豢太簸熬译褥。假定TURBO码译鹂器的接收序列为Y蕊,YP,Y趣接收判的信息序列,YP是搜羧寒囊;攘袋枣黧歹缝鬓襄嚣瑟褥囊蘸令蒺溅零囊少爹一露;秘2尹燃壤多TLG露GN,分别送给DECL和DEC2。予是,两个软输出译码器的输入序础分别为DECLY蝰嚣8,1筘麦DEC2Y2端九Y2筘32舞了嫠潺器番瓣鼗蒋镶诿纂搴爨夸,狡攥鬟丈器夔囊褰凇浮薅凑鬻,TURBO译褥器酌最往译码策略是,截据接税序猁Y计算餍验概攀APPTURBO码的设计与FPGA实现PPUTYM,Y2MAPRULE五ARG悠P“T“I“,以9,尤P33HU。1I译码时,将Y1和Y2分开考虑,两个分量码译码器分别计算后验概率PU女IYN,LC。2和PUIJ,扪,罂,然后通过DECL和DEC2之间的多次迭代,使其收敛于MAP译码的PU。IYN,Y2。这里,彰和群为附加信息,其中霹由DECL提供,在DEC2中用作先验信息;巧由DEC2提供,在DECL中用作先验信息。32TURBO码的译码算法321最大后验概率MAP算法下面推导最大后验概率算法【24】【251。考虑图32所示的软输入软输出SISO译码器,它能为每一译码比特提供对数似然比输出。_一三MAP译码器图32软输入软输出译码器框图图中MAP译码器的输入序列为Y硝M,Y2,YK,蜘,其中YK蚝,群。乞是YEFU。的先验信息,三。是关于心的对数似然比,则铷沪1IL端33地灿黜34求解式34就是译码器所要做的工作。假设编码器在后时刻的状态为最,利用BCJR算法推导后可得PS一。S,鼠S,Y,三INS,SJ,夕35其中P一,S,瓯J,YL吼一。S屈SGKS,S,吼J、孱S和儿5,S分别称为前向状态度量、后向状态度量和分支转移度量。下面分别求解1前向状态度NA。J声七巾矗驰蚝蟛一一P型嘲第三章TURBO鹳熬译鹈嚣理及冀法I3SXCRK一。SPSKS,YKIS,一。燃S搿T段葶,S36壹予投G,霪鹣藿霹麓大予圭,这会使式3镑产生溢赛,爨就有登要瓣嚷国进行归一化处理盾面提到的腹S也需要归一化,原因相同,不再累遴。盈汹嚷S梦斟警壤S矽嚷菩|S吃一,SRAS,S2袁互丽3。乃,J磊渤熬初始条箨茭稷宠RSC编褥器麓勰热状态兔零状态哦OL,瓯0002后RAJ状态度量孱0孱;S岛杉L拦SE成S儿0L,S38缓一纯处理震,有筑。,S;熊。,SP蟛L式_磊一。,RKS,葶毒袁羹I丽39如果编码器在每帧编码完成之后通过结尾处理也回到零状态,则磊S的初始象葶譬鸯;晟褥毛磊黏雾谚拳O;否剽,癍将掰畜晟设势等概。3分支转移度量段莎,S以P,嚣尝PSK搿葶最一L幂葶PYK蕺“S,瓯。L絮S篁毪多强L壤其中P魄是的先验概率,PYKLUK由信道转移概率决定。由丘辑。的定义式33霹得如芝端畸EXP溉毛刚2箕中4嚣再焉虿T丽,受常量。31铘81114TURBO码的设计与FPGA实现对于PYKI,根据儿“,孵,吒X茹“,“F,可知P巾加EXP掣一等等】一卜盘笋BKEXP一学】EXP一学312兰舌合上回的二个式子司得RKS,S芘4最E帅以圳2EXP学】313若定义形J,SEXP睦丘群睇,定义信道可靠值厶4幔0,对于AWGN信道上的QPSK传输,丘4O,而盯2NO2,则有RKS,SOCEXPLU,G丘“砟S,S314将上式带入F35】式可得瓯一。S3形J,J厦SEXPL。U。丘以50上UK111L生I琢而丽J。J毗0T以TH1S展0S屏0315上式中等号右边的第一项代表信道值,第二项表示先验信息,即前一译码器传给当前译码器的信息,第三项是当前译码器新产生的外信息,这部分信息将被传给下一个译码器。译码器的整个过程就是相互传递当前的外信息需要经过交织或解交织并最终译码的过程。322MAP算法的简化算法由前面的推导可以看出,标准的MAP算法引入了大量的乘法运算和对数运算,实际中实现代价很大,下面介绍相应的简化算法,从而降低实现复杂度。1MAXLOGMAP算法26】瓦听万聊丽瓯一瓯翌辎第三章TURBO码豹译鹃滠理及算法15MAXLOGMAP算法是MAP算法的简化,它的计算都是基于对数域的,从而把MAP算法中的乘法运算转纯成了加法运算,其输滋也相应的变为了对数似然比形式。同时引入了如下近似计算,来简化算法复杂度,式中MAX是取最大值运算MY兰嚣蠡316从而,算法中几个主要度量也相应变化为A前向状态度量A女IN瓯葶兰MAXA,一IJ十R女O,SMAXMAXAT1RT0。,S317其初始条件为A。OO,A。OO咱。B后向状态度量BLS醯孱S。兰MAXB女SR|O,SMAXMAXA,QO十RO。,S318如果编码器在每帧编码完成之后通过结尾处理也回到零状态,其初始条件为B。0,BO删,或B葶H壶M为分量码的状态数。C分支转移度量瓦S,S去【乞T薪丘辫PP】319这样,对数似然比LLR可以由下式计算LUKV蹁JRKSBE苫一塔找。ASF00,SB女和32国VS,S冲罐2LOGMAP算法F2711281MAXLOGMAP算法虽然简便,但也牺牲了译码性能,为了提高性能,同时不会过度增加译码复杂度,我们引入一个修正函数五,使MIL矿净M。蚴AX6Z18,一K1321这样,用MAX谚磐翳谚丘1谚SIN默1代替MAXLOGMAP中的M,AX4即可。,LSJS时JTURBO码的设计与FPGA实现33影响TURBO码性能的几个因素仿真在VC环境下进行,仿真时以程序产生的随机码作为信源,经过TURBO编码、BPSK调制后,加入模拟的AWGN信道噪声,之后进行解调和译码,最后把译码结果和原始信源对比,统计误码数和误码率,得出性能结果,如图33所示图33TURBO码性能仿真方案示意图331交织长度对TURBO码性能的影响在TURBO码的生成中,交织器扮演着重要的角色。交织器虽然仅仅是在RSC2编码器之前将信息序列中的个比特的位置进行随机置换,但它却起着关键的作用,在很大程度上影响着TURBO码的性能。尽可能随机化数据以避免与同一信息位直接相关的两个分量编码器中的校验位均被删除,使最小码距丸。尽可能大,而重量为最小码距的码字数尽量少,以降低所谓的错误平层ERRORFLOOR。交织长度要综合考虑系统的时延和数据帧的大小,交织器越长,则帧长越长,系统时延越大。图35是分量码采用生成多项式G7,5的递归卷积码,交织长度分别为704、1984、4096,码率为13,采用LOGMAP译码时,TURBO码的性能曲线图。显然交织器越长性能越好。因为交织器越长,交织后比特越具有随机特性,从而接近于SHANNON假设的随机码。,UICI图34G7,5的递归卷积码结构第三章TURBO码豹译码嚣理及算法17圈35不同交织长度译码性髓比较332码率对TURBO码性能的影响图36给出了分量码采用生成多项式G7,5的递归卷积码,交织长度为1984,码率为L趁和L,3,译码采用LOGMAP译码时,TURBO码的性能益线圈。由图可知码率较低性能较好,这是由于码率较低提供较多的校验冗余比特,但这降低了馕息的传输速率,实际设计时应综合考虑以使性能与信息传输速率达到平衡。TURBO码的设计与FPGA实现12码率E乒壤、JR,OM诗7一,I,OV干R。的、Y、0、R甲。、Q、4、。OT蚁、每JJRJJP、O、M。5EBNODB图36不I可码率译码性能比较333迭代次数对TURBO码性能的影响图37给出了分量码采用生成多项式G7,5的递归卷积码,交织长度为1984,码率13,迭代次数分别为2、4、8次,译码采用LOG_MAY译码时,TURBO码的性能曲线图。由图可知迭代次数增大,译码性能会得以提升,但译码时延会随迭代次数的增加而线性增大,同时迭代次数增大到一定程度后,译码性能会趋于饱和,所以不能无限制的增加迭代次数。第三章TURBO玛豹译码原理及算法19图37不同迭代次数译码性能比较334量化译码对TURBO码性能的影响量化是实际数字硬件中不可缺少的一环,量化过程不可避免地会引入量化误差,因此如何在给定条件如量化比特、量化后的性能等下选择合适的量化方案以尽可能减少量化误差是量化处理的关键。针对不同的信号要采用不同的量化方案,因此必须根据接收信号的特点来选择量化方式。此外,还需要考虑实际中实现的难度,并力求在性麓损失不大的情况下选择最简单的量化方式。量化的方法有多种,主要包括了均匀量化和非均匀量化29】。将输入信号的取值域按等距离分割的量化称为均匀量化;丽菲均匀量化则是根据信号的不同区间来确定量化的间隔,对于信号取值小的区间,其量化间隔也小;反之,量化间隔就大。J均匀量化的实现方法通常是将抽样值通过压缩再进行均匀量化。所谓压缩是用一个非线性变换电路将输入变量X变换成另一变量Y,即Y厂O。非均匀量化就是对压缩后的变量Y进行均匀量化。接收端采用一个传输特性为XF1Y的扩张器来恢复。通常使用的压缩器中,大多采用对数式压缩,郎YIN砖。广泛采用的两种对数压缩是口律压缩和A律压缩。由于律压缩帮A律压缩的实现较为复杂,因此在具体的仿真中我们使用均图38G;23,33的递归卷积码结构图39不同量化方式译码性能比较由图39可看出,初始消息采用6,3,T,中间变量采用7,3T量化时一拊嫩赫渺啪一一一一一一一一一一一一一竺一一雌一一一郏船啪群一。绷慨龇默獬一一一一一一一一一一一一,第三章TURBO码豹泽码滠理及算法2L性能与无量化时差距较大,而其余量化方式的性能与无量化时几乎一致。考虑到量他除数越大,实际中译码的复杂度和硬件资源消耗都会变大,所以我们在实际的硬件实现中初始消息采用6,3,T,中间变量采用8,4,T量化。即初始消息采用6比特量化,其中符号位占L比特,整数位占3比特,小数位占2比特;中间变量采用8比特量化,其中符号位占L比特,整数位占4比特,小数位占3比特。第豳章TURBO码编译码器静设计与实现第四章TURBO码编译码器的设计与实现本章首先介绍了FPGA的设计流程与设计环境,其次介绍了适合硬件实现时使用的滑动窗技术,之后详细介绍了TURBO码编译码器的结构设计和实现,最后给出了性能结果。41FPGA设计流程与设计环境FPGA的设计鳓矧是利用EDA开发软件和编程工具进行开发的过程。开发流程一般如图41所示,包括电路设计、设计输入、功能仿真、综合优化、综合后仿真、实现与布局蠢线、时穿仿真与验证、板级仿真与验证,以及芯片编程与调试等主要步骤。图41FPGA设计流程设计中通常使用自顶丽下的设计愚想,将设计层次化、结构纯,把一个大的系统分为若干小块,编制相应的模型并加以实现,通过仿真和验证后,在逐次连接起来,从悉提高开发效率节省时阆,也便于修改维护。FPGA,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它以其功能强大,开发过程周期短、投资少,可反复修改,以及开发工具智能化等特点成为当今硬件设计的首选方式之一。24TURBO码的设计与FPGA实现FPGA最大的两家生产公司是XILINX和ALTERA,他们的FPGA各有优缺点,并且都有各自的FPGA综合开发工具。由于本文使用ALTERA公司的STRATIXLI系列芯片【32】【33】,所以整体就设计在ALTERA公司的QUARTUSLL60E341中完成。QUARTUSII软件是ALTERA公司的综合开发工具,它集成了ALTERA的FPGA开发流程中所涉及的所有工具,从设计输入、仿真、编译、综合、布局布线和下载都可以使用它来完成。它支持VERILOGHDL语言和VHDL语言的设计输入、基于图形的设计输入方式以及集成系统级设计工具。同时QUARTUSII还集成了与第三方工具的友好接口,可以在QUARTUSII中直接调用第三方的综合、仿真等工具。QUARTUSLL支持ALTERA公司的所有主流FPGA器件,如STRATIX系列的STRATIX、STRATIXGX、STRATIXLI和STRATIXIIGX,CYCLONE系列的CYCLONE和CYCTONEII。除此之外还有特点1支持多种时钟定时分析、基于块的设计,内嵌逻辑分析器、功率估计器等高级工具。2易于管脚分配和时序约束。3强大的HDL综合能力。4支持WINDOWS、SOLARIS和LINUX等多种操作系统。FPGA中的设计日趋复杂,所以设计的仿真验证就显得尤为重要,在整个设计流程中占了很大比重。QUARTUSLL支持多种第三方工具进行FPGA设计,可以通过命令行或TCL脚本与第三方工具进行无缝连接,也可以通过网表文件单独使用第三方综合、仿真工具,因此在仿真时我们使用MENTOR公司的MODELSIMSE61F软件完成仿真的工作。MODELSIM作为独立的第三方工具,支持众多的FPGA厂家库,仿真速度快,仿真精度高,提供友好的调试环境,是唯一的以单内核支持VERILOG和VHDL混合仿真的仿真器,是完成FPGAASIC设计的RTL级和门级电路仿真的首选。采用直接优化的编译技术TCLTK技术和单一内核仿真技术,编译仿真速度快,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段。同时它还具有强大的调试功能先进的数据流窗口,可以迅速追寻到产生不定或错误状态的原因;性能分析工具帮助分析性能瓶颈,加速仿真;代码覆盖率检查确保测试的完备性;多种模式的波形比较功能;先进的SIGNALSPY功能,可以方便的访问VERILOG或VERILOG和VHDL混合设计中的底层信号;支持加密P;可以实现与MATLAB中SIMULINK的联合仿真。MODELSIM的功能侧重于编译、仿真,编译的代码与平台无关,不能指定编译的器件,不具有编程下载能力。在时序仿真时不像QUARTUS那样可以自行设置输入波形,而需要通过外部在源文件中文件确定输入,如编写TESTBENCH来完成初始化和模块输入的工作,或通过外部宏文件提供激励,这样才可以看到仿真模块的时序波形图。第瀚章TURBO码编译码器酶设诗与实现42TURBO译码中滑动窗技术的应用使用传统的LOGMAP译码算法时,译码器的计算顺序是先计算出分支转移度量,同时计算出前向状态度量并且都存储在内存中;当一帧的分支转移度量和前向状态度量计算完毕之后,反向计算后向状态度量,同时计算对数似然比;重复上述两步,直到迭代次数满足设定的次数。如图42。L嚣厂LLI,1L岔L_|罗L。;1LRL。F图霹。2传统的LOGMAP译码算法顺序可见TURBO译码时,需要把整个一帧数据接收后才能开始译码,当交织器较大时,其译码时延很大,虽然采用了LOGMAP算法,运算复杂度有所减低,僵时延和所需的存储空间却没有丝毫的减小,不利于工程实现。为了解决这些闻题,我们采用滑动密算法F3霉【363进行译码。其主要思想是将帧数据分成等长的小块,称为一个窗口长度设为L。这样译码过程就变为先计算礁一个窗翻的分支转移度量值并且存储;读取出分支转移度量值用于计算出一个窗口的后向状态度量值并且存储;读取一个窗口的分支转移度量值和屠向状态度量值,用于计算前向状态度量值和对数似然比将窗口向前推移,并重复上面三个步骤直到一帧计算完为止;重复上面四步,直到迭代次数满足设定的次数。如图43。1毛2LNL辩Y卜L2LLNNL夕|1L2LN_LN晓;L叫O_LL哪一一一_上_YLL2LNLNLLRLJL上。L叫岫_LL_卜L一图43加入滑动窗的LOGMAP译码算法顺序加入滑动窗蜃,译码时延和存储空间有了显著的降低,但这样也使性能受到了损失。为了使性能不会损失过大,窗口长度就不能太短,通常窗口长度是所使用TURBO码的设计与FPGA实现的卷积码约束长度的5到8倍时,就可保证译码性能只有很小的损失。在实际实现中,我们使用L64的窗口。43编码器的设计与实现431TURBO编码器整体结构1编码器的项层输入输出信号描述编码操作的基本过程是当一次编码操作开始时,外部输入的信源信息从MESSAGE端口输入编码器,同时ENABLE端口置高电平。接收完一帧数据后,编码器内部产生一个开始编码信号,驱动各模块工作,编码完成后从ENCODEMESSAGE端口输出,同时数据使能DATAE11置高电平。编码器顶层图和端口定义如下CLKENC。DEMESSAGEENABLEDATAENMESSAGE。各输入输出接口定义图44TURBO码编码器项层图表41TURBO码译码器输入输出接口定义接口名方向接口大JBITS描述CLK输入1时钟信号ENABLE输入L编码器输入使能信号,高电平有效MESSAGE输入1数据输入ENCODEMESSAGE输出1编码结果输出DATAEN输出1编码结果输出使能,高电平有效2TURBO编码器主模块TURBO编码器主模块框图如图45,在该模块中,我们将TURBO的编码分成两个独立的编码模块来实现,生成INFORMATION和RSCL一OUT的为ENCODERL模块,生成RSC2一OUT的为ENCODER2模块。第瞪章TURBO码编译码器的设计与实现27输入端为LBIT信息,输出端为LBIT信息位,LBITENCODERL中RSC编码的校验位和LBITENCODER2中RSC编码的校验位。控制信息CONTROL主要是时钟CLOCK,重置信息RESET,使能信息ENABLE和编码后信息读取的控制信息等。ENCODERLRSCLOUTENCODEMESSAGEPUNCHER一ENCODER2RRSC2_0UT432RSC模块图4。5TURBO编码器主模块框图G23,33的RSC编码器模块的设计如图46,在该模块中我们输入为LBIT信息,输出分为两部分,分别是LBIT信息位和LBITRSC编码的校验位,ADDL为L位寄存器,用以临时存储加法器ADDL的输出信息,加法器用异或器实现。INFORINFORMATION4。33ENCODERL模块图46RSC模块框图LRSC0UTENCODERL模块的框图如图47,在该模块中,输入端为LBIT信息,输出端LBIT信息位和LBITRSC编码的校验位,缓存的作用是为了与ENCODER2在时钟上更好控28TURBO码的设计与FPGA实现制,先是写使能WREN置高电平,读使能RDEN置低电平,输入一帧信息位到RAVL中,然后WREN置低电平,RDEN置高电平,将RAVL中的信息依次输入到RSC模块中完成ENCODERL中的编码。WRADDRESS亡兰RSC434ENCODER2模块图47ENCODERL模块框图RSCLOUTENCODER2模块框图如图48,在该模块中,输入端为LBIT信息,输出端为LBITRSC编码的校验位,输入数据存储在RAM中,输入数据的写地址由预先存储在QPPROM中的值提供,先是写使能WREN置高电平,读使能RDEN置低电平,通过计数器COUNT控制ROM的输出Q,使输入一帧信息位存储到的适当位_QPPRAIVL置中,完成交织过程,然后WREN置低电平,RDEN置高电平,将RAM中的信息依次输入到RSC模块中完成ENCODER2中的编码。图48ENCODER2模块框图萋第豳章TURBO码编译码器的设计与实现44译码器的设计与实现441译码器整体结构1译码器的项层输入输嬲信号接述译码操作的基本过程是当一次译码操作开始时,译码器从外部读取帧数据到输入缓存中,FPGA开始进行迭代译码,经过一定迭代次数之后,译码器输患硬判决结果。读入帧数据后,内部会产生一个开始译码信号,驱动译码器读内部的缓存并开始译码。在最后一次迭代将要开始之前,译码器给出一个标识信号,表明译码器即将要输出硬判决结果,使输出缓存写使能有效。一帧译码结束后,译码器将结果从缓存中输出,并计算下一帧在输入缓存中有一帧数据时或进入等待状态在输入缓存中的数据不够一帧时。译褐器顶层图和端翻定义如下CLKGLOBLE_RESETOUTPUTVALIDSTART_READOUTPUT_ENDATA_IN50LIT_DECISIONINPUT。ENFRAMELOCK各输入输出接鼗定义M49TURBO码译码器顶屡甏表4。2TURBO码译码器输入输出接嗣定义接阴名方向接口大小BITS描述CLK输入王时钟信号GLOBAL_RESET输入1译码器复位信号,低电平时复位STARTREAD输入L帧头信号,高脉冲信号30TURBO码的设计与FPGA实现,DATAIN输入6数据输入INPUT_EN输入1数据输入使能,高电平有效FRAME10CK输入1帧锁定信号,为高电平时表示锁定,为低电平时表示失锁PUNCH_MODE输入1为低电平是12码率删余,为高电平是13码率不删川、OUTP口乙翩输出1译码结果输出使能,高电平有效OUTPU矿ALID输出1帧头信号,高脉冲信号LLRDECISION输出1译码结果输出2译码器的整体结构由前面章节的分析可得出,TURBO码译码器可以由四部分计算电路组成前向状态度量计算电路,后向状态度量计算电路,分支转移度量计算电路,对数似然比计算电路。只要知道每一个时刻对应的分支前向度量和后向度量以及状态之间的分支转移度量,就可以求出所需的对数似然比,进而可以得到传递给下一次迭代的“外信息”。在设计中,模块可以分为以下两大部分译码器计算模块A前向状态度量计算模块B后向状态度量计算模块C分支转移度量计算模块D对数似然比计算模块译码器控制模块A前向度量计算控制模块B后向度量计算控制模块C分支转移度量计算控制模块D对数似然比控制模块该模块与前向度量计算控制模块合并E整个译码器的控制模块窗121运算控制模块以及各个模块之间的协调控制在设计中各个模块都采用了模块化思想,主要计算模块都有各自的控制模块,也便于各个模块之
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物膜形成考核试卷
- 盐类水解(讲)-2023年高考化学一轮复习(原卷版)
- 视听设备绿色设计中的水效评估方法考核试卷
- 医疗器械人机交互的触觉反馈与振动技术集成考核试卷
- 江西省抚州市金溪二中2024-2025学年九年级(下)月考物理试卷(3月份)(含解析)
- 产品定价策略中回归分析运用手册
- 苏教版小学四年级上数学口算题卡
- 山东省菏泽市郓城县2023-2024学年七年级下学期4月期中考试数学试卷(含解析)
- 四川省雅安市2024-2025学年七年级下学期期末检测道德与法治试卷(含答案)
- 铁及其化合物(知识点梳理+习题挑战)(解析版)-2026年高考化学
- 外加剂细度、密度、含水率、含固量等物理指标试验检测记录表模版JJ0612a
- DB32∕T 4108-2021 混凝土复合保温砌块(砖)墙体自保温系统应用技术规程
- 丰田汽车新产品开发及项目管理
- 阿里巴巴合伙人制度83686
- 数学人教A版(2019)选择性必修第一册2.5.1 直线与圆的位置关系 教案
- 感染组:乙肝基因分型和乙肝耐药检测-课件
- 样品承认书标准版
- 季度资源能源消耗统计分析表(项目级)
- GB∕T 29076-2021 航天产品质量问题归零实施要求
- 中控室值班记录表
- 第3章晶体缺陷-点缺陷和位错
评论
0/150
提交评论