Turbo码编译码系统设计及其FPGA实现.doc_第1页
Turbo码编译码系统设计及其FPGA实现.doc_第2页
Turbo码编译码系统设计及其FPGA实现.doc_第3页
Turbo码编译码系统设计及其FPGA实现.doc_第4页
Turbo码编译码系统设计及其FPGA实现.doc_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕 士 学 位 论 文题目 Turbo码编/译码系统设计及其FPGA实现 (英文) The Design of Turbo Coding / Decoding System and its Implement with FPGA Turbo码编/译码系统设计及其FPGA设计摘 要Turbo码的出现是纠错编码史上的一个重大突破,它具有在低信噪比下接近Shannon理论极限的优异译码性能,在许多通信系统中都有很大的应用前景。本文主要研究的是Turbo码的编码和译码算法及其FPGA硬件实现。首先,介绍了课题的研究背景和Turbo译码的国内外研究现状;其次在介绍Turbo编译码原理的基础上对目前常用的各类译码算法进行介绍和性能分析;接着主要研究Turbo码译码器的设计,最后用硬件实现了其电路。本文分别对Turbo码的MAP算法,Max-Log-MAP算法,Log-MAP算法、SOVA算法等进行了推导。在深入分析译码算法的基础上,决定采用Log-MAP算法作为本系统的译码算法。在对该系统的硬件实现过程中,为了节约硬件资源和减少延时,对Log-MAP算法进行了一些改进。在系统设计中,根据FPGA技术的优点,采用“自上而下”和“自下而上”结合的设计方法,通过适当的模块分割,将Turbo码的译码器分为三大模块: Log-MAP译码单元模块、交织/解交织器模块和控制信号产生模块。本文针对编码器中的延时模块采用一种类似于交织器的方式来实现延时功能,使其精度更高,编码效果更好。并对译码器进行了研究,给出了一种查找表法来实现复杂的E函数,此方法明显的简化了系统的运算复杂度。在硬件实现Log-MAP算法过程中,通过巧妙地改变前向矢量的计算顺序,减少了系统占用的硬件资源。最后利用Quartus II软件对编译码系统做了计算机仿真,结果表明本系统实现的Turbo码译码器的误码性能较好,具有一定的实用价值。关键词: Turbo码, Log-MAP算法, 软判决, FPGAIVTurbo码编/译码系统设计及其FPGA设计ABSTRACTThe emergence of Turbo-Code is considered as the most exciting and potentially important development in the history of error-correcting codes. It has a superior decoding performance approaching the Shannon limit and has been widely applicated in many communication systems. The goal of this paper is to study Turbo encoding/decoding algorithm and its hardware implementation with FPGA. Firstly, it introduces background of the subject and the research situation about Turbo decoding; Secondly, it introduces the current various decoding algorithm and analyzes their performance respectively based on analyzing the encoding / decoding principle of Turbo-Code; then studies the design of the Turbo decoder which hardware circle is successfully implemented finally. Including the MAP algorithm, Max-Log-MAP algorithm, Log-MAP algorithm and SOVA algorithm in Turbo-Code algorithm is deduced respectively in the paper. On the base of in-depth analysis of the decoding algorithm, the Log-MAP algorithm as the decoding algorithm in the system is selected. In the realization process of hardware in this system, Log-MAP algorithm has been improved in order to save the hardware resources and reduce delay. In the design of Turbo-Code system, the combining design method of both from top to bottom and from bottom to top is implemented according to advantage of the FPGA, and the decoder is divided into three blocks: Log-MAP decoder, interleaver / deinterleaver block and timing control block, through appropriate segmentation module.In this paper, a similar interleaver is used by the delay module of the encoder as an approach to achieve delay function, which makes it more precise, effective and better. Meanwhile, in the study of the decoder, a look-up table method is given to achieve complex E-function, and the method significantly simplifies operation complexity of the system. In the process of the Log-MAP algorithm implementation with hardware, the calculation of vector sequence is subtly changed, which can reduce the share of the hardware resources. Finally, encoding/decoding system is simulated by the Quartus II software, and the result shows that Turbo-Code system has a better error performance and some practical value.Key Words: Turbo Codes, Log-MAP Algorithm, Soft Decision,Field Programmable Gate ArrayTurbo码编/译码系统设计及其FPGA设计目 录摘 要IABSTRACTII目 录III第一章 绪论11.1 Turbo码编/译码方案的提出11.2 Turbo码的研究现状21.3 Turbo码的研究展望31.4 课题背景与本论文的主要工作及贡献41.4.1 选题背景41.4.2 论文的结构4第二章 Turbo码的基础知识52.1 Turbo码简介52.2 Turbo码编码器原理62.2.1 Turbo码编码结构62.2.2 RSC分量编码器82.3 交织器102.4 Turbo码译码器原理142.5 Turbo码性能的分析162.5.1影响Turbo码性能的因素162.5.2 Turbo码性能的物理解释172.6 本章小结18第三章 Turbo码译码算法193.1 最大似然译码原则193.2 MAP译码算法203.3 Log-MAP算法和Max-Log-MAP算法253.4 SOVA算法283.5 几种算法的比较293.6 本章小结31第四章 Turbo码编译码器的FPGA硬件实现方法324.1 FPGA技术简介324.1.1 可编程逻辑器件324.1.2 硬件描述语言334.1.3 FPGA硬件设计环境334.2 Turbo码编译码方案的确定344.2.1 RSC的生成多项式344.2.2 交织器结构的确定344.2.3 编码器结构的确定354.2.4 Turbo码译码器结构的确定354.3 Turbo码编码器的FPGA实现364.3.1 RSC编码器模块的实现364.3.2 交织器模块的实现364.3.3 编码器模块的实现384.4 Turbo码译码器的FPGA实现394.4.1接收码字的量化及其运算404.4.2 E函数的实现方案414.4.3 Log-MAP译码器的FPGA实现424.4.3.1 分支矢量D模块的实现434.4.3.2 分支矢量A模块的实现444.4.3.3 分支矢量B模块的实现464.4.3.4 对数似然概率的计算484.4.4 Turbo译码器总体结构的实现504.5 本章小结51第五章 仿真结果分析525.1 Turbo编译码其系统仿真525.2 系统仿真结构分析535.3 本章小结57第六章 总 结58参考文献60致 谢63硕士在读期间的研究成果64Turbo码编/译码系统设计及其FPGA设计第一章 绪论Turbo码的提出对信道编码领域的研究有着重要的意义。由于Turbo码具有接近Shanon理论极限的性能1,尤其是低信噪比下的优异性能使Turbo码在许多通信系统中都有非常大的应用潜力。除了在深空通信、卫星通信以及多媒体通信等领域的应用外,Turbo码在无线移动通信系统中的应用是目前的研究热点。本章主要介绍了Turbo码的产生背景、发展现状及本论文的工作安排。1.1 Turbo码编/译码方案的提出随着用户对通信质量和数据传输速率要求的不断提高,通信技术和计算机技术在不断的迅速发展,作为消除或降低信息传输错误有效手段之一的信道编码也在不断发展。在过去的50多年里,有关纠错码技术的研究已经取得了许多骄人的成果。随着信息时代的到来以及微电子技术的飞速发展,今天的纠错码已不再单纯是一个理论上探讨的问题,它已经成为现代通信领域中不可或缺的一项标准技术。现代通信系统的复杂化以及通信业务的多样化,要求通信系统能够对话音、数据、图像等数据量大的信息实现高速实时传输,而且用户对通信质量的要求也在不断提高。另外,移动通信的快速发展以及个人通信的全球化,使得对高速率数字移动通信等领域所采用纠错编码技术的要求越来越高。近年来,依据信道编码定理,人们一直致力于寻找能满足现代通信业务要求,结构简单、性能优越的好码,并在分组码、卷积码等基本编码方法和最大似然译码算法的基础上提出了许多构造好码及简化译码结构复杂性的方法,提出了乘积码、代数几何码、低密度校验码、分组卷积级联码等编码方法和序列译码、逐组最佳译码、软判决译码等译码方法以及编码与调制技术相结合的网格编码调制技术。虽然软判决译码、级联码和编码调制技术都对信道码的设计和发展产生了重大影响,但是其增益与Shannon理论极限始终都存在23dB的差距。直到1993年在瑞士日内瓦召开的国际通信会议上,CBerrou,AGlavieux和PThitimasjshima提出了Turbo码2,这是一种可实现的编码系统,而且获得了几乎接近Shannon理论极限的译码性能3。Turbo码一出现,就在编码理论界引起了轰动,成为自信息论提出以来最重大的研究进展,Turbo码的提出是信道编码史上的一个重要里程碑。它优异的性能引起了研究人员的极大兴趣,并相继在有关方面进行积极的探索和研究但由于几位发明者仅给出了一定参数下的计算机仿真结果,而没有严格的理论分析和解释,所以近些年来在编码界掀起了Turbo码的研究热潮。目前Turbo码的研究主要分为设计与性能分析、理论研究以及应用3个方面。Turbo码之所以具有优异的性能,交织器和译码算法起到了很大的作用,对于其应用的研究也有很大的进展。1.2 Turbo码的研究现状Turbo码具有极其广阔的应用前景,是信道编码界的一个突破,被称为二十一世纪的纠错编码。从1995年开始,有关Turbo码的文献大量出现,它已成为通信技术的新热点,目前Turbo码的研究主要集中在以下几个方面4:(1) Turbo码的理论分析 在介绍Turbo码的首篇论文里,发明者Berrou仅给出了Turbo码的基本组成和迭代译码的原理,而没有严格的理论解释和证明。所以,在研究的Turbo码起步阶段,其理论的研究就显得尤为重要。(2) Turbo码的设计 Turbo码由分量码经由交织器级联而成。因此,分量码和交织器设计得好坏就决定Turbo码性能的关键因素。主要包括交织器的设计、码的级联方式、Turbo码的性能分析等等。在性能分析中,主要对码重分布及距离谱进行分析。(3) 软输出迭代译码算法 Turbo码的编码过程实际上是一个利用强约束短码构成伪随机长码的过程,通过在分量译码器之间交换外部信息来提高性能。其译码算法主要有两大类:一类是基于最大后验概率(MAP5,Maximum A Posteriori)的软输出算法。一类是基于Viterbi算法(VA6, Viterbi Algorithm)的软输出算法。考虑到Turbo码在未来高速数据传输中的应用,寻找延时小和复杂性低的软判决译码算法始终是Turbo码研究的重要课题。(4) Turbo码的编码调制技术利用Turbo码调制(Turbo Code Modulation)技术可以在不增加系统带宽要求的条件下有效地提高编码增益。将Turbo码与TCM相结合来实现高增益高频谱效率地编码调制方案称为Turbo-TCM。在与调制编码技术相结合方面的改进体现在:将栅格调制编码和Turbo码结合可以得到大的编码增益和高的带宽效率,如将Turbo码与OFDM调制、差分检测技术相结合,具有较高的频率利用率,可有效地抑制短波信道中多径时延、频率选择性衰落、人为干扰与噪声等带来的不利影响,而且还有较低的译码复杂度。(5) Turbo码原理及其应用 由于Turbo码具有接近Shannon理论极限的性能,尤其是低信噪比下的优异性能使Turbo码在很多通信系统中都有非常大的应用潜力。除了在深空通信、卫星通信以及多媒体通信等领域的应用以外,Turbo码在无线移动通信系统中的应用是目前的研究热点。Turbo码已经成为第三代移动通信系统的标准之一7-10,有关其关键技术的标准化已经出现。此外,Turbo码在文本传输和数据存储等方面也有应用。(6) Turbo译码器的实现 南澳大利亚大学Small World通信研究组最先开始开发Turbo码编译码器并推出了Turbo码产品。A.Chass、D.Garrett和K.Koora等人也分别在不同的数字芯片上设计实现了MAX-Log-MAP算法和SOVA算法。在Turbo码编译码器设计过程中,最主要的是考虑数据处理速度和功耗。为降低译码器功耗,一个办法是减少平均的译码迭代次数,根据每一帧数据得迭代次数和信噪比值来动态分配电压,同时在允许的延时范围内使译码速度放慢。目前,许多科研院所和大公司都在进行Turbo码编/译码芯片的开发,如新加坡OKI公司的EMIK07, Altera公司的Turbo码Ipcore等都宣称开发出了相应的产品,国内也有很多高校和研究机构在对Turbo码编译码器的硬件实现进行研究11-14。但从公布的技术指标上看,都存在复杂度高、存储量大、译码延时长、功耗大等缺点。1.3 Turbo码的研究展望从1997年开始,Turbo码和相关主题的国际会议每隔三年举行一次。而从2003年以来,对于Turbo码的研究越来越倾向于具体应用。2006年的Turbo码会议在德国慕尼黑与第六届信源信道编码会议一起举行,Tubro码会议的主要议题有:纠错码、Tubro码 和LDPC码编码和Turbo编码调制 、检测和Turbo检测 、均衡 和Tubro均衡、同步和Turbo同步、多用户检测界限、性能和收敛性算法和成员码、交织和座标图、Fountani码以及网络编码等。从中看到Turbo码今后的发展方向,除了对编解码器和交织器的新设计和改进之外,更多研究将会投入到Turbo码与其他技术的联合应用中去。Turbo码作为信道编码将与所要保护传输的信源本身特点相结合,会对Tubro码的设计提出不同的要求。例如语音、音频、图象、视频和超文本数据对于传输信道的延迟抖动和可靠性都有着不同的要求,而视频编码技术中的各种分层编码所产生的不同的码流对传输的要求也不尽相同。各种数据对安全性的要求也不相同,因而Turbo码与信源联合编码及不平等保护等技术的结合在实现上还有很多问题有待解决。虽然Turbo码最早提出来的时候是为了深空和卫星通信,但其价值远远超出了这个范围,因此Turbo码在各种不同通信环境中的性能一直是研究的一个重点。纵观Turbo码的发展现状和要求,本人认为需要进一步研究的课题有:(1)最优分量码与交织器的联合设计。(2)低复杂性译码算法。(3)译码迭代过程的优化、收敛性以及迭代停止准则的设计。(4)联合信道估计、多用户检测、均衡和译码算法。(5)Turbo码与高阶调制技术的结合。(6)Turbo码编译器的硬件实现。(7)Turbo码在无线通信、移动通信以及多媒体通信中的应用,特别是在移动网络、IMT-2000及加密系统中的应用等。1.4 课题背景与本论文的主要工作及贡献1.4.1 选题背景本论文对所研究的Turbo码编码/译码器,通过系统功能模块分割的设计方法,将整个系统模块化、各模块的分割,考虑到了其功能的完整性和灵活性。整个系统分为:MAP译码器模块、交织器/解交织器模块和时序控制模块。利用Altera公司的 Quartus II软件,灵活运用文本编辑器和图形编辑器,对APEX2OK系列器件进行编程15,实现Turbo码编码器和译码器的功能。系统仿真结果证明了该编译码器有良好的性能,有相当的实用价值。1.4.2 论文的结构本课题对Turbo码编译码器的设计及其FPGA实现进行了研究,全文分为六章,除第一章概述外,其余各章安排如下:第二章介绍了Turbo码的基础知识。先介绍了编码器结构及其成员码、交织器,然后介绍了Turbo码译码器原理、分析了影响Turbo码性能的几种因素及其优异性能的物理解释,目的在于为后面Turbo码的硬件设计提供相应的理论基础。第三章详细介绍了Turbo码的译码算法,主要有MAP、Log-MAP、Max-Log-MAP 、SOVA等。并分别对它们进行了详细的数学公式推导,比较了各种算法的特点,综合译码性能和实现复杂度考虑,从而根据实际情况选择适合硬件实现的算法。第四章重点研究了Turbo码的FPGA实现。本章首先介绍了FPGA技术的相关知识,然后从前面分析结果的基础上从硬件方面来实现Turbo码编译码器。其中包括对交织器的硬件设计进行了详细介绍,对Turbo码编码器的硬件设计进行了改进。在译码器的设计中,采用了Log-MAP算法,对E函数、量化运算、Log-MAP译码器的三个大模块:分支度量、前向状态矢量和后向状态矢量等各模块的实现进行了详细的介绍。对分块并行Turbo码算法的硬件设计进行了初步的研究。第五章主要介绍了Turbo码硬件仿真过程及其结果的分析。包括信源模型的建立、信道模型的建立,并根据仿真得到的结果进行了分析。FPGA的仿真主要是用数据来表示,本文还用MATLAB仿真证明了前面分析的正确性。如仿真比较几种算法的译码效果,仿真比较不同的交织器长度和量化长度时的译码效果。第六章总结了本论文的研究工作,介绍已经做了哪些方面的工作,还有哪些不足,并进一步提出了论文中还有待于深入研究的问题及方向。66Turbo码编/译码系统设计及其FPGA设计第二章 Turbo码的基础知识1993年Turbo码的编码方案的提出,带来了一种迭代译码的全新思想,使通过可译编码逼近信道容量成为可能。实践中显示,Turbo码具有抗衰落、抗干扰性能,尤其适合功率受限的系统,只要时延和复杂度允许,可在多种恶劣条件下提供接近极限的通信能力。本章将详细的介绍Turbo码的基本原理、编译码结构、交织器的作用和分类、及性能分析等,为后面的设计提供了理论依据。2.1 Turbo码简介在现代通信系统中,为了保证各种数据在信道中可靠有效的传输,往往需要利用纠错编码技术。尤其随着无线数字通信的发展和各种高速率、突发性强的业务的出现,对纠错码技术提出了越来越高的要求16。Turbo码编译码器实现的就是通信系统中信道编码到信道译码这一阶段的内容,这也是最重要的部分,它的误码率对整个系统起决定性作用,Turbo码所要研究的内容就是图2.1 所示的信道编译部分。图2.1 数字通信系统模型的信道部分纠错码起源于香农1948年提出的香农第二定理(也称信道编码定理)。根据香农信道容量公式1,实现可靠通信所允许的传输速率的上限为信道容量。在信道带宽无限和功率受限的条件下,高斯白噪声信道容量C表示为: (2-1)其中B表示带宽,表示信道输入带限信号的平均功率。如果传输速率为,则有: (2-2)经简单变换得: (2-3)这就可以得到信道编码定理:每个信道具有确定的信道容量C,对于小于C的码率R,存在有速率为R码长为n的分组码及卷积码,若用最大似然译码,则随着码长的增加,其译码错误概率P可以任意小,即:和 (2-4)其中和是大于0的系数,和为正实函数,称为可靠性函数。上式表明在带宽无限信道中,对于任何小于C的传输速率,可在码率不变的前提下通过增加分组码的长度n,使差错率为任意小,当极限情况n趋于无穷,就可以实现高斯白噪声下的无误传输,称为香农限。即当传输速率达到信道容量时,可靠通信所需的最小比特信噪比即香农限为1.6dB。香农限成为设计信道编码时试图逼近的信噪比的下限,为实现有效可靠的通信奠定了理论基础。1993年,法国学者C.Berrou等人提出了一种称为Turbo码的新型编码方案,由于它很好的应用了Shannon信道编码定理中的随机性编、译码条件,从而获得了几乎接近Shannon理论极限的译码性能,从而引起极大的轰动,也使得Turbo码的研究成为近年纠错码研究的一个热点。传统的Turbo码是一类并行级联的系统卷积码,它由两个经交织器连接的子编码器生成。Turbo码的译码采用了软输入和软输出的译码算法和迭代译码的方法,使子译码器间可以互相传递信息,保证编码信息的充分利用。两个子译码器的输出序列越不相关,在译码端交换的互信息量就越大。根据C.Berrou等人仿真的结果,二元Turbo码在速率R1/2和码长较长(256256)的条件下,经18次迭代得到了离理论极限约0.7dB的误码率性能。2.2 Turbo码编码器原理2.2.1 Turbo码编码结构典型的Turbo码编码如图2.2所示。主要由分量编码器、交织器以及删余矩阵和复接器组成。两个分量编码器由码率为R1/2的RSC(递归系统卷积码)组成,其结构一般是相同的,且输入相同的长度为N的信息序列,在送入第一个分量编码器进行编码的同时作为系统输出直接送到复接器,同时输入序列经过交织器交织后的交织序列送入第二个分量编码器。其中,为交织映射函数,N为交织长度,即信息序列长度。两个分量编码器输入序列仅仅是码元的输入顺序不同。两个分量码编码器输出的校验序列分别为和。为提高码率和系统频谱效率,可以将两个校验序列经过删余矩阵删余后(得到)再与系统信息一起经过复接器构成编码序列。图2.2 典型的Turbo码编码器由线性分组码的特性知道,码字的最小距离是估计码字性能的首要参数。对线性分组码而言,码字最小距离就是码字集合中汉明重量最小的非零码字的汉明重量。交织器和分量码的结合可以确保Turbo码编码输出码字具有较高的汉明重量。在Turbo码编码器中交织器的作用是将信息序列中的比特顺序重置。当信息序列经过第一个分量码编码器后输出的码字重量较低时,交织器可以使交织后的信息序列经过第二个分量编码器后以很大的概率输出高重码字,从而提高码字的汉明重量,同时好的交织器还可以有效的降低校验序列间的相关性。通过交织,编码序列在长为2N或3N(不经过删余)比特的范围内具有无记忆性,从而由简单的短码构造成近似随机长码。因此,交织器设计的好坏在很大程度上影响着Turbo码的性能。常用的交织方式有均匀交织、非均匀交织、伪随机交织等,理论上,随机交织的效果最好。对于数字通信领域日益紧张的带宽资源,提高码率就意味着节省带宽和降低通信费用。删余矩阵是目前提高Turbo码码率的主要方法,它可以通过删除压缩合并各成员编码器地输出校验序列来调整Turbo码编码器的编码速率。比如本文删余后得到的是码速为1/2的Turbo码,若校验码不删余,则得到的是码速为1/3的Turbo码。理论上通过改变删余矩阵可以得到任意码速的Turbo码。删余单元的作用是调整编码效率,为了提高码率。实际中,一般使信息序列全部传送,而校验序列给予适当的删除。在接收端应对接收序列进行内插,未被传送的比特位用0填充,以保证序列的完整性。但是,当码率过高时,每个信息码元对应的校验码元数量减少,将导致译码端的纠错性能降低。而码率过低,又使得码元传输效率过低,所以在调整编码率时需做多方考虑,在编码效率和纠错性能间做折衷考虑。复用单元完成编码的并/串转换,使输出适合信道的传输。复用后的输出序列为。根据删余方式,取值或。若输入信息序列为 则编码器使用图2.2所示的递归系统卷积分量码编码后的系统输出和校验输出分别为 和 若假设经过交织器交织后的输入信息序列为 则下面的递归系统卷积分量码编码后的校验输出为 在未删余时得到的码率为1/3的输出码字采用删余矩阵删余后得到的码率为1/2的输出码字为2.2.2 RSC分量编码器线性分组码是一种常用的纠错编码,包括循环码、BCH码等。它们的共同特点是:一个码字的监督码元仅与本码组的信息码元有关,而与其它码组的码元无关。本节介绍的卷积码是另一类编码,它与分组码的区别在于:本组的码元不仅与当前输入的信息码元有关,而且还与以前的v时刻输入的信息有关。卷积码的纠错能力随着m(m=)的增加而增大,而差错率随着v的增加而指数下降。在编码效率与设备复杂度相同的前提下,卷积码的性能优于分组码,至少不低于分组码。卷积码有三个重要的特性:1.存储长度v, v的值与卷积编码器中延迟单元的个数相对应。2.约束长度N=v+l。3.编码效率。编码效率定义为信息码元个数与经过编码后总的码元个数的比值。传统卷积码的编码器不包含反馈,因此可以等效为一个有限冲激响应(FIR)滤波器,而递归系统卷积码RSC(Recursive Systematic Convolutional Encoder)是一种特殊的卷积码17-18,由于存在反馈,因此可以等效为一个无限冲击响应(IIR)滤波器。本文使用的分量编码器如图2.3所示,其生成多项式为(7,5)的递归系统卷积码的编码器,编码速率为1/2。其输出的码元不仅与当前时刻的信息元有关,而且还与前v (本文使用v=2)个时刻的信息元有关。因此,在编码过程中,每N个(N=v+1=3)相邻的子码之间有约束关系。图2.3 (7, 5)的递归系统卷积码的编码框图从图可以知道输入的编码关系 (2-5) (2-6) (2-7)即延时因子为 (2-8) (2-9)由此得到生产多项式 g1, g2.卷积码可以用多种方法表示,一般有矩阵法、码树法、状态图法和栅格图法等,可根据译码方法的不同而采取不同的表示方法。在Turbo码中,用状态图和栅格图来描述译码过程较为方便。由图2.3递归系统卷积码的编码框图可以看出,递归系统卷积码编码器是一个有限状态机,因此可以分别用图2.4和图2.5表示它的状态转换图和栅格图。图2.4所给出的递归系统卷积编码器对应的状态转移图,其中椭圆内是编码器所处的状态,箭头的起点是初始状态,终点是输入数据后的状态,射线上斜杠左边1位是编码器的输入数据,右边2位是编码器的输出数据。因为图2.4中的编码器有两个存储器,(即v2)所以编码器共有4()个状态,即S000,S1=10,S2=01,S3=11。例如,若编码器的初始状态为S0,当输入信息为1时,编码器的状态就从S0转移到状态S1,,并输出码元C为11。若输入信息为0时,则编码器停留在S0状态,输出码元C为00。这样不断输入信息,编码器状态不停转移,并相应输出一个子码,它们就组成了编码器的输出码序列。而图2.5给出了图2.4 递归系统卷积编码器所对应的状态转移图这个递归系统卷积码的栅格图结构,图中虚线表示输入信息为0的状态转移,实线表示输入信息为1的状态转移。这个栅格图中的每一个分支给出三种信息:分支的状态(当前状态和下一状态),编码器的输入的信息比特和输出校验比特。图中实线表示输入信息比特为1,虚线表示输入的信息比特为0。例如,对于图中第一条实线,可知在这个分支上输入的信息比特为1,编码器的状态从S0的00变到S1的10,并且编码器的输出为11 (=l,=1)。对于图中第一条实线,可知在这个分支上输入的信息比特为0,编码器的状态从S0的00回到本身,并且输出编码00。一共有四个状态S0-S3,它们之间互相转换,其它细节就不多介绍了,从图中可以看出。对于传统的卷积码来说,通过在数据帧的末尾嵌入v个零比特就可以迫使编码器格图回到全零状态。但是对于递归系统卷积码来说,由于它具有无限冲激响应特性,因此仅靠嵌入v个零比特一般无法使递归系统卷积编码格图回到全零状态,此时可以通过解状态变量方程得到所需的尾比特。例如在图2.3中的结构,根据式(2-6)知道,当需要使编码器状态回到零,就是令d1等于零,得到: (2-10)这就是使编码器回到零状态所需的尾比特。图2.5 v=2的RSC编码器的栅格图2.3 交织器经过研究发现,Turbo码之所以不同于以往的其它编码,表现出了极佳的性能,其中一个重要原因就是采用了交织器。交织器的主要作用就是将原始数据序列打乱,使得交织前后数据序列的相关性减弱,这样做很突出的一个优点便是大大降低了数据突发错误的影响。在现代的高效编码调制技术中,无论是级联编码还是Turbo编码中都要使用交织器。从前面的描述知道,交织器的主要作用是减小突发差错的影响和改善信息序列的码重特性。通常Turbo码的自由距都不是很大,但是由于交织器的作用,使得Turbo码和卷积码相比,其重量近似的码字数目要小的多,从而使得在一定条件下Turbo码的译码差错概率比卷积码的差错概率低。交织器是Turbo码的重要特征,在Turbo码的帧长、码率和约束长度一定的情况下,交织器的结构决定了Turbo码的译码性能,这是由于交织器的结构影响着Turbo码的重量分布。因此如何选择交织器也成为Turbo码系统设计的重要课题。下面给出了在Turbo码中交织器的设计应该遵循的设计准则19:(1)最大程度地置乱原数据排列顺序,避免置换前相距较近的数据在置换之后仍相距较近,特别要避免置换前相邻的数据在置换后再次相邻。(2)尽可能避免与同一信息位直接相关的两个分量编码器中的校验位均被删除。(3)对于不归零的编码器,交织器设计时要避免出现“尾效应”图案。(4)在满足上述要求的交织器中选择一个较好的交织器,使码字之间的最小距离(或自由距离)尽可能大,而使码重为的码字数要尽可能少,以改善Turbo码在高信噪比时的性能。L.C.Perez等人的研究表明Turbo码的渐近性能接近渐进线,在高信噪比时出现错误平台是小的引起的20。Turbo码交织器有许多种,如分组交织器、螺旋交织器、奇偶交织器、随机交织器、S交织器、循环移位交织器、均匀交织器、“smile”交织器、最优周期交织器等等。这里我们介绍几种典型的交织器。1、 行列交织器行列交织器,即分组交织器,该交织器是将信息序列视为矩阵。通常采取以按行写按列读的方式实现码元交织,交织后的码元距离特性均匀分布,即交织前信息按行写入,但是交织器矩阵交织后信息位按列读出,从而实现行列置换。其特点是交织方式非常简单,同时根据后面仿真结果可以看出,它对短序列译码效果较好,但交织后码元的去相关不彻底。而解交织列顺序写入,行顺序读出。表2.1和表2.2表示交织器的交织与解交织的存储器实现过程。分块交织器的交织函数为: (2-11)表2.1行列交织器的交织过程 表2.2行列交织器的解交织过程 在纠错编码中,交织矩阵的行数叫做交织深度,交织矩阵的列数叫做交织跨度。分块交织的特点是方式简单、对短序列交织效果较好,但交织后对信息比特的去相关不彻底。2、 伪随机交织器与S随机交织器在随机交织器里,一个N比特的信息序列被输入交织器里,然后被随机读出。理论上,信息序列之间的交织方式是变化的,以便更好地反映随机性。但在实际应用中,接收端必须能够确定每一帧码字序列的交织方式,就增加了传输的负担,因此完全随机化交织并不是最佳的方式,一般使用的是伪随机交织器21-22。伪随机交织器通常在输入信息序列较长时可以采用近似随机的交织映射方式,每个长度为N的伪随机交织器共有N!种可能的交织形式。但是对应于N!种可能的交织形式,交织后有些元素之间的距离非常小,这样会导致对某些错误序列相关行的离散度不够。因此利用下面的S-随机交织器可以部分解决这个问题。通常,随机交织器是以某种方式产生一组随机数,决定信息序列在交织器中的排列方式,信息序列之间的交织方式是相同的。随机数可以这样来产生:首先在从1到N之间等概率地随机选择一个整数,作为信息序列中第一个比特在交织后的位置,然后从剩下的N-1个整数中等概率地随机选择一个整数,作为信息序列中第二个比特在交织后的位置,依此类推,直到N个信息比特都进行完。为了避免交织前相距较近的数据在交织后仍相距较近,可以把上述交织方式修改为S随机交织,就是把上述随机交织器加了一个约束。为了进一步减小交织器的相关行的离散度,设计在伪随机交织过程中相邻的S个比特经过交织后它们之间的距离至少为S,从而构成了S-随机交织器。每一个随机产生的整数要和先前个选择的整数比较,如果当前产生的随机整数与先前个选择的整数之差的绝对值小于的话,当前产生的随机整数就被抛弃,重新选择,即: (2-12)考虑到算法的搜索实际,通常选择.S-随机交织器是一种公认的性能良好的交织器。因为它能够将错误序列中相邻比特在交织后扩散,距离至少为S,从而使错误转化为随机错误,有利于卷积码纠错。信息序列越长,随机数的产生越均匀,交织前后序列的相关性越小。随着S值的增加,Turbo码的性能不断提高。但S值越大,条件越难满足,交织器的设计就越困难。通常比较好的S-随机交织器的参数要满足 (2-13)其中N为交织长度。当S大于这个值时一般难以收敛。3、分组螺旋交织器 分组螺旋交织器的工作原理是:首先将数据序列按行的顺序写入矩阵(其中矩阵的行m与列n互素),在交织时从矩阵的左上角开始向右下方向读取数据,每向下一行同时右移一位(即行索引递增的同时列索引也递增,增量步长为1)。在行的方向和列的方向分别对索引取模m和n,即若令和分别表示第i个比特的行索引和列索引,则分组螺旋交织器的数据读取顺序是以行列顺序依次写入,然后在交织时从矩阵的左上角开始向右下方读取数据,每向下一行同时右移一位。它的表达式如下: (2-14)其中上述递归运算的初值为i0,1,2,N1.初始值.对于分组螺旋交织器,当交织矩阵的大小为,且交织过程从左上角开始读数据;或者交织矩阵大小为,且交织过程中从左小角开始读数据时,得到的分组螺旋交织器就是对称交织器。 本对称交织器的交织器与解交织器完全相同,下面关于对称性的介绍时会有详细说明。下面以长度为43螺旋交织器为例,其实也就是对称螺旋交织器,详细说明它的工作过程。如表2.3和2.4所示,把交织器的工作过程通过RAM的写入与读出表示非常清楚。 表2.3写入RAM 的顺序 表2.4 读出RAM的顺序 相对于行列交织器而言,螺旋奇偶交织器有以下优点:1)对称性交织器对称性是指若输入序列的第i个比特经过交织后成为输出序列的第j个比特,则输入序列中的第j个比特经过交织后也一定输出序列的第i个比特。这种性能使得交织器的交织序列和解交织序列完全一致,这就使得在硬件实现的时候可以用同一模块来实现交织和解交织功能,从而减小占用的硬件资源。2)保奇偶性所谓保奇偶性是指原来处于奇数位或偶数位的信息比特,在交织后仍然位于新序列中的奇数位或者偶数位,从而实现对所有信息比特的等差错保护来提高译码性能。为了提高编码效率,通常对Turbo码的编码输出进行删余压缩。如果采用不当的交织方式,则有可能出现对信息为保护不均的情况,从而影响码字的纠错性能。螺旋奇偶交织器可以很好的保证交织器的保奇偶性。3)去相关性经螺旋奇偶交织器交织后相邻码元距离很大,比行列交织器去相关更加彻底。这样使交织后的码元的码距扩大、相关性变小,Turbo码的编码输出更近似随机长码。综合交织后的效果和硬件实现的复杂度,本文Turbo码的编译码器中决定选用这种交织器进行交织与解交织。2.4 Turbo码译码器原理Turbo码获得优异性能的根本原因之一是采用了迭代译码,通过分量译码器之间软信息的交换来提高译码性能。对于Turbo码这样的并行级联码,如果分量译码器的输出为硬判决,则不可能实现分量译码器之间软信息的交换。如果分量译码器能够提供一个反映其输出可靠性的软输出,则其它分量译码器也可以采用软判决译码,从而系统的性能可以得到进一步提高。为此,人们提出了软输出译码的概念和方法,即译码器的输入输出均为软信息。软输出译码实现了解调器和分量译码器之间的软信息转移,系统性能可以得到很大改进。在介绍Turbo码译码器之前,首先介绍一下硬判决与软判决的概念。硬判决和软判决是指译码的时候对接收到的比特进行量化的两种形式。对于硬判决译码解调器供给译码器作为译码用的每个码元只取0或1两个值。在调相和相干解调系统中,若0、1信号的电压为,则相当于匹配滤波器输出端的判决门限取0。若接收电压的幅度小于0,则解调器输出为0;若大于或等于0,则输出1。例如,采用调制电压为士5V的BPSK调制,如果码元为0,则调制成1发送;若码元为1,则调制成+1。调制后的1/+1在信道中传输,由于噪声的影响,序列值会发生变换。如果在接收端收到3V和0.3V两个脉冲电压,硬判决方式会将这两个脉冲都判决为二进制信息1,尽管第二个脉冲看起来离二进制1的标准还差很远。硬判决不可避免地会产生一些不恰当的判决,这种判决结果当然会损失掉接收信号中所包含的有用信息。为了充分利用接收信号波形中的信息,使译码器能以更大的正确概率判决所发的码字,就把解调器输出的抽样电压进行分层或量化。因而由解调器输出供给译码器的值就不止两个,而有Q(通常Q=)个。另一方面若译码器直接利用解调器输出的未量化的模拟电压或其变换进行译码,称为模拟译码。无论译码器利用Q进制序列译码,还是利用模拟量的模拟译码,统称为软判决译码(或简称软译码)。通常,译码器利用附加的软判决信息进行软译码时要比硬译码能得到额外的23 dB的增益。Turbo码译码器由两个相同的软输入软输出(SISO)译码器、交织器和相应的解交织器组成,常用的Turbo码译码结构如图2.6所示。其中SISO译码器的作用是完成RSC编码器的译码,也是Turbo码译码器中的核心模块,其性能直接影响整个译码器的性能。软输入指的是译码模块的输入信息为经过量化的解调数据,而不是判决后的二进制序列0和1。软输出则指的是译码模块的输出值也不是判决后的二进制,对于接收序列进行译码后得到一个似然概率值,因此最后在输出之前还要经过硬判决。Turbo码译码器中的交织器与编码器中的交织序列是一致的,在编码器中,交织器的作用是使两个RSC编码器趋于相对独立;而在译码器中,交织器和相应的解交织器则是连接两个SISO译码器的桥梁。译码器部分没有包括量化,它是编码器与译码器中间的部分。接收到的信息序列和校验序列、都是经过解调器解调和量化过的序列,而不是二进制的0和1。这里没有多做说明,在第三章的算法部分和第四章的量化部分将有详细介

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论